Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r84957 - in sandbox: container_gen/boost/container_gen container_gen/boost/container_gen/detail container_gen/boost/detail/metafunction container_gen/boost/detail/preprocessor container_gen/boost/utility container_gen/libs/container_gen/doc container_gen/libs/container_gen/doc/html container_gen/libs/container_gen/doc/html/container_gen container_gen/libs/container_gen/doc/html/container_gen/reference container_gen/libs/container_gen/test container_gen/libs/utility/doc/html container_gen/libs/utility/doc/src/equivalence_function tree_node/boost tree_node/boost/detail tree_node/boost/tree_node tree_node/boost/tree_node/_detail tree_node/boost/tree_node/algorithm tree_node/boost/tree_node/balancer tree_node/boost/tree_node/container tree_node/boost/tree_node/intrinsic tree_node/boost/tree_node/iterator tree_node/boost/tree_node/key tree_node/boost/tree_node/traits tree_node/boost/typeof tree_node/libs/tree_node/example tree_node/libs/tree_node/test
From: sponage_at_[hidden]
Date: 2013-07-06 13:49:36


Author: expaler
Date: 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013)
New Revision: 84957
URL: http://svn.boost.org/trac/boost/changeset/84957

Log:
Updated Boost.ContainerGen to 0.9; temporarily removed Boost.TreeNode for update.

Added:
   sandbox/container_gen/boost/container_gen/detail/preprocessor.hpp (contents, props changed)
   sandbox/container_gen/boost/container_gen/is_mergeable_heap_selector.hpp (contents, props changed)
   sandbox/container_gen/boost/detail/metafunction/is_mergeable_heap.hpp (contents, props changed)
   sandbox/container_gen/boost/detail/preprocessor/
   sandbox/container_gen/boost/detail/preprocessor/binary_seq_inc_for_param.hpp (contents, props changed)
   sandbox/container_gen/boost/detail/preprocessor/binary_seq_to_params.hpp (contents, props changed)
   sandbox/container_gen/boost/utility/equivalence_function.hpp (contents, props changed)
   sandbox/container_gen/libs/container_gen/doc/html/container_gen/reference/is_mergeable_heap_selector.html (contents, props changed)
   sandbox/container_gen/libs/container_gen/doc/html/container_gen/reference/is_mutable_heap_selector.html (contents, props changed)
   sandbox/container_gen/libs/container_gen/doc/ref_is_merge_heap_selector.qbk (contents, props changed)
   sandbox/container_gen/libs/utility/doc/html/equivalence_function.html (contents, props changed)
   sandbox/container_gen/libs/utility/doc/src/equivalence_function/
   sandbox/container_gen/libs/utility/doc/src/equivalence_function/Jamroot (contents, props changed)
   sandbox/container_gen/libs/utility/doc/src/equivalence_function/doc.qbk (contents, props changed)
Replaced:
   sandbox/container_gen/boost/container_gen/c_str_cmp_selectors.hpp (contents, props changed)
   sandbox/container_gen/boost/container_gen/c_str_cmp_selectors_fwd.hpp (contents, props changed)
   sandbox/container_gen/boost/container_gen/container_gen.hpp (contents, props changed)
   sandbox/container_gen/boost/container_gen/container_gen_fwd.hpp (contents, props changed)
   sandbox/container_gen/boost/container_gen/emplace_assoc_function_gen.hpp (contents, props changed)
   sandbox/container_gen/boost/container_gen/emplace_function_gen.hpp (contents, props changed)
   sandbox/container_gen/boost/container_gen/has_emplace_mfunc_selector.hpp (contents, props changed)
   sandbox/container_gen/boost/container_gen/has_stable_iters_selector.hpp (contents, props changed)
   sandbox/container_gen/boost/container_gen/insert_range_function_gen.hpp (contents, props changed)
   sandbox/container_gen/boost/container_gen/insert_range_result_gen.hpp (contents, props changed)
   sandbox/container_gen/boost/container_gen/is_allocator_selector.hpp (contents, props changed)
   sandbox/container_gen/boost/container_gen/is_associative_selector.hpp (contents, props changed)
   sandbox/container_gen/boost/container_gen/is_compare_selector.hpp (contents, props changed)
   sandbox/container_gen/boost/container_gen/is_container_selector.hpp (contents, props changed)
   sandbox/container_gen/boost/container_gen/is_flat_assoc_selector.hpp (contents, props changed)
   sandbox/container_gen/boost/container_gen/is_hashed_assoc_selector.hpp (contents, props changed)
   sandbox/container_gen/boost/container_gen/is_hasher_selector.hpp (contents, props changed)
   sandbox/container_gen/boost/container_gen/is_heap_selector.hpp (contents, props changed)
   sandbox/container_gen/boost/container_gen/is_iteratable_heap_selector.hpp (contents, props changed)
   sandbox/container_gen/boost/container_gen/is_multiple_assoc_selector.hpp (contents, props changed)
   sandbox/container_gen/boost/container_gen/is_mutable_heap_selector.hpp (contents, props changed)
   sandbox/container_gen/boost/container_gen/is_order_iter_heap_selector.hpp (contents, props changed)
   sandbox/container_gen/boost/container_gen/is_ptr_selector.hpp (contents, props changed)
   sandbox/container_gen/boost/container_gen/is_queue_selector.hpp (contents, props changed)
   sandbox/container_gen/boost/container_gen/is_random_access_selector.hpp (contents, props changed)
   sandbox/container_gen/boost/container_gen/is_recursive_selector.hpp (contents, props changed)
   sandbox/container_gen/boost/container_gen/is_reversible_selector.hpp (contents, props changed)
   sandbox/container_gen/boost/container_gen/is_stack_selector.hpp (contents, props changed)
   sandbox/container_gen/boost/container_gen/is_std_heap_selector.hpp (contents, props changed)
   sandbox/container_gen/boost/container_gen/is_tr1_selector.hpp (contents, props changed)
   sandbox/container_gen/boost/container_gen/is_unique_assoc_selector.hpp (contents, props changed)
   sandbox/container_gen/boost/container_gen/push_range_function_gen.hpp (contents, props changed)
   sandbox/container_gen/boost/container_gen/selector_keywords.hpp (contents, props changed)
   sandbox/container_gen/boost/container_gen/selectors.hpp (contents, props changed)
   sandbox/container_gen/boost/container_gen/selectors_fwd.hpp (contents, props changed)
   sandbox/container_gen/boost/container_gen/splice_function_gen.hpp (contents, props changed)
   sandbox/container_gen/boost/detail/metafunction/is_mutable_heap.hpp (contents, props changed)
   sandbox/container_gen/libs/container_gen/doc/changelog.qbk (contents, props changed)
   sandbox/container_gen/libs/container_gen/doc/container_gen.qbk (contents, props changed)
   sandbox/container_gen/libs/container_gen/doc/html/container_gen/changelog.html (contents, props changed)
   sandbox/container_gen/libs/container_gen/doc/html/container_gen/reference.html (contents, props changed)
   sandbox/container_gen/libs/container_gen/doc/html/container_gen/reference/container_gen.html (contents, props changed)
   sandbox/container_gen/libs/container_gen/doc/html/container_gen/reference/emplace_assoc_function_gen.html (contents, props changed)
   sandbox/container_gen/libs/container_gen/doc/html/container_gen/reference/emplace_function_gen.html (contents, props changed)
   sandbox/container_gen/libs/container_gen/doc/html/container_gen/reference/has_emplace_mfunc_selector.html (contents, props changed)
   sandbox/container_gen/libs/container_gen/doc/html/container_gen/reference/has_stable_iters_selector.html (contents, props changed)
   sandbox/container_gen/libs/container_gen/doc/html/container_gen/reference/insert_range_function_gen.html (contents, props changed)
   sandbox/container_gen/libs/container_gen/doc/html/container_gen/reference/insert_range_result_gen.html (contents, props changed)
   sandbox/container_gen/libs/container_gen/doc/html/container_gen/reference/is_allocator_selector.html (contents, props changed)
   sandbox/container_gen/libs/container_gen/doc/html/container_gen/reference/is_associative_selector.html (contents, props changed)
   sandbox/container_gen/libs/container_gen/doc/html/container_gen/reference/is_compare_selector.html (contents, props changed)
   sandbox/container_gen/libs/container_gen/doc/html/container_gen/reference/is_container_selector.html (contents, props changed)
   sandbox/container_gen/libs/container_gen/doc/html/container_gen/reference/is_flat_assoc_selector.html (contents, props changed)
   sandbox/container_gen/libs/container_gen/doc/html/container_gen/reference/is_hashed_assoc_selector.html (contents, props changed)
   sandbox/container_gen/libs/container_gen/doc/html/container_gen/reference/is_hasher_selector.html (contents, props changed)
   sandbox/container_gen/libs/container_gen/doc/html/container_gen/reference/is_heap_selector.html (contents, props changed)
   sandbox/container_gen/libs/container_gen/doc/html/container_gen/reference/is_iter_heap_selector.html (contents, props changed)
   sandbox/container_gen/libs/container_gen/doc/html/container_gen/reference/is_multiple_assoc_selector.html (contents, props changed)
   sandbox/container_gen/libs/container_gen/doc/html/container_gen/reference/is_ord_iter_heap_selector.html (contents, props changed)
   sandbox/container_gen/libs/container_gen/doc/html/container_gen/reference/is_ptr_selector.html (contents, props changed)
   sandbox/container_gen/libs/container_gen/doc/html/container_gen/reference/is_queue_selector.html (contents, props changed)
   sandbox/container_gen/libs/container_gen/doc/html/container_gen/reference/is_random_access_selector.html (contents, props changed)
   sandbox/container_gen/libs/container_gen/doc/html/container_gen/reference/is_recursive_selector.html (contents, props changed)
   sandbox/container_gen/libs/container_gen/doc/html/container_gen/reference/is_reversible_selector.html (contents, props changed)
   sandbox/container_gen/libs/container_gen/doc/html/container_gen/reference/is_stack_selector.html (contents, props changed)
   sandbox/container_gen/libs/container_gen/doc/html/container_gen/reference/is_std_heap_selector.html (contents, props changed)
   sandbox/container_gen/libs/container_gen/doc/html/container_gen/reference/is_tr1_selector.html (contents, props changed)
   sandbox/container_gen/libs/container_gen/doc/html/container_gen/reference/is_unique_assoc_selector.html (contents, props changed)
   sandbox/container_gen/libs/container_gen/doc/html/container_gen/reference/push_range_function_gen.html (contents, props changed)
   sandbox/container_gen/libs/container_gen/doc/html/container_gen/reference/selectors.html (contents, props changed)
   sandbox/container_gen/libs/container_gen/doc/html/container_gen/reference/splice_function_gen.html (contents, props changed)
   sandbox/container_gen/libs/container_gen/doc/html/index.html (contents, props changed)
   sandbox/container_gen/libs/container_gen/doc/ref_container_gen.qbk (contents, props changed)
   sandbox/container_gen/libs/container_gen/doc/ref_emplace_assoc_func_gen.qbk (contents, props changed)
   sandbox/container_gen/libs/container_gen/doc/ref_emplace_function_gen.qbk (contents, props changed)
   sandbox/container_gen/libs/container_gen/doc/ref_has_emplace_mfunc_sel.qbk (contents, props changed)
   sandbox/container_gen/libs/container_gen/doc/ref_has_stable_iters_sel.qbk (contents, props changed)
   sandbox/container_gen/libs/container_gen/doc/ref_ins_range_function_gen.qbk (contents, props changed)
   sandbox/container_gen/libs/container_gen/doc/ref_insert_range_result_gen.qbk (contents, props changed)
   sandbox/container_gen/libs/container_gen/doc/ref_is_allocator_selector.qbk (contents, props changed)
   sandbox/container_gen/libs/container_gen/doc/ref_is_associative_selector.qbk (contents, props changed)
   sandbox/container_gen/libs/container_gen/doc/ref_is_compare_selector.qbk (contents, props changed)
   sandbox/container_gen/libs/container_gen/doc/ref_is_container_selector.qbk (contents, props changed)
   sandbox/container_gen/libs/container_gen/doc/ref_is_flat_assoc_selector.qbk (contents, props changed)
   sandbox/container_gen/libs/container_gen/doc/ref_is_hashed_assoc_sel.qbk (contents, props changed)
   sandbox/container_gen/libs/container_gen/doc/ref_is_hasher_selector.qbk (contents, props changed)
   sandbox/container_gen/libs/container_gen/doc/ref_is_heap_selector.qbk (contents, props changed)
   sandbox/container_gen/libs/container_gen/doc/ref_is_iter_heap_selector.qbk (contents, props changed)
   sandbox/container_gen/libs/container_gen/doc/ref_is_multiple_assoc_sel.qbk (contents, props changed)
   sandbox/container_gen/libs/container_gen/doc/ref_is_muta_heap_selector.qbk (contents, props changed)
   sandbox/container_gen/libs/container_gen/doc/ref_is_o_iter_heap_selector.qbk (contents, props changed)
   sandbox/container_gen/libs/container_gen/doc/ref_is_ptr_selector.qbk (contents, props changed)
   sandbox/container_gen/libs/container_gen/doc/ref_is_queue_selector.qbk (contents, props changed)
   sandbox/container_gen/libs/container_gen/doc/ref_is_rand_access_selector.qbk (contents, props changed)
   sandbox/container_gen/libs/container_gen/doc/ref_is_recursive_selector.qbk (contents, props changed)
   sandbox/container_gen/libs/container_gen/doc/ref_is_reversible_selector.qbk (contents, props changed)
   sandbox/container_gen/libs/container_gen/doc/ref_is_stack_selector.qbk (contents, props changed)
   sandbox/container_gen/libs/container_gen/doc/ref_is_std_heap_selector.qbk (contents, props changed)
   sandbox/container_gen/libs/container_gen/doc/ref_is_tr1_selector.qbk (contents, props changed)
   sandbox/container_gen/libs/container_gen/doc/ref_is_unique_assoc_sel.qbk (contents, props changed)
   sandbox/container_gen/libs/container_gen/doc/ref_push_range_function_gen.qbk (contents, props changed)
   sandbox/container_gen/libs/container_gen/doc/ref_selectors.qbk (contents, props changed)
   sandbox/container_gen/libs/container_gen/doc/ref_splice_function_gen.qbk (contents, props changed)
   sandbox/container_gen/libs/container_gen/doc/reference.qbk (contents, props changed)
   sandbox/container_gen/libs/container_gen/test/emplace_function_gen.cpp (contents, props changed)
   sandbox/container_gen/libs/container_gen/test/selectors.cpp (contents, props changed)
Deleted:
   sandbox/container_gen/libs/container_gen/doc/html/container_gen/reference/is_muta_heap_selector.html
   sandbox/tree_node/boost/detail/
   sandbox/tree_node/boost/tree_node.hpp
   sandbox/tree_node/boost/tree_node/_detail/
   sandbox/tree_node/boost/tree_node/algorithm/
   sandbox/tree_node/boost/tree_node/associative_node.hpp
   sandbox/tree_node/boost/tree_node/associative_node_fwd.hpp
   sandbox/tree_node/boost/tree_node/balancer/
   sandbox/tree_node/boost/tree_node/base.hpp
   sandbox/tree_node/boost/tree_node/binary_node.hpp
   sandbox/tree_node/boost/tree_node/binary_node_fwd.hpp
   sandbox/tree_node/boost/tree_node/container/binode.hpp
   sandbox/tree_node/boost/tree_node/container/binode_associative.hpp
   sandbox/tree_node/boost/tree_node/container/binode_associative_fwd.hpp
   sandbox/tree_node/boost/tree_node/container/binode_fwd.hpp
   sandbox/tree_node/boost/tree_node/intrinsic/
   sandbox/tree_node/boost/tree_node/iterator/
   sandbox/tree_node/boost/tree_node/key/
   sandbox/tree_node/boost/tree_node/nary_node.hpp
   sandbox/tree_node/boost/tree_node/nary_node_fwd.hpp
   sandbox/tree_node/boost/tree_node/preprocessor.hpp
   sandbox/tree_node/boost/tree_node/traits/
   sandbox/tree_node/boost/tree_node/traversal_state.hpp
   sandbox/tree_node/boost/tree_node/with_accumulation.hpp
   sandbox/tree_node/boost/tree_node/with_accumulation_fwd.hpp
   sandbox/tree_node/boost/tree_node/with_count.hpp
   sandbox/tree_node/boost/tree_node/with_count_fwd.hpp
   sandbox/tree_node/boost/tree_node/with_height.hpp
   sandbox/tree_node/boost/tree_node/with_height_fwd.hpp
   sandbox/tree_node/boost/tree_node/with_position.hpp
   sandbox/tree_node/boost/tree_node/with_position_fwd.hpp
   sandbox/tree_node/boost/tree_node/with_red_black_flag.hpp
   sandbox/tree_node/boost/tree_node/with_red_black_flag_fwd.hpp
   sandbox/tree_node/boost/typeof/
   sandbox/tree_node/libs/tree_node/example/assoc_iterator_functions.hpp
   sandbox/tree_node/libs/tree_node/example/associative_node.cpp
   sandbox/tree_node/libs/tree_node/example/binary_node.cpp
   sandbox/tree_node/libs/tree_node/example/iterator_functions.hpp
   sandbox/tree_node/libs/tree_node/example/match_predicate.hpp
   sandbox/tree_node/libs/tree_node/example/nary_node.cpp
   sandbox/tree_node/libs/tree_node/example/output_functions.hpp
   sandbox/tree_node/libs/tree_node/example/output_preamble.cpp
   sandbox/tree_node/libs/tree_node/example/output_preamble.hpp
   sandbox/tree_node/libs/tree_node/example/output_tabs.cpp
   sandbox/tree_node/libs/tree_node/example/output_tabs.hpp
   sandbox/tree_node/libs/tree_node/example/type_definitions.hpp
   sandbox/tree_node/libs/tree_node/test/associative_node.cpp
   sandbox/tree_node/libs/tree_node/test/avl_tree.hpp
   sandbox/tree_node/libs/tree_node/test/binary_node.cpp
   sandbox/tree_node/libs/tree_node/test/binode_container.cpp
   sandbox/tree_node/libs/tree_node/test/binode_map.cpp
   sandbox/tree_node/libs/tree_node/test/binode_set.cpp
   sandbox/tree_node/libs/tree_node/test/container_functions.hpp
   sandbox/tree_node/libs/tree_node/test/iterator_functions.hpp
   sandbox/tree_node/libs/tree_node/test/nary_node.cpp
   sandbox/tree_node/libs/tree_node/test/red_black_tree.hpp
   sandbox/tree_node/libs/tree_node/test/sequence.hpp
   sandbox/tree_node/libs/tree_node/test/type_definitions.hpp

Added: sandbox/container_gen/boost/container_gen/c_str_cmp_selectors.hpp
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ sandbox/container_gen/boost/container_gen/c_str_cmp_selectors.hpp 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84957)
@@ -0,0 +1,197 @@
+//=============================================================================
+// 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)
+//=============================================================================
+
+#ifndef BOOST_CONTAINER_GEN_C_STR_CMP_SELECTORS_HPP_INCLUDED
+#define BOOST_CONTAINER_GEN_C_STR_CMP_SELECTORS_HPP_INCLUDED
+
+#include <boost/config.hpp>
+#include <boost/tr1/type_traits.hpp>
+#include <boost/container_gen/c_str_cmp_selectors_fwd.hpp>
+
+#if !defined BOOST_NO_CWCHAR
+#include <cwchar>
+#endif
+
+//[reference__c_str_compare_selectors
+namespace boost {
+
+ struct c_str_equal_to_selector
+ {
+ template <typename T>
+ struct apply
+ {
+ class type
+ {
+ inline static bool
+ _evaluate(
+ T const& lhs
+ , T const& rhs
+ , ::std::tr1::true_type
+ )
+ {
+ return !strcmp(lhs, rhs);
+ }
+
+//<-
+#if !defined BOOST_NO_CWCHAR
+//->
+ inline static bool
+ _evaluate(
+ T const& lhs
+ , T const& rhs
+ , ::std::tr1::false_type
+ )
+ {
+ return !wcscmp(lhs, rhs);
+ }
+//<-
+#endif
+//->
+
+ public:
+ typedef bool result_type;
+ typedef T const& first_argument_type;
+ typedef T const& second_argument_type;
+
+ inline bool operator()(T const& lhs, T const& rhs) const
+ {
+ return type::_evaluate(
+ lhs
+ , rhs
+ , ::std::tr1::is_same<
+ typename ::std::tr1::remove_cv<
+ typename ::std::tr1::remove_pointer<
+ typename ::std::tr1::remove_extent<T>::type
+ >::type
+ >::type
+ , char
+ >()
+ );
+ }
+ };
+ };
+ };
+
+ struct c_str_less_than_selector
+ {
+ template <typename T>
+ struct apply
+ {
+ class type
+ {
+ inline static bool
+ _evaluate(
+ T const& lhs
+ , T const& rhs
+ , ::std::tr1::true_type
+ )
+ {
+ return strcmp(lhs, rhs) < 0;
+ }
+
+//<-
+#if !defined BOOST_NO_CWCHAR
+//->
+ inline static bool
+ _evaluate(
+ T const& lhs
+ , T const& rhs
+ , ::std::tr1::false_type
+ )
+ {
+ return wcscmp(lhs, rhs) < 0;
+ }
+//<-
+#endif
+//->
+
+ public:
+ typedef bool result_type;
+ typedef T const& first_argument_type;
+ typedef T const& second_argument_type;
+
+ inline bool operator()(T const& lhs, T const& rhs) const
+ {
+ return type::_evaluate(
+ lhs
+ , rhs
+ , ::std::tr1::is_same<
+ typename ::std::tr1::remove_cv<
+ typename ::std::tr1::remove_pointer<
+ typename ::std::tr1::remove_extent<T>::type
+ >::type
+ >::type
+ , char
+ >()
+ );
+ }
+ };
+ };
+ };
+
+ struct c_str_greater_than_selector
+ {
+ template <typename T>
+ struct apply
+ {
+ class type
+ {
+ inline static bool
+ _evaluate(
+ T const& lhs
+ , T const& rhs
+ , ::std::tr1::true_type
+ )
+ {
+ return 0 < strcmp(lhs, rhs);
+ }
+
+//<-
+#if !defined BOOST_NO_CWCHAR
+//->
+ inline static bool
+ _evaluate(
+ T const& lhs
+ , T const& rhs
+ , ::std::tr1::false_type
+ )
+ {
+ return 0 < wcscmp(lhs, rhs);
+ }
+//<-
+#endif
+//->
+
+ public:
+ typedef bool result_type;
+ typedef T const& first_argument_type;
+ typedef T const& second_argument_type;
+
+ inline bool operator()(T const& lhs, T const& rhs) const
+ {
+ return type::_evaluate(
+ lhs
+ , rhs
+ , ::std::tr1::is_same<
+ typename ::std::tr1::remove_cv<
+ typename ::std::tr1::remove_pointer<
+ typename ::std::tr1::remove_extent<T>::type
+ >::type
+ >::type
+ , char
+ >()
+ );
+ }
+ };
+ };
+ };
+} // namespace boost
+//]
+
+#endif // BOOST_CONTAINER_GEN_C_STR_CMP_SELECTORS_HPP_INCLUDED
+

Added: sandbox/container_gen/boost/container_gen/c_str_cmp_selectors_fwd.hpp
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ sandbox/container_gen/boost/container_gen/c_str_cmp_selectors_fwd.hpp 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84957)
@@ -0,0 +1,20 @@
+//=============================================================================
+// 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)
+//=============================================================================
+
+#ifndef BOOST_CONTAINER_GEN_C_STR_CMP_SELECTORS_FWD_HPP_INCLUDED
+#define BOOST_CONTAINER_GEN_C_STR_CMP_SELECTORS_FWD_HPP_INCLUDED
+
+namespace boost {
+
+ struct c_str_equal_to_selector;
+ struct c_str_less_than_selector;
+ struct c_str_greater_than_selector;
+} // namespace boost
+
+#endif // BOOST_CONTAINER_GEN_C_STR_CMP_SELECTORS_FWD_HPP_INCLUDED
+

Added: sandbox/container_gen/boost/container_gen/container_gen.hpp
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ sandbox/container_gen/boost/container_gen/container_gen.hpp 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84957)
@@ -0,0 +1,2180 @@
+//=============================================================================
+// Copyright 1997, 1998, 1999, 2000 University of Notre Dame.
+// Copyright 2010 Thomas Claveirole
+// Copyright 2011-2013 Cromwell D. Enage
+// Authors: Andrew Lumsdaine, Lie-Quan Lee, Jeremy G. Siek, Thomas Claveirole,
+// 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)
+//=============================================================================
+
+#ifndef BOOST_CONTAINER_GEN_CONTAINER_GEN_HPP_INCLUDED
+#define BOOST_CONTAINER_GEN_CONTAINER_GEN_HPP_INCLUDED
+
+#include <boost/config.hpp>
+#include <boost/mpl/apply_wrap.hpp>
+#include <boost/mpl/aux_/lambda_support.hpp>
+
+#if defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+
+//=============================================================================
+// The main container_gen metafunction uses partial specialization,
+// so we also include a workaround.
+//=============================================================================
+
+namespace boost {
+
+ template <typename Selector, typename T1, typename T2>
+ struct container_gen
+ //<-
+ : ::boost::mpl::apply_wrap2<Selector,T1,T2>
+ //->
+ {
+ // typedef .... type;
+ //<-
+ BOOST_MPL_AUX_LAMBDA_SUPPORT(3, container_gen, (Selector, T1, T2))
+ //->
+ };
+} // namespace boost
+
+#else // !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+
+#include <vector>
+#include <deque>
+#include <list>
+#include <set>
+#include <map>
+
+#if !defined BOOST_MSVC
+#include <boost/array.hpp>
+#include <boost/tr1/array.hpp>
+#include <boost/ptr_container/ptr_array.hpp>
+#endif
+
+#include <boost/unordered/unordered_set.hpp>
+#include <boost/unordered/unordered_map.hpp>
+
+#include <boost/tr1/unordered_set.hpp>
+#include <boost/tr1/unordered_map.hpp>
+
+#include <boost/ptr_container/ptr_vector.hpp>
+#include <boost/ptr_container/ptr_deque.hpp>
+#include <boost/ptr_container/ptr_list.hpp>
+#include <boost/ptr_container/ptr_set.hpp>
+#include <boost/ptr_container/ptr_map.hpp>
+#include <boost/ptr_container/ptr_unordered_set.hpp>
+#include <boost/ptr_container/ptr_unordered_map.hpp>
+
+#include <boost/container/vector.hpp>
+#include <boost/container/stable_vector.hpp>
+#include <boost/container/deque.hpp>
+#include <boost/container/list.hpp>
+#include <boost/container/slist.hpp>
+#include <boost/container/set.hpp>
+#include <boost/container/map.hpp>
+#include <boost/container/flat_set.hpp>
+#include <boost/container/flat_map.hpp>
+
+#include <boost/tr1/type_traits.hpp>
+#include <boost/mpl/if.hpp>
+#include <boost/mpl/eval_if.hpp>
+
+#include <boost/parameter.hpp>
+
+#include <boost/container_gen/selectors.hpp>
+#include <boost/container_gen/selector_keywords.hpp>
+#include <boost/container_gen/detail/selector_signatures.hpp>
+
+//[reference__container_gen__stable_vector_specialization
+namespace boost {
+
+ //<-
+ template <typename Selector, typename T1, typename T2>
+ struct container_gen
+ {
+ BOOST_MPL_AUX_LAMBDA_SUPPORT(3, container_gen, (Selector, T1, T2))
+ };
+
+#if !defined BOOST_MSVC
+ template <typename T0, typename T1, typename ValueType>
+ struct container_gen<array_selector<T0,T1>,ValueType,void>
+ {
+ private:
+ typedef typename detail::array_selector_signature::bind<T0,T1>::type
+ _arg_pack;
+ typedef typename ::boost::parameter::value_type<
+ _arg_pack
+ , constant_size_tag
+ >::type
+ _constant_size;
+
+ public:
+ typedef typename ::boost::mpl::if_<
+ typename ::boost::parameter::value_type<
+ _arg_pack
+ , is_tr1_not_boost_tag
+ , ::boost::mpl::false_
+ >::type
+ , ::std::tr1::array<ValueType,_constant_size::value>
+ , ::boost::array<ValueType,_constant_size::value>
+ >::type
+ type;
+ };
+#endif // BOOST_MSVC
+
+ template <typename T0, typename T1, typename ValueType>
+ struct container_gen<vector_selector<T0,T1>,ValueType,void>
+ {
+ private:
+ typedef typename detail::sequence_selector_signature::bind<T0,T1>::type
+ _arg_pack;
+ typedef typename ::boost::mpl::apply_wrap1<
+ typename ::boost::parameter::value_type<
+ _arg_pack
+ , allocator_selector_tag
+ , std_allocator_selector
+ >::type
+ , ValueType
+ >::type
+ _allocator;
+
+ public:
+ typedef typename ::boost::mpl::if_<
+ typename ::boost::parameter::value_type<
+ _arg_pack
+ , is_boost_not_std_tag
+ , ::boost::mpl::false_
+ >::type
+ , ::boost::container::vector<ValueType,_allocator>
+ , ::std::vector<ValueType,_allocator>
+ >::type
+ type;
+ };
+ //->
+
+ template <typename AllocatorSelector, typename ValueType>
+ struct container_gen<
+ stable_vector_selector<AllocatorSelector>
+ , ValueType
+ , void
+ >
+ {
+ typedef ::boost::container::stable_vector<
+ ValueType
+ , typename ::boost::mpl::apply_wrap1<
+ AllocatorSelector
+ , ValueType
+ >::type
+ >
+ type;
+ };
+
+ //<-
+ template <typename T0, typename T1, typename ValueType>
+ struct container_gen<deque_selector<T0,T1>,ValueType,void>
+ {
+ private:
+ typedef typename detail::sequence_selector_signature::bind<T0,T1>::type
+ _arg_pack;
+ typedef typename ::boost::mpl::apply_wrap1<
+ typename ::boost::parameter::value_type<
+ _arg_pack
+ , allocator_selector_tag
+ , std_allocator_selector
+ >::type
+ , ValueType
+ >::type
+ _allocator;
+
+ public:
+ typedef typename ::boost::mpl::if_<
+ typename ::boost::parameter::value_type<
+ _arg_pack
+ , is_boost_not_std_tag
+ , ::boost::mpl::false_
+ >::type
+ , ::boost::container::deque<ValueType,_allocator>
+ , ::std::deque<ValueType,_allocator>
+ >::type
+ type;
+ };
+
+ template <typename T0, typename T1, typename ValueType>
+ struct container_gen<list_selector<T0,T1>,ValueType,void>
+ {
+ private:
+ typedef typename detail::sequence_selector_signature::bind<T0,T1>::type
+ _arg_pack;
+ typedef typename ::boost::mpl::apply_wrap1<
+ typename ::boost::parameter::value_type<
+ _arg_pack
+ , allocator_selector_tag
+ , std_allocator_selector
+ >::type
+ , ValueType
+ >::type
+ _allocator;
+
+ public:
+ typedef typename ::boost::mpl::if_<
+ typename ::boost::parameter::value_type<
+ _arg_pack
+ , is_boost_not_std_tag
+ , ::boost::mpl::false_
+ >::type
+ , ::boost::container::list<ValueType,_allocator>
+ , ::std::list<ValueType,_allocator>
+ >::type
+ type;
+ };
+
+ template <typename AllocatorSelector, typename ValueType>
+ struct container_gen<slist_selector<AllocatorSelector>,ValueType,void>
+ {
+ typedef ::boost::container::slist<
+ ValueType
+ , typename ::boost::mpl::apply_wrap1<
+ AllocatorSelector
+ , ValueType
+ >::type
+ >
+ type;
+ };
+
+ template <
+ typename T0
+ , typename T1
+ , typename T2
+ , typename Key
+ , typename Mapped
+ >
+ struct container_gen<set_selector<T0,T1,T2>,Key,Mapped>
+ {
+ private:
+ typedef typename detail::boost_or_std_assoc_selector_signature::bind<
+ T0
+ , T1
+ , T2
+ >::type
+ _arg_pack;
+ typedef typename ::boost::mpl::apply_wrap1<
+ typename ::boost::parameter::value_type<
+ _arg_pack
+ , compare_selector_tag
+ , less_than_selector
+ >::type
+ , Key
+ >::type
+ _comparator;
+ typedef typename ::boost::mpl::apply_wrap2<
+ typename ::boost::parameter::value_type<
+ _arg_pack
+ , allocator_selector_tag
+ , std_allocator_selector
+ >::type
+ , Key
+ , Mapped
+ >::type
+ _allocator;
+
+ public:
+ typedef typename ::boost::mpl::eval_if<
+ typename ::boost::parameter::value_type<
+ _arg_pack
+ , is_boost_not_std_tag
+ , ::boost::mpl::false_
+ >::type
+ , ::boost::mpl::if_<
+ ::std::tr1::is_void<Mapped>
+ , ::boost::container::set<Key,_comparator,_allocator>
+ , ::boost::container::map<
+ Key
+ , Mapped
+ , _comparator
+ , _allocator
+ >
+ >
+ , ::boost::mpl::if_<
+ ::std::tr1::is_void<Mapped>
+ , ::std::set<Key,_comparator,_allocator>
+ , ::std::map<Key,Mapped,_comparator,_allocator>
+ >
+ >::type
+ type;
+ };
+
+ template <
+ typename T0
+ , typename T1
+ , typename T2
+ , typename Key
+ , typename Mapped
+ >
+ struct container_gen<map_selector<T0,T1,T2>,Key,Mapped>
+ {
+ private:
+ typedef typename detail::boost_or_std_assoc_selector_signature::bind<
+ T0
+ , T1
+ , T2
+ >::type
+ _arg_pack;
+ typedef typename ::boost::mpl::apply_wrap1<
+ typename ::boost::parameter::value_type<
+ _arg_pack
+ , compare_selector_tag
+ , less_than_selector
+ >::type
+ , Key
+ >::type
+ _comparator;
+ typedef typename ::boost::mpl::apply_wrap2<
+ typename ::boost::parameter::value_type<
+ _arg_pack
+ , allocator_selector_tag
+ , std_allocator_selector
+ >::type
+ , Key
+ , Mapped
+ >::type
+ _allocator;
+
+ public:
+ typedef typename ::boost::mpl::eval_if<
+ typename ::boost::parameter::value_type<
+ _arg_pack
+ , is_boost_not_std_tag
+ , ::boost::mpl::false_
+ >::type
+ , ::boost::mpl::if_<
+ ::std::tr1::is_void<Mapped>
+ , ::boost::container::set<Key,_comparator,_allocator>
+ , ::boost::container::map<
+ Key
+ , Mapped
+ , _comparator
+ , _allocator
+ >
+ >
+ , ::boost::mpl::if_<
+ ::std::tr1::is_void<Mapped>
+ , ::std::set<Key,_comparator,_allocator>
+ , ::std::map<Key,Mapped,_comparator,_allocator>
+ >
+ >::type
+ type;
+ };
+
+ template <
+ typename T0
+ , typename T1
+ , typename T2
+ , typename Key
+ , typename Mapped
+ >
+ struct container_gen<multiset_selector<T0,T1,T2>,Key,Mapped>
+ {
+ private:
+ typedef typename detail::boost_or_std_assoc_selector_signature::bind<
+ T0
+ , T1
+ , T2
+ >::type
+ _arg_pack;
+ typedef typename ::boost::mpl::apply_wrap1<
+ typename ::boost::parameter::value_type<
+ _arg_pack
+ , compare_selector_tag
+ , less_than_selector
+ >::type
+ , Key
+ >::type
+ _comparator;
+ typedef typename ::boost::mpl::apply_wrap2<
+ typename ::boost::parameter::value_type<
+ _arg_pack
+ , allocator_selector_tag
+ , std_allocator_selector
+ >::type
+ , Key
+ , Mapped
+ >::type
+ _allocator;
+
+ public:
+ typedef typename ::boost::mpl::eval_if<
+ typename ::boost::parameter::value_type<
+ _arg_pack
+ , is_boost_not_std_tag
+ , ::boost::mpl::false_
+ >::type
+ , ::boost::mpl::if_<
+ ::std::tr1::is_void<Mapped>
+ , ::boost::container::multiset<
+ Key
+ , _comparator
+ , _allocator
+ >
+ , ::boost::container::multimap<
+ Key
+ , Mapped
+ , _comparator
+ , _allocator
+ >
+ >
+ , ::boost::mpl::if_<
+ ::std::tr1::is_void<Mapped>
+ , ::std::multiset<Key,_comparator,_allocator>
+ , ::std::multimap<Key,Mapped,_comparator,_allocator>
+ >
+ >::type
+ type;
+ };
+
+ template <
+ typename T0
+ , typename T1
+ , typename T2
+ , typename Key
+ , typename Mapped
+ >
+ struct container_gen<multimap_selector<T0,T1,T2>,Key,Mapped>
+ {
+ private:
+ typedef typename detail::boost_or_std_assoc_selector_signature::bind<
+ T0
+ , T1
+ , T2
+ >::type
+ _arg_pack;
+ typedef typename ::boost::mpl::apply_wrap1<
+ typename ::boost::parameter::value_type<
+ _arg_pack
+ , compare_selector_tag
+ , less_than_selector
+ >::type
+ , Key
+ >::type
+ _comparator;
+ typedef typename ::boost::mpl::apply_wrap2<
+ typename ::boost::parameter::value_type<
+ _arg_pack
+ , allocator_selector_tag
+ , std_allocator_selector
+ >::type
+ , Key
+ , Mapped
+ >::type
+ _allocator;
+
+ public:
+ typedef typename ::boost::mpl::eval_if<
+ typename ::boost::parameter::value_type<
+ _arg_pack
+ , is_boost_not_std_tag
+ , ::boost::mpl::false_
+ >::type
+ , ::boost::mpl::if_<
+ ::std::tr1::is_void<Mapped>
+ , ::boost::container::multiset<
+ Key
+ , _comparator
+ , _allocator
+ >
+ , ::boost::container::multimap<
+ Key
+ , Mapped
+ , _comparator
+ , _allocator
+ >
+ >
+ , ::boost::mpl::if_<
+ ::std::tr1::is_void<Mapped>
+ , ::std::multiset<Key,_comparator,_allocator>
+ , ::std::multimap<Key,Mapped,_comparator,_allocator>
+ >
+ >::type
+ type;
+ };
+
+ template <
+ typename T0
+ , typename T1
+ , typename T2
+ , typename T3
+ , typename Key
+ , typename Mapped
+ >
+ struct container_gen<hash_set_selector<T0,T1,T2,T3>,Key,Mapped>
+ {
+ private:
+ typedef typename detail::hashed_associative_selector_signature::bind<
+ T0
+ , T1
+ , T2
+ , T3
+ >::type
+ _arg_pack;
+ typedef typename ::boost::parameter::value_type<
+ _arg_pack
+ , is_tr1_not_boost_tag
+ , ::boost::mpl::false_
+ >::type
+ _is_tr1;
+ typedef typename ::boost::mpl::apply_wrap1<
+ typename ::boost::parameter::value_type<
+ _arg_pack
+ , hasher_selector_tag
+ , typename ::boost::mpl::if_<
+ _is_tr1
+ , tr1_hash_selector
+ , boost_hash_selector
+ >::type
+ >::type
+ , Key
+ >::type
+ _hasher;
+ typedef typename ::boost::mpl::apply_wrap1<
+ typename ::boost::parameter::value_type<
+ _arg_pack
+ , compare_selector_tag
+ , equal_to_selector
+ >::type
+ , Key
+ >::type
+ _comparator;
+ typedef typename ::boost::mpl::apply_wrap1<
+ typename ::boost::parameter::value_type<
+ _arg_pack
+ , allocator_selector_tag
+ , std_allocator_selector
+ >::type
+ , Key
+ >::type
+ _allocator;
+
+ public:
+ typedef typename ::boost::mpl::eval_if<
+ _is_tr1
+ , ::boost::mpl::if_<
+ ::std::tr1::is_void<Mapped>
+ , ::std::tr1::unordered_set<
+ Key
+ , _hasher
+ , _comparator
+ , _allocator
+ >
+ , ::std::tr1::unordered_map<
+ Key
+ , Mapped
+ , _hasher
+ , _comparator
+ , _allocator
+ >
+ >
+ , ::boost::mpl::if_<
+ ::std::tr1::is_void<Mapped>
+ , ::boost::unordered_set<
+ Key
+ , _hasher
+ , _comparator
+ , _allocator
+ >
+ , ::boost::unordered_map<
+ Key
+ , Mapped
+ , _hasher
+ , _comparator
+ , _allocator
+ >
+ >
+ >::type
+ type;
+ };
+
+ template <
+ typename T0
+ , typename T1
+ , typename T2
+ , typename T3
+ , typename Key
+ , typename Mapped
+ >
+ struct container_gen<hash_map_selector<T0,T1,T2,T3>,Key,Mapped>
+ {
+ private:
+ typedef typename detail::hashed_associative_selector_signature::bind<
+ T0
+ , T1
+ , T2
+ , T3
+ >::type
+ _arg_pack;
+ typedef typename ::boost::parameter::value_type<
+ _arg_pack
+ , is_tr1_not_boost_tag
+ , ::boost::mpl::false_
+ >::type
+ _is_tr1;
+ typedef typename ::boost::mpl::apply_wrap1<
+ typename ::boost::parameter::value_type<
+ _arg_pack
+ , hasher_selector_tag
+ , typename ::boost::mpl::if_<
+ _is_tr1
+ , tr1_hash_selector
+ , boost_hash_selector
+ >::type
+ >::type
+ , Key
+ >::type
+ _hasher;
+ typedef typename ::boost::mpl::apply_wrap1<
+ typename ::boost::parameter::value_type<
+ _arg_pack
+ , compare_selector_tag
+ , equal_to_selector
+ >::type
+ , Key
+ >::type
+ _comparator;
+ typedef typename ::boost::mpl::apply_wrap1<
+ typename ::boost::parameter::value_type<
+ _arg_pack
+ , allocator_selector_tag
+ , std_allocator_selector
+ >::type
+ , Key
+ >::type
+ _allocator;
+
+ public:
+ typedef typename ::boost::mpl::eval_if<
+ _is_tr1
+ , ::boost::mpl::if_<
+ ::std::tr1::is_void<Mapped>
+ , ::std::tr1::unordered_set<
+ Key
+ , _hasher
+ , _comparator
+ , _allocator
+ >
+ , ::std::tr1::unordered_map<
+ Key
+ , Mapped
+ , _hasher
+ , _comparator
+ , _allocator
+ >
+ >
+ , ::boost::mpl::if_<
+ ::std::tr1::is_void<Mapped>
+ , ::boost::unordered_set<
+ Key
+ , _hasher
+ , _comparator
+ , _allocator
+ >
+ , ::boost::unordered_map<
+ Key
+ , Mapped
+ , _hasher
+ , _comparator
+ , _allocator
+ >
+ >
+ >::type
+ type;
+ };
+
+ template <
+ typename T0
+ , typename T1
+ , typename T2
+ , typename T3
+ , typename Key
+ , typename Mapped
+ >
+ struct container_gen<hash_multiset_selector<T0,T1,T2,T3>,Key,Mapped>
+ {
+ private:
+ typedef typename detail::hashed_associative_selector_signature::bind<
+ T0
+ , T1
+ , T2
+ , T3
+ >::type
+ _arg_pack;
+ typedef typename ::boost::parameter::value_type<
+ _arg_pack
+ , is_tr1_not_boost_tag
+ , ::boost::mpl::false_
+ >::type
+ _is_tr1;
+ typedef typename ::boost::mpl::apply_wrap1<
+ typename ::boost::parameter::value_type<
+ _arg_pack
+ , hasher_selector_tag
+ , typename ::boost::mpl::if_<
+ _is_tr1
+ , tr1_hash_selector
+ , boost_hash_selector
+ >::type
+ >::type
+ , Key
+ >::type
+ _hasher;
+ typedef typename ::boost::mpl::apply_wrap1<
+ typename ::boost::parameter::value_type<
+ _arg_pack
+ , compare_selector_tag
+ , equal_to_selector
+ >::type
+ , Key
+ >::type
+ _comparator;
+ typedef typename ::boost::mpl::apply_wrap1<
+ typename ::boost::parameter::value_type<
+ _arg_pack
+ , allocator_selector_tag
+ , std_allocator_selector
+ >::type
+ , Key
+ >::type
+ _allocator;
+
+ public:
+ typedef typename ::boost::mpl::eval_if<
+ _is_tr1
+ , ::boost::mpl::if_<
+ ::std::tr1::is_void<Mapped>
+ , ::std::tr1::unordered_multiset<
+ Key
+ , _hasher
+ , _comparator
+ , _allocator
+ >
+ , ::std::tr1::unordered_multimap<
+ Key
+ , Mapped
+ , _hasher
+ , _comparator
+ , _allocator
+ >
+ >
+ , ::boost::mpl::if_<
+ ::std::tr1::is_void<Mapped>
+ , ::boost::unordered_multiset<
+ Key
+ , _hasher
+ , _comparator
+ , _allocator
+ >
+ , ::boost::unordered_multimap<
+ Key
+ , Mapped
+ , _hasher
+ , _comparator
+ , _allocator
+ >
+ >
+ >::type
+ type;
+ };
+
+ template <
+ typename T0
+ , typename T1
+ , typename T2
+ , typename T3
+ , typename Key
+ , typename Mapped
+ >
+ struct container_gen<hash_multimap_selector<T0,T1,T2,T3>,Key,Mapped>
+ {
+ private:
+ typedef typename detail::hashed_associative_selector_signature::bind<
+ T0
+ , T1
+ , T2
+ , T3
+ >::type
+ _arg_pack;
+ typedef typename ::boost::parameter::value_type<
+ _arg_pack
+ , is_tr1_not_boost_tag
+ , ::boost::mpl::false_
+ >::type
+ _is_tr1;
+ typedef typename ::boost::mpl::apply_wrap1<
+ typename ::boost::parameter::value_type<
+ _arg_pack
+ , hasher_selector_tag
+ , typename ::boost::mpl::if_<
+ _is_tr1
+ , tr1_hash_selector
+ , boost_hash_selector
+ >::type
+ >::type
+ , Key
+ >::type
+ _hasher;
+ typedef typename ::boost::mpl::apply_wrap1<
+ typename ::boost::parameter::value_type<
+ _arg_pack
+ , compare_selector_tag
+ , equal_to_selector
+ >::type
+ , Key
+ >::type
+ _comparator;
+ typedef typename ::boost::mpl::apply_wrap1<
+ typename ::boost::parameter::value_type<
+ _arg_pack
+ , allocator_selector_tag
+ , std_allocator_selector
+ >::type
+ , Key
+ >::type
+ _allocator;
+
+ public:
+ typedef typename ::boost::mpl::eval_if<
+ _is_tr1
+ , ::boost::mpl::if_<
+ ::std::tr1::is_void<Mapped>
+ , ::std::tr1::unordered_multiset<
+ Key
+ , _hasher
+ , _comparator
+ , _allocator
+ >
+ , ::std::tr1::unordered_multimap<
+ Key
+ , Mapped
+ , _hasher
+ , _comparator
+ , _allocator
+ >
+ >
+ , ::boost::mpl::if_<
+ ::std::tr1::is_void<Mapped>
+ , ::boost::unordered_multiset<
+ Key
+ , _hasher
+ , _comparator
+ , _allocator
+ >
+ , ::boost::unordered_multimap<
+ Key
+ , Mapped
+ , _hasher
+ , _comparator
+ , _allocator
+ >
+ >
+ >::type
+ type;
+ };
+
+ template <typename T0, typename T1, typename Key, typename Mapped>
+ struct container_gen<flat_set_selector<T0,T1>,Key,Mapped>
+ {
+ private:
+ typedef typename detail::associative_selector_signature::bind<
+ T0
+ , T1
+ >::type
+ _arg_pack;
+ typedef typename ::boost::mpl::apply_wrap1<
+ typename ::boost::parameter::value_type<
+ _arg_pack
+ , compare_selector_tag
+ , less_than_selector
+ >::type
+ , Key
+ >::type
+ _comparator;
+ typedef typename ::boost::mpl::apply_wrap2<
+ typename ::boost::parameter::value_type<
+ _arg_pack
+ , allocator_selector_tag
+ , std_flat_allocator_selector
+ >::type
+ , Key
+ , Mapped
+ >::type
+ _allocator;
+
+ public:
+ typedef typename ::boost::mpl::if_<
+ ::std::tr1::is_void<Mapped>
+ , ::boost::container::flat_set<Key,_comparator,_allocator>
+ , ::boost::container::flat_map<
+ Key
+ , Mapped
+ , _comparator
+ , _allocator
+ >
+ >::type
+ type;
+ };
+
+ template <typename T0, typename T1, typename Key, typename Mapped>
+ struct container_gen<flat_map_selector<T0,T1>,Key,Mapped>
+ {
+ private:
+ typedef typename detail::associative_selector_signature::bind<
+ T0
+ , T1
+ >::type
+ _arg_pack;
+ typedef typename ::boost::mpl::apply_wrap1<
+ typename ::boost::parameter::value_type<
+ _arg_pack
+ , compare_selector_tag
+ , less_than_selector
+ >::type
+ , Key
+ >::type
+ _comparator;
+ typedef typename ::boost::mpl::apply_wrap2<
+ typename ::boost::parameter::value_type<
+ _arg_pack
+ , allocator_selector_tag
+ , std_flat_allocator_selector
+ >::type
+ , Key
+ , Mapped
+ >::type
+ _allocator;
+
+ public:
+ typedef typename ::boost::mpl::if_<
+ ::std::tr1::is_void<Mapped>
+ , ::boost::container::flat_set<Key,_comparator,_allocator>
+ , ::boost::container::flat_map<
+ Key
+ , Mapped
+ , _comparator
+ , _allocator
+ >
+ >::type
+ type;
+ };
+
+ template <typename T0, typename T1, typename Key, typename Mapped>
+ struct container_gen<flat_multiset_selector<T0,T1>,Key,Mapped>
+ {
+ private:
+ typedef typename detail::associative_selector_signature::bind<
+ T0
+ , T1
+ >::type
+ _arg_pack;
+ typedef typename ::boost::mpl::apply_wrap1<
+ typename ::boost::parameter::value_type<
+ _arg_pack
+ , compare_selector_tag
+ , less_than_selector
+ >::type
+ , Key
+ >::type
+ _comparator;
+ typedef typename ::boost::mpl::apply_wrap2<
+ typename ::boost::parameter::value_type<
+ _arg_pack
+ , allocator_selector_tag
+ , std_flat_allocator_selector
+ >::type
+ , Key
+ , Mapped
+ >::type
+ _allocator;
+
+ public:
+ typedef typename ::boost::mpl::if_<
+ ::std::tr1::is_void<Mapped>
+ , ::boost::container::flat_multiset<
+ Key
+ , _comparator
+ , _allocator
+ >
+ , ::boost::container::flat_multimap<
+ Key
+ , Mapped
+ , _comparator
+ , _allocator
+ >
+ >::type
+ type;
+ };
+
+ template <typename T0, typename T1, typename Key, typename Mapped>
+ struct container_gen<flat_multimap_selector<T0,T1>,Key,Mapped>
+ {
+ private:
+ typedef typename detail::associative_selector_signature::bind<
+ T0
+ , T1
+ >::type
+ _arg_pack;
+ typedef typename ::boost::mpl::apply_wrap1<
+ typename ::boost::parameter::value_type<
+ _arg_pack
+ , compare_selector_tag
+ , less_than_selector
+ >::type
+ , Key
+ >::type
+ _comparator;
+ typedef typename ::boost::mpl::apply_wrap2<
+ typename ::boost::parameter::value_type<
+ _arg_pack
+ , allocator_selector_tag
+ , std_flat_allocator_selector
+ >::type
+ , Key
+ , Mapped
+ >::type
+ _allocator;
+
+ public:
+ typedef typename ::boost::mpl::if_<
+ ::std::tr1::is_void<Mapped>
+ , ::boost::container::flat_multiset<
+ Key
+ , _comparator
+ , _allocator
+ >
+ , ::boost::container::flat_multimap<
+ Key
+ , Mapped
+ , _comparator
+ , _allocator
+ >
+ >::type
+ type;
+ };
+
+#if !defined BOOST_MSVC
+ template <typename T0, typename T1, typename ValueType>
+ struct container_gen<ptr_array_selector<T0,T1>,ValueType,void>
+ {
+ private:
+ typedef typename detail::ptr_array_selector_signature::bind<
+ T0
+ , T1
+ >::type
+ _arg_pack;
+ typedef typename ::boost::parameter::value_type<
+ _arg_pack
+ , constant_size_tag
+ >::type
+ _constant_size;
+
+ public:
+ typedef ::boost::ptr_array<
+ ValueType
+ , _constant_size::value
+ , typename ::boost::parameter::value_type<
+ _arg_pack
+ , ptr_clone_allocator_tag
+ , ::boost::heap_clone_allocator
+ >::type
+ >
+ type;
+ };
+#endif // BOOST_MSVC
+
+ template <typename T0, typename T1, typename ValueType>
+ struct container_gen<ptr_vector_selector<T0,T1>,ValueType,void>
+ {
+ private:
+ typedef typename detail::ptr_sequence_selector_signature::bind<
+ T0
+ , T1
+ >::type
+ _arg_pack;
+
+ public:
+ typedef ::boost::ptr_vector<
+ ValueType
+ , typename ::boost::parameter::value_type<
+ _arg_pack
+ , ptr_clone_allocator_tag
+ , ::boost::heap_clone_allocator
+ >::type
+ , typename ::boost::parameter::value_type<
+ _arg_pack
+ , ptr_allocator_tag
+ , ::std::allocator<void*>
+ >::type
+ >
+ type;
+ };
+
+ template <typename T0, typename T1, typename ValueType>
+ struct container_gen<ptr_deque_selector<T0,T1>,ValueType,void>
+ {
+ private:
+ typedef typename detail::ptr_sequence_selector_signature::bind<
+ T0
+ , T1
+ >::type
+ _arg_pack;
+
+ public:
+ typedef ::boost::ptr_deque<
+ ValueType
+ , typename ::boost::parameter::value_type<
+ _arg_pack
+ , ptr_clone_allocator_tag
+ , ::boost::heap_clone_allocator
+ >::type
+ , typename ::boost::parameter::value_type<
+ _arg_pack
+ , ptr_allocator_tag
+ , ::std::allocator<void*>
+ >::type
+ >
+ type;
+ };
+
+ template <typename T0, typename T1, typename ValueType>
+ struct container_gen<ptr_list_selector<T0,T1>,ValueType,void>
+ {
+ private:
+ typedef typename detail::ptr_sequence_selector_signature::bind<
+ T0
+ , T1
+ >::type
+ _arg_pack;
+
+ public:
+ typedef ::boost::ptr_list<
+ ValueType
+ , typename ::boost::parameter::value_type<
+ _arg_pack
+ , ptr_clone_allocator_tag
+ , ::boost::heap_clone_allocator
+ >::type
+ , typename ::boost::parameter::value_type<
+ _arg_pack
+ , ptr_allocator_tag
+ , ::std::allocator<void*>
+ >::type
+ >
+ type;
+ };
+
+ template <
+ typename T0
+ , typename T1
+ , typename T2
+ , typename Key
+ , typename Mapped
+ >
+ struct container_gen<ptr_set_selector<T0,T1,T2>,Key,Mapped>
+ {
+ private:
+ typedef typename detail::ptr_associative_selector_signature::bind<
+ T0
+ , T1
+ , T2
+ >::type
+ _arg_pack;
+ typedef typename ::boost::mpl::apply_wrap1<
+ typename ::boost::parameter::value_type<
+ _arg_pack
+ , compare_selector_tag
+ , less_than_selector
+ >::type
+ , Key
+ >::type
+ _comparator;
+ typedef typename ::boost::parameter::value_type<
+ _arg_pack
+ , ptr_clone_allocator_tag
+ , ::boost::heap_clone_allocator
+ >::type
+ _clone_allocator;
+ typedef typename ::boost::parameter::value_type<
+ _arg_pack
+ , ptr_allocator_tag
+ , ::std::allocator<void*>
+ >::type
+ _allocator;
+
+ public:
+ typedef typename ::boost::mpl::if_<
+ ::std::tr1::is_void<Mapped>
+ , ::boost::ptr_set<
+ Key
+ , _comparator
+ , _clone_allocator
+ , _allocator
+ >
+ , ::boost::ptr_map<
+ Key
+ , Mapped
+ , _comparator
+ , _clone_allocator
+ , _allocator
+ >
+ >::type
+ type;
+ };
+
+ template <
+ typename T0
+ , typename T1
+ , typename T2
+ , typename Key
+ , typename Mapped
+ >
+ struct container_gen<ptr_map_selector<T0,T1,T2>,Key,Mapped>
+ {
+ private:
+ typedef typename detail::ptr_associative_selector_signature::bind<
+ T0
+ , T1
+ , T2
+ >::type
+ _arg_pack;
+ typedef typename ::boost::mpl::apply_wrap1<
+ typename ::boost::parameter::value_type<
+ _arg_pack
+ , compare_selector_tag
+ , less_than_selector
+ >::type
+ , Key
+ >::type
+ _comparator;
+ typedef typename ::boost::parameter::value_type<
+ _arg_pack
+ , ptr_clone_allocator_tag
+ , ::boost::heap_clone_allocator
+ >::type
+ _clone_allocator;
+ typedef typename ::boost::parameter::value_type<
+ _arg_pack
+ , ptr_allocator_tag
+ , ::std::allocator<void*>
+ >::type
+ _allocator;
+
+ public:
+ typedef typename ::boost::mpl::if_<
+ ::std::tr1::is_void<Mapped>
+ , ::boost::ptr_set<
+ Key
+ , _comparator
+ , _clone_allocator
+ , _allocator
+ >
+ , ::boost::ptr_map<
+ Key
+ , Mapped
+ , _comparator
+ , _clone_allocator
+ , _allocator
+ >
+ >::type
+ type;
+ };
+
+ template <
+ typename T0
+ , typename T1
+ , typename T2
+ , typename Key
+ , typename Mapped
+ >
+ struct container_gen<ptr_multiset_selector<T0,T1,T2>,Key,Mapped>
+ {
+ private:
+ typedef typename detail::ptr_associative_selector_signature::bind<
+ T0
+ , T1
+ , T2
+ >::type
+ _arg_pack;
+ typedef typename ::boost::mpl::apply_wrap1<
+ typename ::boost::parameter::value_type<
+ _arg_pack
+ , compare_selector_tag
+ , less_than_selector
+ >::type
+ , Key
+ >::type
+ _comparator;
+ typedef typename ::boost::parameter::value_type<
+ _arg_pack
+ , ptr_clone_allocator_tag
+ , ::boost::heap_clone_allocator
+ >::type
+ _clone_allocator;
+ typedef typename ::boost::parameter::value_type<
+ _arg_pack
+ , ptr_allocator_tag
+ , ::std::allocator<void*>
+ >::type
+ _allocator;
+
+ public:
+ typedef typename ::boost::mpl::if_<
+ ::std::tr1::is_void<Mapped>
+ , ::boost::ptr_multiset<
+ Key
+ , _comparator
+ , _clone_allocator
+ , _allocator
+ >
+ , ::boost::ptr_multimap<
+ Key
+ , Mapped
+ , _comparator
+ , _clone_allocator
+ , _allocator
+ >
+ >::type
+ type;
+ };
+
+ template <
+ typename T0
+ , typename T1
+ , typename T2
+ , typename Key
+ , typename Mapped
+ >
+ struct container_gen<ptr_multimap_selector<T0,T1,T2>,Key,Mapped>
+ {
+ private:
+ typedef typename detail::ptr_associative_selector_signature::bind<
+ T0
+ , T1
+ , T2
+ >::type
+ _arg_pack;
+ typedef typename ::boost::mpl::apply_wrap1<
+ typename ::boost::parameter::value_type<
+ _arg_pack
+ , compare_selector_tag
+ , less_than_selector
+ >::type
+ , Key
+ >::type
+ _comparator;
+ typedef typename ::boost::parameter::value_type<
+ _arg_pack
+ , ptr_clone_allocator_tag
+ , ::boost::heap_clone_allocator
+ >::type
+ _clone_allocator;
+ typedef typename ::boost::parameter::value_type<
+ _arg_pack
+ , ptr_allocator_tag
+ , ::std::allocator<void*>
+ >::type
+ _allocator;
+
+ public:
+ typedef typename ::boost::mpl::if_<
+ ::std::tr1::is_void<Mapped>
+ , ::boost::ptr_multiset<
+ Key
+ , _comparator
+ , _clone_allocator
+ , _allocator
+ >
+ , ::boost::ptr_multimap<
+ Key
+ , Mapped
+ , _comparator
+ , _clone_allocator
+ , _allocator
+ >
+ >::type
+ type;
+ };
+
+ template <
+ typename T0
+ , typename T1
+ , typename T2
+ , typename T3
+ , typename Key
+ , typename Mapped
+ >
+ struct container_gen<ptr_hash_set_selector<T0,T1,T2,T3>,Key,Mapped>
+ {
+ private:
+ typedef typename detail::ptr_hashed_assoc_selector_signature::bind<
+ T0
+ , T1
+ , T2
+ , T3
+ >::type
+ _arg_pack;
+ typedef typename ::boost::mpl::apply_wrap1<
+ typename ::boost::parameter::value_type<
+ _arg_pack
+ , hasher_selector_tag
+ , boost_hash_selector
+ >::type
+ , Key
+ >::type
+ _hasher;
+ typedef typename ::boost::mpl::apply_wrap1<
+ typename ::boost::parameter::value_type<
+ _arg_pack
+ , compare_selector_tag
+ , equal_to_selector
+ >::type
+ , Key
+ >::type
+ _comparator;
+ typedef typename ::boost::parameter::value_type<
+ _arg_pack
+ , ptr_clone_allocator_tag
+ , ::boost::heap_clone_allocator
+ >::type
+ _clone_allocator;
+ typedef typename ::boost::parameter::value_type<
+ _arg_pack
+ , ptr_allocator_tag
+ , ::std::allocator<void*>
+ >::type
+ _allocator;
+
+ public:
+ typedef typename ::boost::mpl::if_<
+ ::std::tr1::is_void<Mapped>
+ , ::boost::ptr_unordered_set<
+ Key
+ , _hasher
+ , _comparator
+ , _clone_allocator
+ , _allocator
+ >
+ , ::boost::ptr_unordered_map<
+ Key
+ , Mapped
+ , _hasher
+ , _comparator
+ , _clone_allocator
+ , _allocator
+ >
+ >::type
+ type;
+ };
+
+ template <
+ typename T0
+ , typename T1
+ , typename T2
+ , typename T3
+ , typename Key
+ , typename Mapped
+ >
+ struct container_gen<ptr_hash_map_selector<T0,T1,T2,T3>,Key,Mapped>
+ {
+ private:
+ typedef typename detail::ptr_hashed_assoc_selector_signature::bind<
+ T0
+ , T1
+ , T2
+ , T3
+ >::type
+ _arg_pack;
+ typedef typename ::boost::mpl::apply_wrap1<
+ typename ::boost::parameter::value_type<
+ _arg_pack
+ , hasher_selector_tag
+ , boost_hash_selector
+ >::type
+ , Key
+ >::type
+ _hasher;
+ typedef typename ::boost::mpl::apply_wrap1<
+ typename ::boost::parameter::value_type<
+ _arg_pack
+ , compare_selector_tag
+ , equal_to_selector
+ >::type
+ , Key
+ >::type
+ _comparator;
+ typedef typename ::boost::parameter::value_type<
+ _arg_pack
+ , ptr_clone_allocator_tag
+ , ::boost::heap_clone_allocator
+ >::type
+ _clone_allocator;
+ typedef typename ::boost::parameter::value_type<
+ _arg_pack
+ , ptr_allocator_tag
+ , ::std::allocator<void*>
+ >::type
+ _allocator;
+
+ public:
+ typedef typename ::boost::mpl::if_<
+ ::std::tr1::is_void<Mapped>
+ , ::boost::ptr_unordered_set<
+ Key
+ , _hasher
+ , _comparator
+ , _clone_allocator
+ , _allocator
+ >
+ , ::boost::ptr_unordered_map<
+ Key
+ , Mapped
+ , _hasher
+ , _comparator
+ , _clone_allocator
+ , _allocator
+ >
+ >::type
+ type;
+ };
+
+ template <
+ typename T0
+ , typename T1
+ , typename T2
+ , typename T3
+ , typename Key
+ , typename Mapped
+ >
+ struct container_gen<ptr_hash_multiset_selector<T0,T1,T2,T3>,Key,Mapped>
+ {
+ private:
+ typedef typename detail::ptr_hashed_assoc_selector_signature::bind<
+ T0
+ , T1
+ , T2
+ , T3
+ >::type
+ _arg_pack;
+ typedef typename ::boost::mpl::apply_wrap1<
+ typename ::boost::parameter::value_type<
+ _arg_pack
+ , hasher_selector_tag
+ , boost_hash_selector
+ >::type
+ , Key
+ >::type
+ _hasher;
+ typedef typename ::boost::mpl::apply_wrap1<
+ typename ::boost::parameter::value_type<
+ _arg_pack
+ , compare_selector_tag
+ , equal_to_selector
+ >::type
+ , Key
+ >::type
+ _comparator;
+ typedef typename ::boost::parameter::value_type<
+ _arg_pack
+ , ptr_clone_allocator_tag
+ , ::boost::heap_clone_allocator
+ >::type
+ _clone_allocator;
+ typedef typename ::boost::parameter::value_type<
+ _arg_pack
+ , ptr_allocator_tag
+ , ::std::allocator<void*>
+ >::type
+ _allocator;
+
+ public:
+ typedef typename ::boost::mpl::if_<
+ ::std::tr1::is_void<Mapped>
+ , ::boost::ptr_unordered_multiset<
+ Key
+ , _hasher
+ , _comparator
+ , _clone_allocator
+ , _allocator
+ >
+ , ::boost::ptr_unordered_multimap<
+ Key
+ , Mapped
+ , _hasher
+ , _comparator
+ , _clone_allocator
+ , _allocator
+ >
+ >::type
+ type;
+ };
+
+ template <
+ typename T0
+ , typename T1
+ , typename T2
+ , typename T3
+ , typename Key
+ , typename Mapped
+ >
+ struct container_gen<ptr_hash_multimap_selector<T0,T1,T2,T3>,Key,Mapped>
+ {
+ private:
+ typedef typename detail::ptr_hashed_assoc_selector_signature::bind<
+ T0
+ , T1
+ , T2
+ , T3
+ >::type
+ _arg_pack;
+ typedef typename ::boost::mpl::apply_wrap1<
+ typename ::boost::parameter::value_type<
+ _arg_pack
+ , hasher_selector_tag
+ , boost_hash_selector
+ >::type
+ , Key
+ >::type
+ _hasher;
+ typedef typename ::boost::mpl::apply_wrap1<
+ typename ::boost::parameter::value_type<
+ _arg_pack
+ , compare_selector_tag
+ , equal_to_selector
+ >::type
+ , Key
+ >::type
+ _comparator;
+ typedef typename ::boost::parameter::value_type<
+ _arg_pack
+ , ptr_clone_allocator_tag
+ , ::boost::heap_clone_allocator
+ >::type
+ _clone_allocator;
+ typedef typename ::boost::parameter::value_type<
+ _arg_pack
+ , ptr_allocator_tag
+ , ::std::allocator<void*>
+ >::type
+ _allocator;
+
+ public:
+ typedef typename ::boost::mpl::if_<
+ ::std::tr1::is_void<Mapped>
+ , ::boost::ptr_unordered_multiset<
+ Key
+ , _hasher
+ , _comparator
+ , _clone_allocator
+ , _allocator
+ >
+ , ::boost::ptr_unordered_multimap<
+ Key
+ , Mapped
+ , _hasher
+ , _comparator
+ , _clone_allocator
+ , _allocator
+ >
+ >::type
+ type;
+ };
+ //->
+} // namespace boost
+//]
+
+#include <stack>
+#include <queue>
+
+#include <boost/heap/priority_queue.hpp>
+#include <boost/heap/d_ary_heap.hpp>
+#include <boost/heap/binomial_heap.hpp>
+#include <boost/heap/fibonacci_heap.hpp>
+#include <boost/heap/pairing_heap.hpp>
+#include <boost/heap/skew_heap.hpp>
+
+#include <boost/cstdint.hpp>
+
+namespace boost {
+
+ template <typename SequenceSelector, typename ValueType>
+ struct container_gen<
+ stack_selector<SequenceSelector>
+ , ValueType
+ , void
+ >
+ {
+ typedef ::std::stack<
+ ValueType
+ , typename container_gen<SequenceSelector,ValueType>::type
+ >
+ type;
+ };
+
+ template <typename SequenceSelector, typename ValueType>
+ struct container_gen<
+ queue_selector<SequenceSelector>
+ , ValueType
+ , void
+ >
+ {
+ typedef ::std::queue<
+ ValueType
+ , typename container_gen<SequenceSelector,ValueType>::type
+ >
+ type;
+ };
+
+ template <typename T0, typename T1, typename ValueType>
+ struct container_gen<
+ std_heap_selector<T0,T1>
+ , ValueType
+ , void
+ >
+ {
+ private:
+ typedef typename detail::std_heap_selector_signature::bind<T0,T1>::type
+ _arg_pack;
+
+ public:
+ typedef ::std::priority_queue<
+ ValueType
+ , typename container_gen<
+ typename ::boost::parameter::value_type<
+ _arg_pack
+ , sequence_selector_tag
+ , dequeS
+ >::type
+ , ValueType
+ >::type
+ , typename ::boost::mpl::apply_wrap1<
+ typename ::boost::parameter::value_type<
+ _arg_pack
+ , compare_selector_tag
+ , less_than_selector
+ >::type
+ , ValueType
+ >::type
+ >
+ type;
+ };
+
+ template <
+ typename T0
+ , typename T1
+ , typename T2
+ , typename T3
+ , typename ValueType
+ >
+ struct container_gen<
+ priority_queue_selector<T0,T1,T2,T3>
+ , ValueType
+ , void
+ >
+ {
+ private:
+ typedef typename detail::priority_queue_selector_signature::bind<
+ T0
+ , T1
+ , T2
+ , T3
+ >::type
+ _arg_pack;
+
+ public:
+ typedef ::boost::heap::priority_queue<
+ ValueType
+ , ::boost::heap::compare<
+ typename ::boost::mpl::apply_wrap1<
+ typename ::boost::parameter::value_type<
+ _arg_pack
+ , compare_selector_tag
+ , less_than_selector
+ >::type
+ , ValueType
+ >::type
+ >
+ , ::boost::heap::allocator<
+ typename ::boost::mpl::apply_wrap1<
+ typename ::boost::parameter::value_type<
+ _arg_pack
+ , allocator_selector_tag
+ , std_allocator_selector
+ >::type
+ , ValueType
+ >::type
+ >
+ , ::boost::heap::stable<
+ ::boost::heap::detail::extract_stable<_arg_pack>::value
+ >
+ , ::boost::heap::stability_counter_type<
+ typename ::boost::parameter::binding<
+ _arg_pack
+ , ::boost::heap::tag::stability_counter_type
+ , ::boost::uintmax_t
+ >::type
+ >
+ >
+ type;
+ };
+
+ template <
+ typename T0
+ , typename T1
+ , typename T2
+ , typename T3
+ , typename T4
+ , typename T5
+ , typename ValueType
+ >
+ struct container_gen<
+ d_ary_heap_selector<T0,T1,T2,T3,T4,T5>
+ , ValueType
+ , void
+ >
+ {
+ private:
+ typedef typename detail::d_ary_heap_selector_signature::bind<
+ T0
+ , T1
+ , T2
+ , T3
+ , T4
+ , T5
+ >::type
+ _arg_pack;
+
+ public:
+ typedef ::boost::heap::d_ary_heap<
+ ValueType
+ , ::boost::heap::arity<
+ ::boost::parameter::binding<
+ _arg_pack
+ , ::boost::heap::tag::arity
+ >::type::value
+ >
+ , ::boost::heap::compare<
+ typename ::boost::mpl::apply_wrap1<
+ typename ::boost::parameter::value_type<
+ _arg_pack
+ , compare_selector_tag
+ , less_than_selector
+ >::type
+ , ValueType
+ >::type
+ >
+ , ::boost::heap::allocator<
+ typename ::boost::mpl::apply_wrap1<
+ typename ::boost::parameter::value_type<
+ _arg_pack
+ , allocator_selector_tag
+ , std_allocator_selector
+ >::type
+ , ValueType
+ >::type
+ >
+ , ::boost::heap::stable<
+ ::boost::heap::detail::extract_stable<_arg_pack>::value
+ >
+ , ::boost::heap::stability_counter_type<
+ typename ::boost::parameter::binding<
+ _arg_pack
+ , ::boost::heap::tag::stability_counter_type
+ , ::boost::uintmax_t
+ >::type
+ >
+ , ::boost::heap::mutable_<
+ ::boost::heap::detail::extract_mutable<_arg_pack>::value
+ >
+ >
+ type;
+ };
+
+ template <
+ typename T0
+ , typename T1
+ , typename T2
+ , typename T3
+ , typename ValueType
+ >
+ struct container_gen<
+ binomial_heap_selector<T0,T1,T2,T3>
+ , ValueType
+ , void
+ >
+ {
+ private:
+ typedef typename detail::binomial_heap_selector_signature::bind<
+ T0
+ , T1
+ , T2
+ , T3
+ >::type
+ _arg_pack;
+
+ public:
+ typedef ::boost::heap::binomial_heap<
+ ValueType
+ , ::boost::heap::compare<
+ typename ::boost::mpl::apply_wrap1<
+ typename ::boost::parameter::value_type<
+ _arg_pack
+ , compare_selector_tag
+ , less_than_selector
+ >::type
+ , ValueType
+ >::type
+ >
+ , ::boost::heap::allocator<
+ typename ::boost::mpl::apply_wrap1<
+ typename ::boost::parameter::value_type<
+ _arg_pack
+ , allocator_selector_tag
+ , std_allocator_selector
+ >::type
+ , ValueType
+ >::type
+ >
+ , ::boost::heap::stable<
+ ::boost::heap::detail::extract_stable<_arg_pack>::value
+ >
+ , ::boost::heap::stability_counter_type<
+ typename ::boost::parameter::binding<
+ _arg_pack
+ , ::boost::heap::tag::stability_counter_type
+ , ::boost::uintmax_t
+ >::type
+ >
+ >
+ type;
+ };
+
+ template <
+ typename T0
+ , typename T1
+ , typename T2
+ , typename T3
+ , typename T4
+ , typename ValueType
+ >
+ struct container_gen<
+ fibonacci_heap_selector<T0,T1,T2,T3,T4>
+ , ValueType
+ , void
+ >
+ {
+ private:
+ typedef typename detail::fibonacci_heap_selector_signature::bind<
+ T0
+ , T1
+ , T2
+ , T3
+ , T4
+ >::type
+ _arg_pack;
+
+ public:
+ typedef ::boost::heap::fibonacci_heap<
+ ValueType
+ , ::boost::heap::compare<
+ typename ::boost::mpl::apply_wrap1<
+ typename ::boost::parameter::value_type<
+ _arg_pack
+ , compare_selector_tag
+ , less_than_selector
+ >::type
+ , ValueType
+ >::type
+ >
+ , ::boost::heap::allocator<
+ typename ::boost::mpl::apply_wrap1<
+ typename ::boost::parameter::value_type<
+ _arg_pack
+ , allocator_selector_tag
+ , std_allocator_selector
+ >::type
+ , ValueType
+ >::type
+ >
+ , ::boost::heap::stable<
+ ::boost::heap::detail::extract_stable<_arg_pack>::value
+ >
+ , ::boost::heap::stability_counter_type<
+ typename ::boost::parameter::binding<
+ _arg_pack
+ , ::boost::heap::tag::stability_counter_type
+ , ::boost::uintmax_t
+ >::type
+ >
+ , ::boost::heap::constant_time_size<
+ ::boost::parameter::binding<
+ _arg_pack
+ , ::boost::heap::tag::constant_time_size
+ , ::boost::mpl::true_
+ >::type::value
+ >
+ >
+ type;
+ };
+
+ template <
+ typename T0
+ , typename T1
+ , typename T2
+ , typename T3
+ , typename T4
+ , typename ValueType
+ >
+ struct container_gen<
+ pairing_heap_selector<T0,T1,T2,T3,T4>
+ , ValueType
+ , void
+ >
+ {
+ private:
+ typedef typename detail::pairing_heap_selector_signature::bind<
+ T0
+ , T1
+ , T2
+ , T3
+ , T4
+ >::type
+ _arg_pack;
+
+ public:
+ typedef ::boost::heap::pairing_heap<
+ ValueType
+ , ::boost::heap::compare<
+ typename ::boost::mpl::apply_wrap1<
+ typename ::boost::parameter::value_type<
+ _arg_pack
+ , compare_selector_tag
+ , less_than_selector
+ >::type
+ , ValueType
+ >::type
+ >
+ , ::boost::heap::allocator<
+ typename ::boost::mpl::apply_wrap1<
+ typename ::boost::parameter::value_type<
+ _arg_pack
+ , allocator_selector_tag
+ , std_allocator_selector
+ >::type
+ , ValueType
+ >::type
+ >
+ , ::boost::heap::stable<
+ ::boost::heap::detail::extract_stable<_arg_pack>::value
+ >
+ , ::boost::heap::stability_counter_type<
+ typename ::boost::parameter::binding<
+ _arg_pack
+ , ::boost::heap::tag::stability_counter_type
+ , ::boost::uintmax_t
+ >::type
+ >
+ , ::boost::heap::constant_time_size<
+ ::boost::parameter::binding<
+ _arg_pack
+ , ::boost::heap::tag::constant_time_size
+ , ::boost::mpl::true_
+ >::type::value
+ >
+ >
+ type;
+ };
+
+ template <
+ typename T0
+ , typename T1
+ , typename T2
+ , typename T3
+ , typename T4
+ , typename T5
+ , typename T6
+ , typename ValueType
+ >
+ struct container_gen<
+ skew_heap_selector<T0,T1,T2,T3,T4,T5,T6>
+ , ValueType
+ , void
+ >
+ {
+ private:
+ typedef typename detail::skew_heap_selector_signature::bind<
+ T0
+ , T1
+ , T2
+ , T3
+ , T4
+ , T5
+ , T6
+ >::type
+ _arg_pack;
+
+ public:
+ typedef ::boost::heap::skew_heap<
+ ValueType
+ , ::boost::heap::compare<
+ typename ::boost::mpl::apply_wrap1<
+ typename ::boost::parameter::value_type<
+ _arg_pack
+ , compare_selector_tag
+ , less_than_selector
+ >::type
+ , ValueType
+ >::type
+ >
+ , ::boost::heap::allocator<
+ typename ::boost::mpl::apply_wrap1<
+ typename ::boost::parameter::value_type<
+ _arg_pack
+ , allocator_selector_tag
+ , std_allocator_selector
+ >::type
+ , ValueType
+ >::type
+ >
+ , ::boost::heap::stable<
+ ::boost::heap::detail::extract_stable<_arg_pack>::value
+ >
+ , ::boost::heap::store_parent_pointer<
+ ::boost::parameter::binding<
+ _arg_pack
+ , ::boost::heap::tag::store_parent_pointer
+ , ::boost::mpl::false_
+ >::type::value
+ >
+ , ::boost::heap::stability_counter_type<
+ typename ::boost::parameter::binding<
+ _arg_pack
+ , ::boost::heap::tag::stability_counter_type
+ , ::boost::uintmax_t
+ >::type
+ >
+ , ::boost::heap::constant_time_size<
+ ::boost::parameter::binding<
+ _arg_pack
+ , ::boost::heap::tag::constant_time_size
+ , ::boost::mpl::true_
+ >::type::value
+ >
+ , ::boost::heap::mutable_<
+ ::boost::heap::detail::extract_mutable<_arg_pack>::value
+ >
+ >
+ type;
+ };
+} // namespace boost
+
+#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+
+#endif // BOOST_CONTAINER_GEN_CONTAINER_GEN_HPP_INCLUDED
+

Added: sandbox/container_gen/boost/container_gen/container_gen_fwd.hpp
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ sandbox/container_gen/boost/container_gen/container_gen_fwd.hpp 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84957)
@@ -0,0 +1,21 @@
+//=============================================================================
+// 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)
+//=============================================================================
+
+#ifndef BOOST_CONTAINER_GEN_CONTAINER_GEN_FWD_HPP_INCLUDED
+#define BOOST_CONTAINER_GEN_CONTAINER_GEN_FWD_HPP_INCLUDED
+
+//[reference__container_gen
+namespace boost {
+
+ template <typename Selector, typename T1, typename T2 = void>
+ struct container_gen;
+} // namespace boost
+//]
+
+#endif // BOOST_CONTAINER_GEN_CONTAINER_GEN_FWD_HPP_INCLUDED
+

Added: sandbox/container_gen/boost/container_gen/detail/preprocessor.hpp
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ sandbox/container_gen/boost/container_gen/detail/preprocessor.hpp 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84957)
@@ -0,0 +1,60 @@
+//=============================================================================
+// 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)
+//=============================================================================
+
+#ifndef BOOST_CONTAINER_GEN_DETAIL_PREPROCESSOR_HPP_INCLUDED
+#define BOOST_CONTAINER_GEN_DETAIL_PREPROCESSOR_HPP_INCLUDED
+
+#include <boost/config.hpp>
+
+#if defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+
+#include <boost/preprocessor/arithmetic/inc.hpp>
+#include <boost/preprocessor/comparison/not_equal.hpp>
+#include <boost/preprocessor/seq/size.hpp>
+#include <boost/preprocessor/tuple/elem.hpp>
+#include <boost/detail/preprocessor/binary_seq_inc_for_param.hpp>
+
+#if !defined BOOST_CONTAINER_GEN_MAX_PARAMETER_COUNT
+#define BOOST_CONTAINER_GEN_MAX_PARAMETER_COUNT 7
+#endif
+
+#define BOOST_CONTAINER_GEN_PP_PARAM_PRED(r, binary_seq) \
+BOOST_PP_NOT_EQUAL( \
+ BOOST_PP_INC(BOOST_CONTAINER_GEN_MAX_PARAMETER_COUNT) \
+ , BOOST_PP_SEQ_SIZE(binary_seq) \
+) \
+//!
+
+#define BOOST_CONTAINER_GEN_PP_PARAM_PRED_WITH_DATA(r, tuple) \
+BOOST_PP_NOT_EQUAL( \
+ BOOST_PP_INC(BOOST_CONTAINER_GEN_MAX_PARAMETER_COUNT) \
+ , BOOST_PP_SEQ_SIZE(BOOST_PP_TUPLE_ELEM(2, 0, tuple)) \
+) \
+//!
+
+#define BOOST_CONTAINER_GEN_PP_PARAM_INC(r, binary_seq) \
+BOOST_DETAIL_PP_BINARY_SEQ_INC_FOR_PARAM(binary_seq) \
+//!
+
+#define BOOST_CONTAINER_GEN_PP_PARAM_INC_WITH_DATA(r, tuple) \
+( \
+ BOOST_DETAIL_PP_BINARY_SEQ_INC_FOR_PARAM( \
+ BOOST_PP_TUPLE_ELEM(2, 0, tuple) \
+ ) \
+ , BOOST_PP_TUPLE_ELEM(2, 1, tuple) \
+) \
+//!
+
+#else // !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+
+#include <boost/container/detail/preprocessor.hpp>
+
+#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+
+#endif // BOOST_CONTAINER_GEN_DETAIL_PREPROCESSOR_HPP_INCLUDED
+

Added: sandbox/container_gen/boost/container_gen/emplace_assoc_function_gen.hpp
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ sandbox/container_gen/boost/container_gen/emplace_assoc_function_gen.hpp 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84957)
@@ -0,0 +1,1043 @@
+//=============================================================================
+// 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)
+//=============================================================================
+
+#ifndef BOOST_CONTAINER_GEN_EMPLACE_ASSOC_FUNCTION_GEN_HPP_INCLUDED
+#define BOOST_CONTAINER_GEN_EMPLACE_ASSOC_FUNCTION_GEN_HPP_INCLUDED
+
+#include <utility>
+#include <boost/config.hpp>
+#include <boost/container_gen/detail/preprocessor.hpp>
+
+#if defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+#include <boost/preprocessor/seq/size.hpp>
+#include <boost/preprocessor/repetition/enum_params.hpp>
+#include <boost/preprocessor/repetition/enum_trailing_params.hpp>
+#include <boost/preprocessor/repetition/for.hpp>
+#include <boost/preprocessor/control/expr_if.hpp>
+#include <boost/detail/preprocessor/binary_seq_to_params.hpp>
+#elif !defined BOOST_CONTAINER_PERFECT_FORWARDING
+#include <boost/preprocessor/cat.hpp>
+#include <boost/preprocessor/arithmetic/inc.hpp>
+#include <boost/preprocessor/arithmetic/dec.hpp>
+#include <boost/preprocessor/repetition/enum.hpp>
+#include <boost/preprocessor/repetition/enum_params.hpp>
+#include <boost/preprocessor/repetition/enum_trailing.hpp>
+#include <boost/preprocessor/repetition/enum_trailing_params.hpp>
+#include <boost/preprocessor/repetition/repeat.hpp>
+#include <boost/preprocessor/control/expr_if.hpp>
+#endif // compiler defect handling
+
+namespace boost { namespace detail {
+
+ template <typename F, typename C>
+ class emplace_assoc_function_proxy
+ {
+ F const _function;
+ C& _container;
+
+ public:
+ explicit emplace_assoc_function_proxy(C& c);
+
+#if defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+#define BOOST_CONTAINER_GEN_EMPL_ASSOC_FUNC_GEN_CALL_OP_FOR_OP(r, seq) \
+ BOOST_PP_EXPR_IF(BOOST_PP_SEQ_SIZE(seq), template <) \
+ BOOST_PP_ENUM_PARAMS(BOOST_PP_SEQ_SIZE(seq), typename P) \
+ BOOST_PP_EXPR_IF(BOOST_PP_SEQ_SIZE(seq), >) \
+ inline emplace_assoc_function_proxy& \
+ operator()( \
+ typename C::key_type const& key \
+ , BOOST_DETAIL_PP_BINARY_SEQ_TO_PARAMS( \
+ seq \
+ , P \
+ , & \
+ , const& \
+ , p \
+ ) \
+ ) \
+ { \
+ this->_function( \
+ this->_container \
+ , key \
+ BOOST_PP_ENUM_TRAILING_PARAMS(BOOST_PP_SEQ_SIZE(seq), p) \
+ ); \
+ return *this; \
+ } \
+//!
+ BOOST_PP_FOR(
+ (0)
+ , BOOST_CONTAINER_GEN_PP_PARAM_PRED
+ , BOOST_CONTAINER_GEN_PP_PARAM_INC
+ , BOOST_CONTAINER_GEN_EMPL_ASSOC_FUNC_GEN_CALL_OP_FOR_OP
+ )
+#undef BOOST_CONTAINER_GEN_EMPL_ASSOC_FUNC_GEN_CALL_OP_FOR_OP
+#elif defined BOOST_CONTAINER_PERFECT_FORWARDING
+ template <typename ...Args>
+ inline emplace_assoc_function_proxy&
+ operator()(typename C::key_type const& key, Args&& ...args)
+ {
+ this->_function(
+ this->_container
+ , key
+ , ::boost::forward<Args>(args)...
+ );
+ return *this;
+ }
+#else // partial template specialization support, imperfect forwarding
+#define BOOST_CONTAINER_GEN_EMPL_ASSOC_FUNC_GEN_CALL_OP_RPT_OP(z, n, poop) \
+ BOOST_PP_EXPR_IF(n, template <) \
+ BOOST_PP_ENUM_PARAMS_Z(z, n, typename P) \
+ BOOST_PP_EXPR_IF(n, >) \
+ inline emplace_assoc_function_proxy& \
+ operator()( \
+ typename C::key_type const& key \
+ BOOST_PP_CAT(BOOST_PP_ENUM_TRAILING_, z)( \
+ n \
+ , BOOST_CONTAINER_PP_PARAM_LIST \
+ , poop \
+ ) \
+ ) \
+ { \
+ this->_function( \
+ this->_container \
+ , key \
+ BOOST_PP_CAT(BOOST_PP_ENUM_TRAILING_, z)( \
+ n \
+ , BOOST_CONTAINER_PP_PARAM_FORWARD \
+ , poop \
+ ) \
+ ); \
+ return *this; \
+ } \
+//!
+ BOOST_PP_REPEAT(
+ BOOST_CONTAINER_MAX_CONSTRUCTOR_PARAMETERS
+ , BOOST_CONTAINER_GEN_EMPL_ASSOC_FUNC_GEN_CALL_OP_RPT_OP
+ , _
+ )
+#undef BOOST_CONTAINER_GEN_EMPL_ASSOC_FUNC_GEN_CALL_OP_RPT_OP
+#endif // compiler defect handling
+ };
+
+ template <typename F, typename C>
+ emplace_assoc_function_proxy<F,C>::emplace_assoc_function_proxy(C& c)
+ : _function(), _container(c)
+ {
+ }
+
+ struct uac_emplace_emu_associative_function
+ {
+ template <typename C>
+ emplace_assoc_function_proxy<uac_emplace_emu_associative_function,C>
+ operator[](C& _container) const;
+
+#if defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+#define BOOST_CONTAINER_GEN_EMPL_ASSOC_FUNC_GEN_CALL_OP_FOR_OP(r, seq) \
+ template < \
+ typename C \
+ BOOST_PP_ENUM_TRAILING_PARAMS( \
+ BOOST_PP_SEQ_SIZE(seq) \
+ , typename P \
+ ) \
+ > \
+ inline ::std::pair<typename C::iterator,bool> \
+ operator()( \
+ C& _container \
+ , typename C::key_type const& key \
+ , BOOST_DETAIL_PP_BINARY_SEQ_TO_PARAMS( \
+ seq \
+ , P \
+ , & \
+ , const& \
+ , p \
+ ) \
+ ) const \
+ { \
+ return _container.insert( \
+ typename C::value_type( \
+ key \
+ , typename C::mapped_type( \
+ BOOST_PP_ENUM_PARAMS(BOOST_PP_SEQ_SIZE(seq), p) \
+ ) \
+ ) \
+ ); \
+ } \
+//!
+ BOOST_PP_FOR(
+ (0)
+ , BOOST_CONTAINER_GEN_PP_PARAM_PRED
+ , BOOST_CONTAINER_GEN_PP_PARAM_INC
+ , BOOST_CONTAINER_GEN_EMPL_ASSOC_FUNC_GEN_CALL_OP_FOR_OP
+ )
+#undef BOOST_CONTAINER_GEN_EMPL_ASSOC_FUNC_GEN_CALL_OP_FOR_OP
+#elif defined BOOST_CONTAINER_PERFECT_FORWARDING
+ template <typename C, typename ...Args>
+ inline ::std::pair<typename C::iterator,bool>
+ operator()(
+ C& _container
+ , typename C::key_type const& key
+ , Args&& ...args
+ ) const
+ {
+ return _container.insert(
+ typename C::value_type(
+ key
+ , typename C::mapped_type(::boost::forward<Args>(args)...)
+ )
+ );
+ }
+#else // partial template specialization support, imperfect forwarding
+#define BOOST_CONTAINER_GEN_EMPL_ASSOC_FUNC_GEN_CALL_OP_RPT_OP(z, n, poop) \
+ template < \
+ typename C \
+ BOOST_PP_ENUM_TRAILING_PARAMS_Z(z, n, typename P) \
+ > \
+ inline ::std::pair<typename C::iterator,bool> \
+ operator()( \
+ C& _container \
+ , typename C::key_type const& key \
+ BOOST_PP_CAT(BOOST_PP_ENUM_TRAILING_, z)( \
+ n \
+ , BOOST_CONTAINER_PP_PARAM_LIST \
+ , poop \
+ ) \
+ ) const \
+ { \
+ return _container.insert( \
+ typename C::value_type( \
+ key \
+ , typename C::mapped_type( \
+ BOOST_PP_CAT(BOOST_PP_ENUM_, z)( \
+ n \
+ , BOOST_CONTAINER_PP_PARAM_FORWARD \
+ , poop \
+ ) \
+ ) \
+ ) \
+ ); \
+ } \
+//!
+ BOOST_PP_REPEAT(
+ BOOST_CONTAINER_MAX_CONSTRUCTOR_PARAMETERS
+ , BOOST_CONTAINER_GEN_EMPL_ASSOC_FUNC_GEN_CALL_OP_RPT_OP
+ , _
+ )
+#undef BOOST_CONTAINER_GEN_EMPL_ASSOC_FUNC_GEN_CALL_OP_RPT_OP
+#endif // compiler defect handling
+ };
+
+ template <typename C>
+ emplace_assoc_function_proxy<uac_emplace_emu_associative_function,C>
+ uac_emplace_emu_associative_function::operator[](C& _container) const
+ {
+ return emplace_assoc_function_proxy<
+ uac_emplace_emu_associative_function
+ , C
+ >(_container);
+ }
+
+ struct mac_emplace_emu_associative_function
+ {
+ template <typename C>
+ emplace_assoc_function_proxy<mac_emplace_emu_associative_function,C>
+ operator[](C& _container) const;
+
+#if defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+#define BOOST_CONTAINER_GEN_EMPL_ASSOC_FUNC_GEN_CALL_OP_FOR_OP(r, seq) \
+ template < \
+ typename C \
+ BOOST_PP_ENUM_TRAILING_PARAMS( \
+ BOOST_PP_SEQ_SIZE(seq) \
+ , typename P \
+ ) \
+ > \
+ inline ::std::pair<typename C::iterator,bool> \
+ operator()( \
+ C& _container \
+ , typename C::key_type const& key \
+ , BOOST_DETAIL_PP_BINARY_SEQ_TO_PARAMS( \
+ seq \
+ , P \
+ , & \
+ , const& \
+ , p \
+ ) \
+ ) const \
+ { \
+ return ::std::make_pair( \
+ _container.insert( \
+ typename C::value_type( \
+ key \
+ , typename C::mapped_type( \
+ BOOST_PP_ENUM_PARAMS(BOOST_PP_SEQ_SIZE(seq), p) \
+ ) \
+ ) \
+ ) \
+ , true \
+ ); \
+ } \
+//!
+ BOOST_PP_FOR(
+ (0)
+ , BOOST_CONTAINER_GEN_PP_PARAM_PRED
+ , BOOST_CONTAINER_GEN_PP_PARAM_INC
+ , BOOST_CONTAINER_GEN_EMPL_ASSOC_FUNC_GEN_CALL_OP_FOR_OP
+ )
+#undef BOOST_CONTAINER_GEN_EMPL_ASSOC_FUNC_GEN_CALL_OP_FOR_OP
+#elif defined BOOST_CONTAINER_PERFECT_FORWARDING
+ template <typename C, typename ...Args>
+ inline ::std::pair<typename C::iterator,bool>
+ operator()(
+ C& _container
+ , typename C::key_type const& key
+ , Args&& ...args
+ ) const
+ {
+ return ::std::make_pair(
+ _container.insert(
+ typename C::value_type(
+ key
+ , typename C::mapped_type(
+ ::boost::forward<Args>(args)...
+ )
+ )
+ )
+ , true
+ );
+ }
+#else // partial template specialization support, imperfect forwarding
+#define BOOST_CONTAINER_GEN_EMPL_ASSOC_FUNC_GEN_CALL_OP_RPT_OP(z, n, poop) \
+ template < \
+ typename C \
+ BOOST_PP_ENUM_TRAILING_PARAMS_Z(z, n, typename P) \
+ > \
+ inline ::std::pair<typename C::iterator,bool> \
+ operator()( \
+ C& _container \
+ , typename C::key_type const& key \
+ BOOST_PP_CAT(BOOST_PP_ENUM_TRAILING_, z)( \
+ n \
+ , BOOST_CONTAINER_PP_PARAM_LIST \
+ , poop \
+ ) \
+ ) const \
+ { \
+ return ::std::make_pair( \
+ _container.insert( \
+ typename C::value_type( \
+ key \
+ , typename C::mapped_type( \
+ BOOST_PP_CAT(BOOST_PP_ENUM_, z)( \
+ n \
+ , BOOST_CONTAINER_PP_PARAM_FORWARD \
+ , poop \
+ ) \
+ ) \
+ ) \
+ ) \
+ , true \
+ ); \
+ } \
+//!
+ BOOST_PP_REPEAT(
+ BOOST_CONTAINER_MAX_CONSTRUCTOR_PARAMETERS
+ , BOOST_CONTAINER_GEN_EMPL_ASSOC_FUNC_GEN_CALL_OP_RPT_OP
+ , _
+ )
+#undef BOOST_CONTAINER_GEN_EMPL_ASSOC_FUNC_GEN_CALL_OP_RPT_OP
+#endif // compiler defect handling
+ };
+
+ template <typename C>
+ emplace_assoc_function_proxy<mac_emplace_emu_associative_function,C>
+ mac_emplace_emu_associative_function::operator[](C& _container) const
+ {
+ return emplace_assoc_function_proxy<
+ mac_emplace_emu_associative_function
+ , C
+ >(_container);
+ }
+
+#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+
+ struct uac_emplace_associative_function
+ {
+ template <typename C>
+ emplace_assoc_function_proxy<uac_emplace_associative_function,C>
+ operator[](C& _container) const;
+
+#if defined BOOST_CONTAINER_PERFECT_FORWARDING
+ template <typename C, typename ...Args>
+ inline ::std::pair<typename C::iterator,bool>
+ operator()(
+ C& _container
+ , typename C::key_type const& key
+ , Args&& ...args
+ ) const
+ {
+ return _container.emplace(
+ key
+ , ::boost::move(
+ typename C::mapped_type(::boost::forward<Args>(args)...)
+ )
+ );
+ }
+#else // !defined BOOST_CONTAINER_PERFECT_FORWARDING
+#define BOOST_CONTAINER_GEN_EMPL_ASSOC_FUNC_GEN_CALL_OP_RPT_OP(z, n, poop) \
+ template < \
+ typename C \
+ BOOST_PP_ENUM_TRAILING_PARAMS_Z(z, n, typename P) \
+ > \
+ inline ::std::pair<typename C::iterator,bool> \
+ operator()( \
+ C& _container \
+ , typename C::key_type const& key \
+ BOOST_PP_CAT(BOOST_PP_ENUM_TRAILING_, z)( \
+ n \
+ , BOOST_CONTAINER_PP_PARAM_LIST \
+ , poop \
+ ) \
+ ) const \
+ { \
+ return _container.emplace( \
+ key \
+ , ::boost::move( \
+ typename C::mapped_type( \
+ BOOST_PP_CAT(BOOST_PP_ENUM_, z)( \
+ n \
+ , BOOST_CONTAINER_PP_PARAM_FORWARD \
+ , poop \
+ ) \
+ ) \
+ ) \
+ ); \
+ } \
+//!
+ BOOST_PP_REPEAT(
+ BOOST_PP_DEC(BOOST_CONTAINER_MAX_CONSTRUCTOR_PARAMETERS)
+ , BOOST_CONTAINER_GEN_EMPL_ASSOC_FUNC_GEN_CALL_OP_RPT_OP
+ , _
+ )
+#undef BOOST_CONTAINER_GEN_EMPL_ASSOC_FUNC_GEN_CALL_OP_RPT_OP
+#endif // BOOST_CONTAINER_PERFECT_FORWARDING
+ };
+
+ template <typename C>
+ emplace_assoc_function_proxy<uac_emplace_associative_function,C>
+ uac_emplace_associative_function::operator[](C& _container) const
+ {
+ return emplace_assoc_function_proxy<
+ uac_emplace_associative_function
+ , C
+ >(_container);
+ }
+
+ struct mac_emplace_associative_function
+ {
+ template <typename C>
+ emplace_assoc_function_proxy<mac_emplace_associative_function,C>
+ operator[](C& _container) const;
+
+#if defined BOOST_CONTAINER_PERFECT_FORWARDING
+ template <typename C, typename ...Args>
+ inline ::std::pair<typename C::iterator,bool>
+ operator()(
+ C& _container
+ , typename C::key_type const& key
+ , Args&& ...args
+ ) const
+ {
+ return ::std::make_pair(
+ _container.emplace(
+ key
+ , ::boost::move(
+ typename C::mapped_type(
+ ::boost::forward<Args>(args)...
+ )
+ )
+ )
+ , true
+ );
+ }
+#else // !defined BOOST_CONTAINER_PERFECT_FORWARDING
+#define BOOST_CONTAINER_GEN_EMPL_ASSOC_FUNC_GEN_CALL_OP_RPT_OP(z, n, poop) \
+ template < \
+ typename C \
+ BOOST_PP_ENUM_TRAILING_PARAMS_Z(z, n, typename P) \
+ > \
+ inline ::std::pair<typename C::iterator,bool> \
+ operator()( \
+ C& _container \
+ , typename C::key_type const& key \
+ BOOST_PP_CAT(BOOST_PP_ENUM_TRAILING_, z)( \
+ n \
+ , BOOST_CONTAINER_PP_PARAM_LIST \
+ , poop \
+ ) \
+ ) const \
+ { \
+ return ::std::make_pair( \
+ _container.emplace( \
+ key \
+ , ::boost::move( \
+ typename C::mapped_type( \
+ BOOST_PP_CAT(BOOST_PP_ENUM_, z)( \
+ n \
+ , BOOST_CONTAINER_PP_PARAM_FORWARD \
+ , poop \
+ ) \
+ ) \
+ ) \
+ ) \
+ , true \
+ ); \
+ } \
+//!
+ BOOST_PP_REPEAT(
+ BOOST_PP_DEC(BOOST_CONTAINER_MAX_CONSTRUCTOR_PARAMETERS)
+ , BOOST_CONTAINER_GEN_EMPL_ASSOC_FUNC_GEN_CALL_OP_RPT_OP
+ , _
+ )
+#undef BOOST_CONTAINER_GEN_EMPL_ASSOC_FUNC_GEN_CALL_OP_RPT_OP
+#endif // BOOST_CONTAINER_PERFECT_FORWARDING
+ };
+
+ template <typename C>
+ emplace_assoc_function_proxy<mac_emplace_associative_function,C>
+ mac_emplace_associative_function::operator[](C& _container) const
+ {
+ return emplace_assoc_function_proxy<
+ mac_emplace_associative_function
+ , C
+ >(_container);
+ }
+
+#if !defined BOOST_CONTAINER_PERFECT_FORWARDING
+
+ struct huac_emplace_associative_function
+ {
+ template <typename C>
+ emplace_assoc_function_proxy<huac_emplace_associative_function,C>
+ operator[](C& _container) const;
+
+#define BOOST_CONTAINER_GEN_EMPL_ASSOC_FUNC_GEN_CALL_OP_RPT_OP(z, n, poop) \
+ template < \
+ typename C \
+ BOOST_PP_ENUM_TRAILING_PARAMS_Z(z, n, typename P) \
+ > \
+ inline ::std::pair<typename C::iterator,bool> \
+ operator()( \
+ C& _container \
+ , typename C::key_type const& key \
+ BOOST_PP_CAT(BOOST_PP_ENUM_TRAILING_, z)( \
+ n \
+ , BOOST_CONTAINER_PP_PARAM_LIST \
+ , poop \
+ ) \
+ ) const \
+ { \
+ return _container.emplace( \
+ ::boost::unordered::piecewise_construct \
+ , ::boost::make_tuple(key) \
+ , ::boost::make_tuple( \
+ BOOST_PP_CAT(BOOST_PP_ENUM_, z)( \
+ n \
+ , BOOST_CONTAINER_PP_PARAM_FORWARD \
+ , poop \
+ ) \
+ ) \
+ ); \
+ } \
+//!
+ BOOST_PP_REPEAT(
+ BOOST_CONTAINER_MAX_CONSTRUCTOR_PARAMETERS
+ , BOOST_CONTAINER_GEN_EMPL_ASSOC_FUNC_GEN_CALL_OP_RPT_OP
+ , _
+ )
+#undef BOOST_CONTAINER_GEN_EMPL_ASSOC_FUNC_GEN_CALL_OP_RPT_OP
+ };
+
+ template <typename C>
+ emplace_assoc_function_proxy<huac_emplace_associative_function,C>
+ huac_emplace_associative_function::operator[](C& _container) const
+ {
+ return emplace_assoc_function_proxy<
+ huac_emplace_associative_function
+ , C
+ >(_container);
+ }
+
+ struct hmac_emplace_associative_function
+ {
+ template <typename C>
+ emplace_assoc_function_proxy<hmac_emplace_associative_function,C>
+ operator[](C& _container) const;
+
+#define BOOST_CONTAINER_GEN_EMPL_ASSOC_FUNC_GEN_CALL_OP_RPT_OP(z, n, poop) \
+ template < \
+ typename C \
+ BOOST_PP_ENUM_TRAILING_PARAMS_Z(z, n, typename P) \
+ > \
+ inline ::std::pair<typename C::iterator,bool> \
+ operator()( \
+ C& _container \
+ , typename C::key_type const& key \
+ BOOST_PP_CAT(BOOST_PP_ENUM_TRAILING_, z)( \
+ n \
+ , BOOST_CONTAINER_PP_PARAM_LIST \
+ , poop \
+ ) \
+ ) const \
+ { \
+ return ::std::make_pair( \
+ _container.emplace( \
+ ::boost::unordered::piecewise_construct \
+ , ::boost::make_tuple(key) \
+ , ::boost::make_tuple( \
+ BOOST_PP_CAT(BOOST_PP_ENUM_, z)( \
+ n \
+ , BOOST_CONTAINER_PP_PARAM_FORWARD \
+ , poop \
+ ) \
+ ) \
+ ) \
+ , true \
+ ); \
+ } \
+//!
+ BOOST_PP_REPEAT(
+ BOOST_CONTAINER_MAX_CONSTRUCTOR_PARAMETERS
+ , BOOST_CONTAINER_GEN_EMPL_ASSOC_FUNC_GEN_CALL_OP_RPT_OP
+ , _
+ )
+#undef BOOST_CONTAINER_GEN_EMPL_ASSOC_FUNC_GEN_CALL_OP_RPT_OP
+ };
+
+ template <typename C>
+ emplace_assoc_function_proxy<hmac_emplace_associative_function,C>
+ hmac_emplace_associative_function::operator[](C& _container) const
+ {
+ return emplace_assoc_function_proxy<
+ hmac_emplace_associative_function
+ , C
+ >(_container);
+ }
+
+#if defined BOOST_HAS_TR1_UNORDERED_MAP
+
+// Handle different native TR1 emplacement implementations.
+#if defined BOOST_MSVC
+
+ struct tr1_huac_emplace_associative_function
+ {
+ template <typename C>
+ emplace_assoc_function_proxy<tr1_huac_emplace_associative_function,C>
+ operator[](C& _container) const;
+
+#define BOOST_CONTAINER_GEN_EMPL_ASSOC_FUNC_GEN_CALL_OP_RPT_OP(z, n, poop) \
+ template < \
+ typename C \
+ BOOST_PP_ENUM_TRAILING_PARAMS_Z(z, n, typename P) \
+ > \
+ inline ::std::pair<typename C::iterator,bool> \
+ operator()( \
+ C& _container \
+ , typename C::key_type const& key \
+ BOOST_PP_CAT(BOOST_PP_ENUM_TRAILING_, z)( \
+ n \
+ , BOOST_CONTAINER_PP_PARAM_LIST \
+ , poop \
+ ) \
+ ) const \
+ { \
+ return _container.emplace( \
+ ::boost::move( \
+ typename C::value_type( \
+ key \
+ , typename C::mapped_type( \
+ BOOST_PP_CAT(BOOST_PP_ENUM_, z)( \
+ n \
+ , BOOST_CONTAINER_PP_PARAM_FORWARD \
+ , poop \
+ ) \
+ ) \
+ ) \
+ ) \
+ ); \
+ } \
+//!
+ BOOST_PP_REPEAT(
+ BOOST_CONTAINER_MAX_CONSTRUCTOR_PARAMETERS
+ , BOOST_CONTAINER_GEN_EMPL_ASSOC_FUNC_GEN_CALL_OP_RPT_OP
+ , _
+ )
+#undef BOOST_CONTAINER_GEN_EMPL_ASSOC_FUNC_GEN_CALL_OP_RPT_OP
+ };
+
+ template <typename C>
+ emplace_assoc_function_proxy<tr1_huac_emplace_associative_function,C>
+ tr1_huac_emplace_associative_function::operator[](C& _container) const
+ {
+ return emplace_assoc_function_proxy<
+ tr1_huac_emplace_associative_function
+ , C
+ >(_container);
+ }
+
+ typedef tr1_huac_emplace_associative_function
+ tr1_hmac_emplace_associative_function;
+#else // TR1 == Boost wrt unordered_[multi]map::emplace
+#define BOOST_CONTAINER_GEN_EMPLACE_ASSOC_FUNCTION_GEN_USE_NO_NATIVE_TR1
+#endif
+
+#else // !defined BOOST_HAS_TR1_UNORDERED_MAP
+#define BOOST_CONTAINER_GEN_EMPLACE_ASSOC_FUNCTION_GEN_USE_NO_NATIVE_TR1
+#endif // BOOST_HAS_TR1_UNORDERED_MAP
+
+#if defined BOOST_CONTAINER_GEN_EMPLACE_ASSOC_FUNCTION_GEN_USE_NO_NATIVE_TR1
+ typedef huac_emplace_associative_function
+ tr1_huac_emplace_associative_function;
+ typedef hmac_emplace_associative_function
+ tr1_hmac_emplace_associative_function;
+#undef BOOST_CONTAINER_GEN_EMPLACE_ASSOC_FUNCTION_GEN_USE_NO_NATIVE_TR1
+#endif // BOOST_CONTAINER_GEN_EMPLACE_ASSOC_FUNCTION_GEN_USE_NO_NATIVE_TR1
+#endif // !defined BOOST_CONTAINER_PERFECT_FORWARDING
+#endif // !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+
+ struct ua_ptr_emplace_assoc_function
+ {
+ template <typename C>
+ emplace_assoc_function_proxy<ua_ptr_emplace_assoc_function,C>
+ operator[](C& _container) const;
+
+#if defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+#define BOOST_CONTAINER_GEN_EMPL_ASSOC_FUNC_GEN_CALL_OP_FOR_OP(r, seq) \
+ template < \
+ typename C \
+ BOOST_PP_ENUM_TRAILING_PARAMS( \
+ BOOST_PP_SEQ_SIZE(seq) \
+ , typename P \
+ ) \
+ > \
+ inline ::std::pair<typename C::iterator,bool> \
+ operator()( \
+ C& _container \
+ , typename C::key_type const& key \
+ , BOOST_DETAIL_PP_BINARY_SEQ_TO_PARAMS( \
+ seq \
+ , P \
+ , & \
+ , const& \
+ , p \
+ ) \
+ ) const \
+ { \
+ typedef typename ::std::tr1::remove_pointer< \
+ typename C::mapped_type \
+ >::type \
+ _data_type; \
+ typename C::key_type k(key); \
+ return _container.insert( \
+ k \
+ , new _data_type( \
+ BOOST_PP_ENUM_PARAMS(BOOST_PP_SEQ_SIZE(seq), p) \
+ ) \
+ ); \
+ } \
+//!
+ BOOST_PP_FOR(
+ (0)
+ , BOOST_CONTAINER_GEN_PP_PARAM_PRED
+ , BOOST_CONTAINER_GEN_PP_PARAM_INC
+ , BOOST_CONTAINER_GEN_EMPL_ASSOC_FUNC_GEN_CALL_OP_FOR_OP
+ )
+#undef BOOST_CONTAINER_GEN_EMPL_ASSOC_FUNC_GEN_CALL_OP_FOR_OP
+#elif defined BOOST_CONTAINER_PERFECT_FORWARDING
+ template <typename C, typename ...Args>
+ inline ::std::pair<typename C::iterator,bool>
+ operator()(
+ C& _container
+ , typename C::key_type const& key
+ , Args&& ...args
+ ) const
+ {
+ typedef typename ::std::tr1::remove_pointer<
+ typename C::mapped_type
+ >::type
+ _data_type;
+
+ typename C::key_type k(key);
+ return _container.insert(
+ k
+ , new _data_type(::boost::forward<Args>(args)...)
+ );
+ }
+#else // partial template specialization support, imperfect forwarding
+#define BOOST_CONTAINER_GEN_EMPL_ASSOC_FUNC_GEN_CALL_OP_RPT_OP(z, n, poop) \
+ template < \
+ typename C \
+ BOOST_PP_ENUM_TRAILING_PARAMS_Z(z, n, typename P) \
+ > \
+ inline ::std::pair<typename C::iterator,bool> \
+ operator()( \
+ C& _container \
+ , typename C::key_type const& key \
+ BOOST_PP_CAT(BOOST_PP_ENUM_TRAILING_, z)( \
+ n \
+ , BOOST_CONTAINER_PP_PARAM_LIST \
+ , poop \
+ ) \
+ ) const \
+ { \
+ typedef typename ::std::tr1::remove_pointer< \
+ typename C::mapped_type \
+ >::type \
+ _data_type; \
+ typename C::key_type k(key); \
+ return _container.insert( \
+ k \
+ , new _data_type( \
+ BOOST_PP_CAT(BOOST_PP_ENUM_, z)( \
+ n \
+ , BOOST_CONTAINER_PP_PARAM_FORWARD \
+ , poop \
+ ) \
+ ) \
+ ); \
+ } \
+//!
+ BOOST_PP_REPEAT(
+ BOOST_CONTAINER_MAX_CONSTRUCTOR_PARAMETERS
+ , BOOST_CONTAINER_GEN_EMPL_ASSOC_FUNC_GEN_CALL_OP_RPT_OP
+ , _
+ )
+#undef BOOST_CONTAINER_GEN_EMPL_ASSOC_FUNC_GEN_CALL_OP_RPT_OP
+#endif // compiler defect handling
+ };
+
+ template <typename C>
+ emplace_assoc_function_proxy<ua_ptr_emplace_assoc_function,C>
+ ua_ptr_emplace_assoc_function::operator[](C& _container) const
+ {
+ return emplace_assoc_function_proxy<ua_ptr_emplace_assoc_function,C>(
+ _container
+ );
+ }
+
+ struct ma_ptr_emplace_assoc_function
+ {
+ template <typename C>
+ emplace_assoc_function_proxy<ma_ptr_emplace_assoc_function,C>
+ operator[](C& _container) const;
+
+#if defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+#define BOOST_CONTAINER_GEN_EMPL_ASSOC_FUNC_GEN_CALL_OP_FOR_OP(r, seq) \
+ template < \
+ typename C \
+ BOOST_PP_ENUM_TRAILING_PARAMS( \
+ BOOST_PP_SEQ_SIZE(seq) \
+ , typename P \
+ ) \
+ > \
+ inline ::std::pair<typename C::iterator,bool> \
+ operator()( \
+ C& _container \
+ , typename C::key_type const& key \
+ , BOOST_DETAIL_PP_BINARY_SEQ_TO_PARAMS( \
+ seq \
+ , P \
+ , & \
+ , const& \
+ , p \
+ ) \
+ ) const \
+ { \
+ typedef typename ::std::tr1::remove_pointer< \
+ typename C::mapped_type \
+ >::type \
+ _data_type; \
+ typename C::key_type k(key); \
+ return ::std::make_pair( \
+ _container.insert( \
+ k \
+ , new _data_type( \
+ BOOST_PP_ENUM_PARAMS(BOOST_PP_SEQ_SIZE(seq), p) \
+ ) \
+ ) \
+ , true \
+ ); \
+ } \
+//!
+ BOOST_PP_FOR(
+ (0)
+ , BOOST_CONTAINER_GEN_PP_PARAM_PRED
+ , BOOST_CONTAINER_GEN_PP_PARAM_INC
+ , BOOST_CONTAINER_GEN_EMPL_ASSOC_FUNC_GEN_CALL_OP_FOR_OP
+ )
+#undef BOOST_CONTAINER_GEN_EMPL_ASSOC_FUNC_GEN_CALL_OP_FOR_OP
+#elif defined BOOST_CONTAINER_PERFECT_FORWARDING
+ template <typename C, typename ...Args>
+ inline ::std::pair<typename C::iterator,bool>
+ operator()(
+ C& _container
+ , typename C::key_type const& key
+ , Args&& ...args
+ ) const
+ {
+ typedef typename ::std::tr1::remove_pointer<
+ typename C::mapped_type
+ >::type
+ _data_type;
+
+ typename C::key_type k(key);
+ return ::std::make_pair(
+ _container.insert(
+ k
+ , new _data_type(::boost::forward<Args>(args)...)
+ )
+ , true
+ );
+ }
+#else // partial template specialization support, imperfect forwarding
+#define BOOST_CONTAINER_GEN_EMPL_ASSOC_FUNC_GEN_CALL_OP_RPT_OP(z, n, poop) \
+ template < \
+ typename C \
+ BOOST_PP_ENUM_TRAILING_PARAMS_Z(z, n, typename P) \
+ > \
+ inline ::std::pair<typename C::iterator,bool> \
+ operator()( \
+ C& _container \
+ , typename C::key_type const& key \
+ BOOST_PP_CAT(BOOST_PP_ENUM_TRAILING_, z)( \
+ n \
+ , BOOST_CONTAINER_PP_PARAM_LIST \
+ , poop \
+ ) \
+ ) const \
+ { \
+ typedef typename ::std::tr1::remove_pointer< \
+ typename C::mapped_type \
+ >::type \
+ _data_type; \
+ typename C::key_type k(key); \
+ return ::std::make_pair( \
+ _container.insert( \
+ k \
+ , new _data_type( \
+ BOOST_PP_CAT(BOOST_PP_ENUM_, z)( \
+ n \
+ , BOOST_CONTAINER_PP_PARAM_FORWARD \
+ , poop \
+ ) \
+ ) \
+ ) \
+ , true \
+ ); \
+ } \
+//!
+ BOOST_PP_REPEAT(
+ BOOST_CONTAINER_MAX_CONSTRUCTOR_PARAMETERS
+ , BOOST_CONTAINER_GEN_EMPL_ASSOC_FUNC_GEN_CALL_OP_RPT_OP
+ , _
+ )
+#undef BOOST_CONTAINER_GEN_EMPL_ASSOC_FUNC_GEN_CALL_OP_RPT_OP
+#endif // compiler defect handling
+ };
+
+ template <typename C>
+ emplace_assoc_function_proxy<ma_ptr_emplace_assoc_function,C>
+ ma_ptr_emplace_assoc_function::operator[](C& _container) const
+ {
+ return emplace_assoc_function_proxy<ma_ptr_emplace_assoc_function,C>(
+ _container
+ );
+ }
+}} // namespace boost::detail
+
+#include <boost/mpl/if.hpp>
+#include <boost/mpl/eval_if.hpp>
+#include <boost/mpl/aux_/lambda_support.hpp>
+#include <boost/container_gen/is_associative_selector.hpp>
+#include <boost/container_gen/is_unique_assoc_selector.hpp>
+#include <boost/container_gen/is_multiple_assoc_selector.hpp>
+#include <boost/container_gen/is_ptr_selector.hpp>
+
+#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+#include <boost/container_gen/has_emplace_mfunc_selector.hpp>
+#if !defined BOOST_CONTAINER_PERFECT_FORWARDING
+#include <boost/container_gen/is_hashed_assoc_selector.hpp>
+#include <boost/container_gen/is_tr1_selector.hpp>
+#endif
+#endif
+
+//[reference__emplace_associative_function_gen
+namespace boost {
+
+ template <typename Selector>
+ struct emplace_associative_function_gen
+ //<-
+ : ::boost::mpl::eval_if<
+ is_ptr_selector<Selector>
+ , ::boost::mpl::if_<
+ is_multiple_associative_selector<Selector>
+ , detail::ma_ptr_emplace_assoc_function
+ , detail::ua_ptr_emplace_assoc_function
+ >
+#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+ , ::boost::mpl::eval_if<
+ has_emplace_member_function_selector<Selector>
+#if !defined BOOST_CONTAINER_PERFECT_FORWARDING
+ , ::boost::mpl::eval_if<
+ is_hashed_associative_selector<Selector>
+ , ::boost::mpl::eval_if<
+ is_tr1_selector<Selector>
+ , ::boost::mpl::if_<
+ is_unique_associative_selector<Selector>
+ , detail::tr1_huac_emplace_associative_function
+ , detail::tr1_hmac_emplace_associative_function
+ >
+ , ::boost::mpl::if_<
+ is_unique_associative_selector<Selector>
+ , detail::huac_emplace_associative_function
+ , detail::hmac_emplace_associative_function
+ >
+ >
+#endif
+ , ::boost::mpl::if_<
+ is_multiple_associative_selector<Selector>
+ , detail::mac_emplace_associative_function
+ , detail::uac_emplace_associative_function
+ >
+#if !defined BOOST_CONTAINER_PERFECT_FORWARDING
+ >
+#endif
+#endif // !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+ , ::boost::mpl::if_<
+ is_multiple_associative_selector<Selector>
+ , detail::mac_emplace_emu_associative_function
+ , detail::uac_emplace_emu_associative_function
+ >
+#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+ >
+#endif
+ >
+ //->
+ {
+ // typedef ... type;
+ //<-
+ BOOST_MPL_AUX_LAMBDA_SUPPORT(
+ 1
+ , emplace_associative_function_gen
+ , (Selector)
+ )
+ //->
+ };
+} // namespace boost
+//]
+
+#endif // BOOST_CONTAINER_GEN_EMPLACE_ASSOC_FUNCTION_GEN_HPP_INCLUDED
+

Added: sandbox/container_gen/boost/container_gen/emplace_function_gen.hpp
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ sandbox/container_gen/boost/container_gen/emplace_function_gen.hpp 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84957)
@@ -0,0 +1,1515 @@
+//=============================================================================
+// 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)
+//=============================================================================
+
+#ifndef BOOST_CONTAINER_GEN_EMPLACE_FUNCTION_GEN_HPP_INCLUDED
+#define BOOST_CONTAINER_GEN_EMPLACE_FUNCTION_GEN_HPP_INCLUDED
+
+#include <utility>
+#include <boost/config.hpp>
+#include <boost/tr1/type_traits.hpp>
+#include <boost/container_gen/detail/preprocessor.hpp>
+
+#if defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+
+#include <boost/preprocessor/seq/size.hpp>
+#include <boost/preprocessor/tuple/elem.hpp>
+#include <boost/preprocessor/repetition/enum_params.hpp>
+#include <boost/preprocessor/repetition/enum_trailing_params.hpp>
+#include <boost/preprocessor/repetition/for.hpp>
+#include <boost/preprocessor/control/expr_if.hpp>
+#include <boost/detail/preprocessor/binary_seq_to_params.hpp>
+
+#define BOOST_CONTAINER_GEN_EMPLACE_FUNCTION_GEN_SEQUENCE_FOR_OP(r, tuple) \
+ template < \
+ typename C \
+ BOOST_PP_ENUM_TRAILING_PARAMS( \
+ BOOST_PP_SEQ_SIZE(BOOST_PP_TUPLE_ELEM(2, 0, tuple)) \
+ , typename P \
+ ) \
+ > \
+ inline ::std::pair<typename C::iterator,bool> \
+ operator()( \
+ C& _container \
+ , BOOST_DETAIL_PP_BINARY_SEQ_TO_PARAMS( \
+ BOOST_PP_TUPLE_ELEM(2, 0, tuple) \
+ , P \
+ , & \
+ , const& \
+ , p \
+ ) \
+ ) \
+ { \
+ return ::std::make_pair( \
+ _container.emplace( \
+ BOOST_PP_TUPLE_ELEM(2, 1, tuple) \
+ BOOST_PP_ENUM_TRAILING_PARAMS( \
+ BOOST_PP_SEQ_SIZE(BOOST_PP_TUPLE_ELEM(2, 0, tuple)) \
+ , p \
+ ) \
+ ) \
+ , true \
+ ); \
+ } \
+//!
+
+#define BOOST_CONTAINER_GEN_EMPLACE_FUNCTION_GEN_SEQ_EMU_FOR_OP(r, tuple) \
+ template < \
+ typename C \
+ BOOST_PP_ENUM_TRAILING_PARAMS( \
+ BOOST_PP_SEQ_SIZE(BOOST_PP_TUPLE_ELEM(2, 0, tuple)) \
+ , typename P \
+ ) \
+ > \
+ inline ::std::pair<typename C::iterator,bool> \
+ operator()( \
+ C& _container \
+ , BOOST_DETAIL_PP_BINARY_SEQ_TO_PARAMS( \
+ BOOST_PP_TUPLE_ELEM(2, 0, tuple) \
+ , P \
+ , & \
+ , const& \
+ , p \
+ ) \
+ ) \
+ { \
+ return ::std::make_pair( \
+ _container.insert( \
+ BOOST_PP_TUPLE_ELEM(2, 1, tuple) \
+ , typename C::value_type( \
+ BOOST_PP_ENUM_PARAMS( \
+ BOOST_PP_SEQ_SIZE( \
+ BOOST_PP_TUPLE_ELEM(2, 0, tuple) \
+ ) \
+ , p \
+ ) \
+ ) \
+ ) \
+ , true \
+ ); \
+ } \
+//!
+
+#elif !defined BOOST_CONTAINER_PERFECT_FORWARDING
+
+#include <boost/preprocessor/cat.hpp>
+#include <boost/preprocessor/repetition/enum.hpp>
+#include <boost/preprocessor/repetition/enum_params.hpp>
+#include <boost/preprocessor/repetition/enum_trailing.hpp>
+#include <boost/preprocessor/repetition/enum_trailing_params.hpp>
+#include <boost/preprocessor/repetition/repeat.hpp>
+#include <boost/preprocessor/control/expr_if.hpp>
+
+#define BOOST_CONTAINER_GEN_EMPLACE_FUNCTION_GEN_SEQUENCE_RPT_OP(z, n, itr) \
+ template < \
+ typename C \
+ BOOST_PP_ENUM_TRAILING_PARAMS_Z(z, n, typename P) \
+ > \
+ inline ::std::pair<typename C::iterator,bool> \
+ operator()( \
+ C& _container \
+ BOOST_PP_CAT(BOOST_PP_ENUM_TRAILING_, z)( \
+ n \
+ , BOOST_CONTAINER_PP_PARAM_LIST \
+ , _ \
+ ) \
+ ) const \
+ { \
+ return ::std::make_pair( \
+ _container.emplace( \
+ itr \
+ BOOST_PP_CAT(BOOST_PP_ENUM_TRAILING_, z)( \
+ n \
+ , BOOST_CONTAINER_PP_PARAM_FORWARD \
+ , _ \
+ ) \
+ ) \
+ , true \
+ ); \
+ } \
+//!
+
+#define BOOST_CONTAINER_GEN_EMPLACE_FUNCTION_GEN_SEQ_EMU_RPT_OP(z, n, itr) \
+ template < \
+ typename C \
+ BOOST_PP_ENUM_TRAILING_PARAMS_Z(z, n, typename P) \
+ > \
+ inline ::std::pair<typename C::iterator,bool> \
+ operator()( \
+ C& _container \
+ BOOST_PP_CAT(BOOST_PP_ENUM_TRAILING_, z)( \
+ n \
+ , BOOST_CONTAINER_PP_PARAM_LIST \
+ , _ \
+ ) \
+ ) const \
+ { \
+ return ::std::make_pair( \
+ _container.insert( \
+ itr \
+ , typename C::value_type( \
+ BOOST_PP_CAT(BOOST_PP_ENUM_, z)( \
+ n \
+ , BOOST_CONTAINER_PP_PARAM_FORWARD \
+ , _ \
+ ) \
+ ) \
+ ) \
+ , true \
+ ); \
+ } \
+//!
+
+#endif // compiler defect handling
+
+namespace boost { namespace detail {
+
+ template <typename F, typename C>
+ class emplace_function_proxy
+ {
+ F const _function;
+ C& _container;
+
+ public:
+ explicit emplace_function_proxy(C& c);
+
+#if defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+#define BOOST_CONTAINER_GEN_EMPLACE_FUNCTION_GEN_CALL_OP_FOR_OP(r, seq) \
+ BOOST_PP_EXPR_IF(BOOST_PP_SEQ_SIZE(seq), template <) \
+ BOOST_PP_ENUM_PARAMS(BOOST_PP_SEQ_SIZE(seq), typename P) \
+ BOOST_PP_EXPR_IF(BOOST_PP_SEQ_SIZE(seq), >) \
+ inline emplace_function_proxy& \
+ operator()( \
+ BOOST_DETAIL_PP_BINARY_SEQ_TO_PARAMS( \
+ seq \
+ , P \
+ , & \
+ , const& \
+ , p \
+ ) \
+ ) \
+ { \
+ this->_function( \
+ this->_container \
+ BOOST_PP_ENUM_TRAILING_PARAMS(BOOST_PP_SEQ_SIZE(seq), p) \
+ ); \
+ return *this; \
+ } \
+//!
+ BOOST_PP_FOR(
+ (0)
+ , BOOST_CONTAINER_GEN_PP_PARAM_PRED
+ , BOOST_CONTAINER_GEN_PP_PARAM_INC
+ , BOOST_CONTAINER_GEN_EMPLACE_FUNCTION_GEN_CALL_OP_FOR_OP
+ )
+#undef BOOST_CONTAINER_GEN_EMPLACE_FUNCTION_GEN_CALL_OP_FOR_OP
+#elif defined BOOST_CONTAINER_PERFECT_FORWARDING
+ template <typename ...Args>
+ inline emplace_function_proxy& operator()(Args&& ...args)
+ {
+ this->_function(this->_container, ::boost::forward<Args>(args)...);
+ return *this;
+ }
+#else // partial template specialization support, imperfect forwarding
+#define BOOST_CONTAINER_GEN_EMPLACE_FUNCTION_GEN_CALL_OP_RPT_OP(z, n, poop) \
+ BOOST_PP_EXPR_IF(n, template <) \
+ BOOST_PP_ENUM_PARAMS_Z(z, n, typename P) \
+ BOOST_PP_EXPR_IF(n, >) \
+ inline emplace_function_proxy& \
+ operator()( \
+ BOOST_PP_CAT(BOOST_PP_ENUM_, z)( \
+ n \
+ , BOOST_CONTAINER_PP_PARAM_LIST \
+ , poop \
+ ) \
+ ) \
+ { \
+ this->_function( \
+ this->_container \
+ BOOST_PP_CAT(BOOST_PP_ENUM_TRAILING_, z)( \
+ n \
+ , BOOST_CONTAINER_PP_PARAM_FORWARD \
+ , poop \
+ ) \
+ ); \
+ return *this; \
+ } \
+//!
+ BOOST_PP_REPEAT(
+ BOOST_CONTAINER_MAX_CONSTRUCTOR_PARAMETERS
+ , BOOST_CONTAINER_GEN_EMPLACE_FUNCTION_GEN_CALL_OP_RPT_OP
+ , _
+ )
+#undef BOOST_CONTAINER_GEN_EMPLACE_FUNCTION_GEN_CALL_OP_RPT_OP
+#endif // compiler defect handling
+ };
+
+ template <typename F, typename C>
+ emplace_function_proxy<F,C>::emplace_function_proxy(C& c)
+ : _function(), _container(c)
+ {
+ }
+
+ struct fis_emplace_function
+ {
+ template <typename C>
+ emplace_function_proxy<fis_emplace_function,C>
+ operator[](C& _container) const;
+
+#if defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+ BOOST_PP_FOR(
+ ((0), _container.begin())
+ , BOOST_CONTAINER_GEN_PP_PARAM_PRED_WITH_DATA
+ , BOOST_CONTAINER_GEN_PP_PARAM_INC_WITH_DATA
+ , BOOST_CONTAINER_GEN_EMPLACE_FUNCTION_GEN_SEQUENCE_FOR_OP
+ )
+#elif defined BOOST_CONTAINER_PERFECT_FORWARDING
+ template <typename C, typename ...Args>
+ inline ::std::pair<typename C::iterator,bool>
+ operator()(C& _container, Args&& ...args) const
+ {
+ return ::std::make_pair(
+ _container.emplace(
+ _container.begin()
+ , ::boost::forward<Args>(args)...
+ )
+ , true
+ );
+ }
+#else // partial template specialization support, imperfect forwarding
+ BOOST_PP_REPEAT(
+ BOOST_CONTAINER_MAX_CONSTRUCTOR_PARAMETERS
+ , BOOST_CONTAINER_GEN_EMPLACE_FUNCTION_GEN_SEQUENCE_RPT_OP
+ , _container.begin()
+ )
+#endif // compiler defect handling
+ };
+
+ template <typename C>
+ emplace_function_proxy<fis_emplace_function,C>
+ fis_emplace_function::operator[](C& _container) const
+ {
+ return emplace_function_proxy<fis_emplace_function,C>(_container);
+ }
+
+ struct bis_emplace_function
+ {
+ template <typename C>
+ emplace_function_proxy<bis_emplace_function,C>
+ operator[](C& _container) const;
+
+#if defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+ BOOST_PP_FOR(
+ ((0), _container.end())
+ , BOOST_CONTAINER_GEN_PP_PARAM_PRED_WITH_DATA
+ , BOOST_CONTAINER_GEN_PP_PARAM_INC_WITH_DATA
+ , BOOST_CONTAINER_GEN_EMPLACE_FUNCTION_GEN_SEQUENCE_FOR_OP
+ )
+#undef BOOST_CONTAINER_GEN_EMPLACE_FUNCTION_GEN_CALL_OP_FOR_OP
+#elif defined BOOST_CONTAINER_PERFECT_FORWARDING
+ template <typename C, typename ...Args>
+ inline ::std::pair<typename C::iterator,bool>
+ operator()(C& _container, Args&& ...args) const
+ {
+ return ::std::make_pair(
+ _container.emplace(
+ _container.end()
+ , ::boost::forward<Args>(args)...
+ )
+ , true
+ );
+ }
+#else // partial template specialization support, imperfect forwarding
+ BOOST_PP_REPEAT(
+ BOOST_CONTAINER_MAX_CONSTRUCTOR_PARAMETERS
+ , BOOST_CONTAINER_GEN_EMPLACE_FUNCTION_GEN_SEQUENCE_RPT_OP
+ , _container.end()
+ )
+#endif // compiler defect handling
+ };
+
+ template <typename C>
+ emplace_function_proxy<bis_emplace_function,C>
+ bis_emplace_function::operator[](C& _container) const
+ {
+ return emplace_function_proxy<bis_emplace_function,C>(_container);
+ }
+
+ struct fis_emplace_emu_function
+ {
+ template <typename C>
+ emplace_function_proxy<fis_emplace_emu_function,C>
+ operator[](C& _container) const;
+
+#if defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+ BOOST_PP_FOR(
+ ((0), _container.begin())
+ , BOOST_CONTAINER_GEN_PP_PARAM_PRED_WITH_DATA
+ , BOOST_CONTAINER_GEN_PP_PARAM_INC_WITH_DATA
+ , BOOST_CONTAINER_GEN_EMPLACE_FUNCTION_GEN_SEQ_EMU_FOR_OP
+ )
+#elif defined BOOST_CONTAINER_PERFECT_FORWARDING
+ template <typename C, typename ...Args>
+ inline ::std::pair<typename C::iterator,bool>
+ operator()(C& _container, Args&& ...args) const
+ {
+ return ::std::make_pair(
+ _container.insert(
+ _container.begin()
+ , typename C::value_type(
+ ::boost::forward<Args>(args)...
+ )
+ )
+ , true
+ );
+ }
+#else // partial template specialization support, imperfect forwarding
+ BOOST_PP_REPEAT(
+ BOOST_CONTAINER_MAX_CONSTRUCTOR_PARAMETERS
+ , BOOST_CONTAINER_GEN_EMPLACE_FUNCTION_GEN_SEQ_EMU_RPT_OP
+ , _container.begin()
+ )
+#endif // compiler defect handling
+ };
+
+ template <typename C>
+ emplace_function_proxy<fis_emplace_emu_function,C>
+ fis_emplace_emu_function::operator[](C& _container) const
+ {
+ return emplace_function_proxy<fis_emplace_emu_function,C>(_container);
+ }
+
+ struct bis_emplace_emu_function
+ {
+ template <typename C>
+ emplace_function_proxy<bis_emplace_emu_function,C>
+ operator[](C& _container) const;
+
+#if defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+ BOOST_PP_FOR(
+ ((0), _container.end())
+ , BOOST_CONTAINER_GEN_PP_PARAM_PRED_WITH_DATA
+ , BOOST_CONTAINER_GEN_PP_PARAM_INC_WITH_DATA
+ , BOOST_CONTAINER_GEN_EMPLACE_FUNCTION_GEN_SEQ_EMU_FOR_OP
+ )
+#elif defined BOOST_CONTAINER_PERFECT_FORWARDING
+ template <typename C, typename ...Args>
+ inline ::std::pair<typename C::iterator,bool>
+ operator()(C& _container, Args&& ...args) const
+ {
+ return ::std::make_pair(
+ _container.insert(
+ _container.end()
+ , typename C::value_type(
+ ::boost::forward<Args>(args)...
+ )
+ )
+ , true
+ );
+ }
+#else // partial template specialization support, imperfect forwarding
+ BOOST_PP_REPEAT(
+ BOOST_CONTAINER_MAX_CONSTRUCTOR_PARAMETERS
+ , BOOST_CONTAINER_GEN_EMPLACE_FUNCTION_GEN_SEQ_EMU_RPT_OP
+ , _container.end()
+ )
+#endif // compiler defect handling
+ };
+
+ template <typename C>
+ emplace_function_proxy<bis_emplace_emu_function,C>
+ bis_emplace_emu_function::operator[](C& _container) const
+ {
+ return emplace_function_proxy<bis_emplace_emu_function,C>(_container);
+ }
+
+ struct uac_emplace_function
+ {
+ template <typename C>
+ emplace_function_proxy<uac_emplace_function,C>
+ operator[](C& _container) const;
+
+#if defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+#define BOOST_CONTAINER_GEN_EMPLACE_FUNCTION_GEN_CALL_OP_FOR_OP(r, seq) \
+ template < \
+ typename C \
+ BOOST_PP_ENUM_TRAILING_PARAMS( \
+ BOOST_PP_SEQ_SIZE(seq) \
+ , typename P \
+ ) \
+ > \
+ inline ::std::pair<typename C::iterator,bool> \
+ operator()( \
+ C& _container \
+ , BOOST_DETAIL_PP_BINARY_SEQ_TO_PARAMS( \
+ seq \
+ , P \
+ , & \
+ , const& \
+ , p \
+ ) \
+ ) const \
+ { \
+ return _container.emplace( \
+ BOOST_PP_ENUM_PARAMS(BOOST_PP_SEQ_SIZE(seq), p) \
+ ); \
+ } \
+//!
+ BOOST_PP_FOR(
+ (0)
+ , BOOST_CONTAINER_GEN_PP_PARAM_PRED
+ , BOOST_CONTAINER_GEN_PP_PARAM_INC
+ , BOOST_CONTAINER_GEN_EMPLACE_FUNCTION_GEN_CALL_OP_FOR_OP
+ )
+#undef BOOST_CONTAINER_GEN_EMPLACE_FUNCTION_GEN_CALL_OP_FOR_OP
+#elif defined BOOST_CONTAINER_PERFECT_FORWARDING
+ template <typename C, typename ...Args>
+ inline ::std::pair<typename C::iterator,bool>
+ operator()(C& _container, Args&& ...args) const
+ {
+ return _container.emplace(::boost::forward<Args>(args)...);
+ }
+#else // partial template specialization support, imperfect forwarding
+#define BOOST_CONTAINER_GEN_EMPLACE_FUNCTION_GEN_CALL_OP_RPT_OP(z, n, poop) \
+ template < \
+ typename C \
+ BOOST_PP_ENUM_TRAILING_PARAMS_Z(z, n, typename P) \
+ > \
+ inline ::std::pair<typename C::iterator,bool> \
+ operator()( \
+ C& _container \
+ BOOST_PP_CAT(BOOST_PP_ENUM_TRAILING_, z)( \
+ n \
+ , BOOST_CONTAINER_PP_PARAM_LIST \
+ , poop \
+ ) \
+ ) const \
+ { \
+ return _container.emplace( \
+ BOOST_PP_CAT(BOOST_PP_ENUM_, z)( \
+ n \
+ , BOOST_CONTAINER_PP_PARAM_FORWARD \
+ , poop \
+ ) \
+ ); \
+ } \
+//!
+ BOOST_PP_REPEAT(
+ BOOST_CONTAINER_MAX_CONSTRUCTOR_PARAMETERS
+ , BOOST_CONTAINER_GEN_EMPLACE_FUNCTION_GEN_CALL_OP_RPT_OP
+ , _
+ )
+#undef BOOST_CONTAINER_GEN_EMPLACE_FUNCTION_GEN_CALL_OP_RPT_OP
+#endif // compiler defect handling
+ };
+
+ template <typename C>
+ emplace_function_proxy<uac_emplace_function,C>
+ uac_emplace_function::operator[](C& _container) const
+ {
+ return emplace_function_proxy<uac_emplace_function,C>(_container);
+ }
+
+ struct uac_emplace_emu_function
+ {
+ template <typename C>
+ emplace_function_proxy<uac_emplace_emu_function,C>
+ operator[](C& _container) const;
+
+#if defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+#define BOOST_CONTAINER_GEN_EMPLACE_FUNCTION_GEN_CALL_OP_FOR_OP(r, seq) \
+ template < \
+ typename C \
+ BOOST_PP_ENUM_TRAILING_PARAMS( \
+ BOOST_PP_SEQ_SIZE(seq) \
+ , typename P \
+ ) \
+ > \
+ inline ::std::pair<typename C::iterator,bool> \
+ operator()( \
+ C& _container \
+ , BOOST_DETAIL_PP_BINARY_SEQ_TO_PARAMS( \
+ seq \
+ , P \
+ , & \
+ , const& \
+ , p \
+ ) \
+ ) const \
+ { \
+ return _container.insert( \
+ typename C::value_type( \
+ BOOST_PP_ENUM_PARAMS(BOOST_PP_SEQ_SIZE(seq), p) \
+ ) \
+ ); \
+ } \
+//!
+ BOOST_PP_FOR(
+ (0)
+ , BOOST_CONTAINER_GEN_PP_PARAM_PRED
+ , BOOST_CONTAINER_GEN_PP_PARAM_INC
+ , BOOST_CONTAINER_GEN_EMPLACE_FUNCTION_GEN_CALL_OP_FOR_OP
+ )
+#undef BOOST_CONTAINER_GEN_EMPLACE_FUNCTION_GEN_CALL_OP_FOR_OP
+#elif defined BOOST_CONTAINER_PERFECT_FORWARDING
+ template <typename C, typename ...Args>
+ inline ::std::pair<typename C::iterator,bool>
+ operator()(C& _container, Args&& ...args) const
+ {
+ return _container.insert(
+ typename C::value_type(::boost::forward<Args>(args)...)
+ );
+ }
+#else // partial template specialization support, imperfect forwarding
+#define BOOST_CONTAINER_GEN_EMPLACE_FUNCTION_GEN_CALL_OP_RPT_OP(z, n, poop) \
+ template < \
+ typename C \
+ BOOST_PP_ENUM_TRAILING_PARAMS_Z(z, n, typename P) \
+ > \
+ inline ::std::pair<typename C::iterator,bool> \
+ operator()( \
+ C& _container \
+ BOOST_PP_CAT(BOOST_PP_ENUM_TRAILING_, z)( \
+ n \
+ , BOOST_CONTAINER_PP_PARAM_LIST \
+ , poop \
+ ) \
+ ) const \
+ { \
+ return _container.insert( \
+ typename C::value_type( \
+ BOOST_PP_CAT(BOOST_PP_ENUM_, z)( \
+ n \
+ , BOOST_CONTAINER_PP_PARAM_FORWARD \
+ , poop \
+ ) \
+ ) \
+ ); \
+ } \
+//!
+ BOOST_PP_REPEAT(
+ BOOST_CONTAINER_MAX_CONSTRUCTOR_PARAMETERS
+ , BOOST_CONTAINER_GEN_EMPLACE_FUNCTION_GEN_CALL_OP_RPT_OP
+ , _
+ )
+#undef BOOST_CONTAINER_GEN_EMPLACE_FUNCTION_GEN_CALL_OP_RPT_OP
+#endif // compiler defect handling
+ };
+
+ template <typename C>
+ emplace_function_proxy<uac_emplace_emu_function,C>
+ uac_emplace_emu_function::operator[](C& _container) const
+ {
+ return emplace_function_proxy<uac_emplace_emu_function,C>(_container);
+ }
+
+ struct mac_emplace_function
+ {
+ template <typename C>
+ emplace_function_proxy<mac_emplace_function,C>
+ operator[](C& _container) const;
+
+#if defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+#define BOOST_CONTAINER_GEN_EMPLACE_FUNCTION_GEN_CALL_OP_FOR_OP(r, seq) \
+ template < \
+ typename C \
+ BOOST_PP_ENUM_TRAILING_PARAMS( \
+ BOOST_PP_SEQ_SIZE(seq) \
+ , typename P \
+ ) \
+ > \
+ inline ::std::pair<typename C::iterator,bool> \
+ operator()( \
+ C& _container \
+ , BOOST_DETAIL_PP_BINARY_SEQ_TO_PARAMS( \
+ seq \
+ , P \
+ , & \
+ , const& \
+ , p \
+ ) \
+ ) const \
+ { \
+ return ::std::make_pair( \
+ _container.emplace( \
+ BOOST_PP_ENUM_PARAMS(BOOST_PP_SEQ_SIZE(seq), p) \
+ ) \
+ , true \
+ ); \
+ } \
+//!
+ BOOST_PP_FOR(
+ (0)
+ , BOOST_CONTAINER_GEN_PP_PARAM_PRED
+ , BOOST_CONTAINER_GEN_PP_PARAM_INC
+ , BOOST_CONTAINER_GEN_EMPLACE_FUNCTION_GEN_CALL_OP_FOR_OP
+ )
+#undef BOOST_CONTAINER_GEN_EMPLACE_FUNCTION_GEN_CALL_OP_FOR_OP
+#elif defined BOOST_CONTAINER_PERFECT_FORWARDING
+ template <typename C, typename ...Args>
+ inline ::std::pair<typename C::iterator,bool>
+ operator()(C& _container, Args&& ...args) const
+ {
+ return ::std::make_pair(
+ _container.emplace(::boost::forward<Args>(args)...)
+ , true
+ );
+ }
+#else // partial template specialization support, imperfect forwarding
+#define BOOST_CONTAINER_GEN_EMPLACE_FUNCTION_GEN_CALL_OP_RPT_OP(z, n, poop) \
+ template < \
+ typename C \
+ BOOST_PP_ENUM_TRAILING_PARAMS_Z(z, n, typename P) \
+ > \
+ inline ::std::pair<typename C::iterator,bool> \
+ operator()( \
+ C& _container \
+ BOOST_PP_CAT(BOOST_PP_ENUM_TRAILING_, z)( \
+ n \
+ , BOOST_CONTAINER_PP_PARAM_LIST \
+ , poop \
+ ) \
+ ) const \
+ { \
+ return ::std::make_pair( \
+ _container.emplace( \
+ BOOST_PP_CAT(BOOST_PP_ENUM_, z)( \
+ n \
+ , BOOST_CONTAINER_PP_PARAM_FORWARD \
+ , poop \
+ ) \
+ ) \
+ , true \
+ ); \
+ } \
+//!
+ BOOST_PP_REPEAT(
+ BOOST_CONTAINER_MAX_CONSTRUCTOR_PARAMETERS
+ , BOOST_CONTAINER_GEN_EMPLACE_FUNCTION_GEN_CALL_OP_RPT_OP
+ , _
+ )
+#undef BOOST_CONTAINER_GEN_EMPLACE_FUNCTION_GEN_CALL_OP_RPT_OP
+#endif // compiler defect handling
+ };
+
+ template <typename C>
+ emplace_function_proxy<mac_emplace_function,C>
+ mac_emplace_function::operator[](C& _container) const
+ {
+ return emplace_function_proxy<mac_emplace_function,C>(_container);
+ }
+
+ struct mac_emplace_emu_function
+ {
+ template <typename C>
+ emplace_function_proxy<mac_emplace_emu_function,C>
+ operator[](C& _container) const;
+
+#if defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+#define BOOST_CONTAINER_GEN_EMPLACE_FUNCTION_GEN_CALL_OP_FOR_OP(r, seq) \
+ template < \
+ typename C \
+ BOOST_PP_ENUM_TRAILING_PARAMS( \
+ BOOST_PP_SEQ_SIZE(seq) \
+ , typename P \
+ ) \
+ > \
+ inline ::std::pair<typename C::iterator,bool> \
+ operator()( \
+ C& _container \
+ , BOOST_DETAIL_PP_BINARY_SEQ_TO_PARAMS( \
+ seq \
+ , P \
+ , & \
+ , const& \
+ , p \
+ ) \
+ ) const \
+ { \
+ return ::std::make_pair( \
+ _container.insert( \
+ typename C::value_type( \
+ BOOST_PP_ENUM_PARAMS(BOOST_PP_SEQ_SIZE(seq), p) \
+ ) \
+ ) \
+ , true \
+ ); \
+ } \
+//!
+ BOOST_PP_FOR(
+ (0)
+ , BOOST_CONTAINER_GEN_PP_PARAM_PRED
+ , BOOST_CONTAINER_GEN_PP_PARAM_INC
+ , BOOST_CONTAINER_GEN_EMPLACE_FUNCTION_GEN_CALL_OP_FOR_OP
+ )
+#undef BOOST_CONTAINER_GEN_EMPLACE_FUNCTION_GEN_CALL_OP_FOR_OP
+#elif defined BOOST_CONTAINER_PERFECT_FORWARDING
+ template <typename C, typename ...Args>
+ inline ::std::pair<typename C::iterator,bool>
+ operator()(C& _container, Args&& ...args) const
+ {
+ return ::std::make_pair(
+ _container.insert(
+ typename C::value_type(::boost::forward<Args>(args)...)
+ )
+ , true
+ );
+ }
+#else // partial template specialization support, imperfect forwarding
+#define BOOST_CONTAINER_GEN_EMPLACE_FUNCTION_GEN_CALL_OP_RPT_OP(z, n, poop) \
+ template < \
+ typename C \
+ BOOST_PP_ENUM_TRAILING_PARAMS_Z(z, n, typename P) \
+ > \
+ inline ::std::pair<typename C::iterator,bool> \
+ operator()( \
+ C& _container \
+ BOOST_PP_CAT(BOOST_PP_ENUM_TRAILING_, z)( \
+ n \
+ , BOOST_CONTAINER_PP_PARAM_LIST \
+ , poop \
+ ) \
+ ) const \
+ { \
+ return ::std::make_pair( \
+ _container.insert( \
+ typename C::value_type( \
+ BOOST_PP_CAT(BOOST_PP_ENUM_, z)( \
+ n \
+ , BOOST_CONTAINER_PP_PARAM_FORWARD \
+ , poop \
+ ) \
+ ) \
+ ) \
+ , true \
+ ); \
+ } \
+//!
+ BOOST_PP_REPEAT(
+ BOOST_CONTAINER_MAX_CONSTRUCTOR_PARAMETERS
+ , BOOST_CONTAINER_GEN_EMPLACE_FUNCTION_GEN_CALL_OP_RPT_OP
+ , _
+ )
+#undef BOOST_CONTAINER_GEN_EMPLACE_FUNCTION_GEN_CALL_OP_RPT_OP
+#endif // compiler defect handling
+ };
+
+ template <typename C>
+ emplace_function_proxy<mac_emplace_emu_function,C>
+ mac_emplace_emu_function::operator[](C& _container) const
+ {
+ return emplace_function_proxy<mac_emplace_emu_function,C>(_container);
+ }
+
+#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION && \
+ !defined BOOST_CONTAINER_PERFECT_FORWARDING
+#if defined BOOST_HAS_TR1_UNORDERED_SET
+
+// Handle different native TR1 emplacement implementations.
+#if defined BOOST_MSVC
+
+ struct tr1_huac_emplace_function
+ {
+ template <typename C>
+ emplace_function_proxy<tr1_huac_emplace_function,C>
+ operator[](C& _container) const;
+
+#define BOOST_CONTAINER_GEN_EMPLACE_FUNCTION_GEN_CALL_OP_RPT_OP(z, n, poop) \
+ template < \
+ typename C \
+ BOOST_PP_ENUM_TRAILING_PARAMS_Z(z, n, typename P) \
+ > \
+ inline ::std::pair<typename C::iterator,bool> \
+ operator()( \
+ C& _container \
+ BOOST_PP_CAT(BOOST_PP_ENUM_TRAILING_, z)( \
+ n \
+ , BOOST_CONTAINER_PP_PARAM_LIST \
+ , poop \
+ ) \
+ ) const \
+ { \
+ return _container.emplace( \
+ ::boost::move( \
+ typename C::value_type( \
+ BOOST_PP_CAT(BOOST_PP_ENUM_, z)( \
+ n \
+ , BOOST_CONTAINER_PP_PARAM_FORWARD \
+ , poop \
+ ) \
+ ) \
+ ) \
+ ); \
+ } \
+//!
+ BOOST_PP_REPEAT(
+ BOOST_CONTAINER_MAX_CONSTRUCTOR_PARAMETERS
+ , BOOST_CONTAINER_GEN_EMPLACE_FUNCTION_GEN_CALL_OP_RPT_OP
+ , _
+ )
+#undef BOOST_CONTAINER_GEN_EMPLACE_FUNCTION_GEN_CALL_OP_RPT_OP
+ };
+
+ template <typename C>
+ emplace_function_proxy<tr1_huac_emplace_function,C>
+ tr1_huac_emplace_function::operator[](C& _container) const
+ {
+ return emplace_function_proxy<tr1_huac_emplace_function,C>(_container);
+ }
+
+ typedef tr1_huac_emplace_function tr1_hmac_emplace_function;
+#else // TR1 == Boost wrt unordered_[multi]set::emplace
+#define BOOST_CONTAINER_GEN_EMPLACE_FUNCTION_GEN_USE_NO_NATIVE_TR1
+#endif
+
+#else // !defined BOOST_HAS_TR1_UNORDERED_SET
+#define BOOST_CONTAINER_GEN_EMPLACE_FUNCTION_GEN_USE_NO_NATIVE_TR1
+#endif // BOOST_HAS_TR1_UNORDERED_SET
+
+#if defined BOOST_CONTAINER_GEN_EMPLACE_FUNCTION_GEN_USE_NO_NATIVE_TR1
+ typedef uac_emplace_function tr1_huac_emplace_function;
+ typedef mac_emplace_function tr1_hmac_emplace_function;
+#undef BOOST_CONTAINER_GEN_EMPLACE_FUNCTION_GEN_USE_NO_NATIVE_TR1
+#endif // BOOST_CONTAINER_GEN_EMPLACE_FUNCTION_GEN_USE_NO_NATIVE_TR1
+#endif // partial template specialization support, imperfect forwarding
+
+ struct ptr_sequence_emplace_function
+ {
+ template <typename C>
+ emplace_function_proxy<ptr_sequence_emplace_function,C>
+ operator[](C& _container) const;
+
+#if defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+#define BOOST_CONTAINER_GEN_EMPLACE_FUNCTION_GEN_CALL_OP_FOR_OP(r, seq) \
+ template < \
+ typename C \
+ BOOST_PP_ENUM_TRAILING_PARAMS( \
+ BOOST_PP_SEQ_SIZE(seq) \
+ , typename P \
+ ) \
+ > \
+ inline ::std::pair<typename C::iterator,bool> \
+ operator()( \
+ C& _container \
+ , BOOST_DETAIL_PP_BINARY_SEQ_TO_PARAMS( \
+ seq \
+ , P \
+ , & \
+ , const& \
+ , p \
+ ) \
+ ) const \
+ { \
+ typedef typename ::std::tr1::remove_pointer< \
+ typename C::value_type \
+ >::type \
+ _data_type; \
+ return ::std::make_pair( \
+ _container.insert( \
+ _container.end() \
+ , new _data_type( \
+ BOOST_PP_ENUM_PARAMS(BOOST_PP_SEQ_SIZE(seq), p) \
+ ) \
+ ) \
+ , true \
+ ); \
+ } \
+//!
+ BOOST_PP_FOR(
+ (0)
+ , BOOST_CONTAINER_GEN_PP_PARAM_PRED
+ , BOOST_CONTAINER_GEN_PP_PARAM_INC
+ , BOOST_CONTAINER_GEN_EMPLACE_FUNCTION_GEN_CALL_OP_FOR_OP
+ )
+#undef BOOST_CONTAINER_GEN_EMPLACE_FUNCTION_GEN_CALL_OP_FOR_OP
+#elif defined BOOST_CONTAINER_PERFECT_FORWARDING
+ template <typename C, typename ...Args>
+ inline ::std::pair<typename C::iterator,bool>
+ operator()(C& _container, Args&& ...args) const
+ {
+ typedef typename ::std::tr1::remove_pointer<
+ typename C::value_type
+ >::type
+ _data_type;
+
+ return ::std::make_pair(
+ _container.insert(
+ _container.end()
+ , new _data_type(::boost::forward<Args>(args)...)
+ )
+ , true
+ );
+ }
+#else // partial template specialization support, imperfect forwarding
+#define BOOST_CONTAINER_GEN_EMPLACE_FUNCTION_GEN_CALL_OP_RPT_OP(z, n, poop) \
+ template < \
+ typename C \
+ BOOST_PP_ENUM_TRAILING_PARAMS_Z(z, n, typename P) \
+ > \
+ inline ::std::pair<typename C::iterator,bool> \
+ operator()( \
+ C& _container \
+ BOOST_PP_CAT(BOOST_PP_ENUM_TRAILING_, z)( \
+ n \
+ , BOOST_CONTAINER_PP_PARAM_LIST \
+ , poop \
+ ) \
+ ) const \
+ { \
+ typedef typename ::std::tr1::remove_pointer< \
+ typename C::value_type \
+ >::type \
+ _data_type; \
+ return ::std::make_pair( \
+ _container.insert( \
+ _container.end() \
+ , new _data_type( \
+ BOOST_PP_CAT(BOOST_PP_ENUM_, z)( \
+ n \
+ , BOOST_CONTAINER_PP_PARAM_FORWARD \
+ , poop \
+ ) \
+ ) \
+ ) \
+ , true \
+ ); \
+ } \
+//!
+ BOOST_PP_REPEAT(
+ BOOST_CONTAINER_MAX_CONSTRUCTOR_PARAMETERS
+ , BOOST_CONTAINER_GEN_EMPLACE_FUNCTION_GEN_CALL_OP_RPT_OP
+ , _
+ )
+#undef BOOST_CONTAINER_GEN_EMPLACE_FUNCTION_GEN_CALL_OP_RPT_OP
+#endif // compiler defect handling
+ };
+
+ template <typename C>
+ emplace_function_proxy<ptr_sequence_emplace_function,C>
+ ptr_sequence_emplace_function::operator[](C& _container) const
+ {
+ return emplace_function_proxy<ptr_sequence_emplace_function,C>(
+ _container
+ );
+ }
+
+ struct ua_ptr_container_emplace_function
+ {
+ template <typename C>
+ emplace_function_proxy<ua_ptr_container_emplace_function,C>
+ operator[](C& _container) const;
+
+#if defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+#define BOOST_CONTAINER_GEN_EMPLACE_FUNCTION_GEN_CALL_OP_FOR_OP(r, seq) \
+ template < \
+ typename C \
+ BOOST_PP_ENUM_TRAILING_PARAMS( \
+ BOOST_PP_SEQ_SIZE(seq) \
+ , typename P \
+ ) \
+ > \
+ inline ::std::pair<typename C::iterator,bool> \
+ operator()( \
+ C& _container \
+ , BOOST_DETAIL_PP_BINARY_SEQ_TO_PARAMS( \
+ seq \
+ , P \
+ , & \
+ , const& \
+ , p \
+ ) \
+ ) const \
+ { \
+ typedef typename ::std::tr1::remove_pointer< \
+ typename C::value_type \
+ >::type \
+ _data_type; \
+ return _container.insert( \
+ new _data_type( \
+ BOOST_PP_ENUM_PARAMS(BOOST_PP_SEQ_SIZE(seq), p) \
+ ) \
+ ); \
+ } \
+//!
+ BOOST_PP_FOR(
+ (0)
+ , BOOST_CONTAINER_GEN_PP_PARAM_PRED
+ , BOOST_CONTAINER_GEN_PP_PARAM_INC
+ , BOOST_CONTAINER_GEN_EMPLACE_FUNCTION_GEN_CALL_OP_FOR_OP
+ )
+#undef BOOST_CONTAINER_GEN_EMPLACE_FUNCTION_GEN_CALL_OP_FOR_OP
+#elif defined BOOST_CONTAINER_PERFECT_FORWARDING
+ template <typename C, typename ...Args>
+ inline ::std::pair<typename C::iterator,bool>
+ operator()(C& _container, Args&& ...args) const
+ {
+ typedef typename ::std::tr1::remove_pointer<
+ typename C::value_type
+ >::type
+ _data_type;
+
+ return _container.insert(
+ new _data_type(::boost::forward<Args>(args)...)
+ );
+ }
+#else // partial template specialization support, imperfect forwarding
+#define BOOST_CONTAINER_GEN_EMPLACE_FUNCTION_GEN_CALL_OP_RPT_OP(z, n, poop) \
+ template < \
+ typename C \
+ BOOST_PP_ENUM_TRAILING_PARAMS_Z(z, n, typename P) \
+ > \
+ inline ::std::pair<typename C::iterator,bool> \
+ operator()( \
+ C& _container \
+ BOOST_PP_CAT(BOOST_PP_ENUM_TRAILING_, z)( \
+ n \
+ , BOOST_CONTAINER_PP_PARAM_LIST \
+ , poop \
+ ) \
+ ) const \
+ { \
+ typedef typename ::std::tr1::remove_pointer< \
+ typename C::value_type \
+ >::type \
+ _data_type; \
+ return _container.insert( \
+ new _data_type( \
+ BOOST_PP_CAT(BOOST_PP_ENUM_, z)( \
+ n \
+ , BOOST_CONTAINER_PP_PARAM_FORWARD \
+ , poop \
+ ) \
+ ) \
+ ); \
+ } \
+//!
+ BOOST_PP_REPEAT(
+ BOOST_CONTAINER_MAX_CONSTRUCTOR_PARAMETERS
+ , BOOST_CONTAINER_GEN_EMPLACE_FUNCTION_GEN_CALL_OP_RPT_OP
+ , _
+ )
+#undef BOOST_CONTAINER_GEN_EMPLACE_FUNCTION_GEN_CALL_OP_RPT_OP
+#endif // compiler defect handling
+ };
+
+ template <typename C>
+ emplace_function_proxy<ua_ptr_container_emplace_function,C>
+ ua_ptr_container_emplace_function::operator[](C& _container) const
+ {
+ return emplace_function_proxy<ua_ptr_container_emplace_function,C>(
+ _container
+ );
+ }
+
+ struct heap_emplace_function
+ {
+ template <typename C>
+ emplace_function_proxy<heap_emplace_function,C>
+ operator[](C& _container) const;
+
+#if defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+#define BOOST_CONTAINER_GEN_EMPLACE_FUNCTION_GEN_CALL_OP_FOR_OP(r, seq) \
+ template < \
+ typename C \
+ BOOST_PP_ENUM_TRAILING_PARAMS( \
+ BOOST_PP_SEQ_SIZE(seq) \
+ , typename P \
+ ) \
+ > \
+ inline void \
+ operator()( \
+ C& _container \
+ , BOOST_DETAIL_PP_BINARY_SEQ_TO_PARAMS( \
+ seq \
+ , P \
+ , & \
+ , const& \
+ , p \
+ ) \
+ ) const \
+ { \
+ _container.emplace( \
+ BOOST_PP_ENUM_PARAMS(BOOST_PP_SEQ_SIZE(seq), p) \
+ ); \
+ } \
+//!
+ BOOST_PP_FOR(
+ (0)
+ , BOOST_CONTAINER_GEN_PP_PARAM_PRED
+ , BOOST_CONTAINER_GEN_PP_PARAM_INC
+ , BOOST_CONTAINER_GEN_EMPLACE_FUNCTION_GEN_CALL_OP_FOR_OP
+ )
+#undef BOOST_CONTAINER_GEN_EMPLACE_FUNCTION_GEN_CALL_OP_FOR_OP
+#elif defined BOOST_CONTAINER_PERFECT_FORWARDING
+ template <typename C, typename ...Args>
+ inline void operator()(C& _container, Args&& ...args) const
+ {
+ _container.emplace(::boost::forward<Args>(args)...);
+ }
+#else // partial template specialization support, imperfect forwarding
+#define BOOST_CONTAINER_GEN_EMPLACE_FUNCTION_GEN_CALL_OP_RPT_OP(z, n, poop) \
+ template < \
+ typename C \
+ BOOST_PP_ENUM_TRAILING_PARAMS_Z(z, n, typename P) \
+ > \
+ inline void \
+ operator()( \
+ C& _container \
+ BOOST_PP_CAT(BOOST_PP_ENUM_TRAILING_, z)( \
+ n \
+ , BOOST_CONTAINER_PP_PARAM_LIST \
+ , poop \
+ ) \
+ ) const \
+ { \
+ _container.emplace( \
+ BOOST_PP_CAT(BOOST_PP_ENUM_, z)( \
+ n \
+ , BOOST_CONTAINER_PP_PARAM_FORWARD \
+ , poop \
+ ) \
+ ); \
+ } \
+//!
+ BOOST_PP_REPEAT(
+ BOOST_CONTAINER_MAX_CONSTRUCTOR_PARAMETERS
+ , BOOST_CONTAINER_GEN_EMPLACE_FUNCTION_GEN_CALL_OP_RPT_OP
+ , _
+ )
+#undef BOOST_CONTAINER_GEN_EMPLACE_FUNCTION_GEN_CALL_OP_RPT_OP
+#endif // compiler defect handling
+ };
+
+ template <typename C>
+ emplace_function_proxy<heap_emplace_function,C>
+ heap_emplace_function::operator[](C& _container) const
+ {
+ return emplace_function_proxy<heap_emplace_function,C>(_container);
+ }
+
+ struct mutable_heap_emplace_function
+ {
+ template <typename C>
+ emplace_function_proxy<mutable_heap_emplace_function,C>
+ operator[](C& _container) const;
+
+#if defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+#define BOOST_CONTAINER_GEN_EMPLACE_FUNCTION_GEN_CALL_OP_FOR_OP(r, seq) \
+ template < \
+ typename C \
+ BOOST_PP_ENUM_TRAILING_PARAMS( \
+ BOOST_PP_SEQ_SIZE(seq) \
+ , typename P \
+ ) \
+ > \
+ inline typename C::handle_type \
+ operator()( \
+ C& _container \
+ , BOOST_DETAIL_PP_BINARY_SEQ_TO_PARAMS( \
+ seq \
+ , P \
+ , & \
+ , const& \
+ , p \
+ ) \
+ ) const \
+ { \
+ return _container.emplace( \
+ BOOST_PP_ENUM_PARAMS(BOOST_PP_SEQ_SIZE(seq), p) \
+ ); \
+ } \
+//!
+ BOOST_PP_FOR(
+ (0)
+ , BOOST_CONTAINER_GEN_PP_PARAM_PRED
+ , BOOST_CONTAINER_GEN_PP_PARAM_INC
+ , BOOST_CONTAINER_GEN_EMPLACE_FUNCTION_GEN_CALL_OP_FOR_OP
+ )
+#undef BOOST_CONTAINER_GEN_EMPLACE_FUNCTION_GEN_CALL_OP_FOR_OP
+#elif defined BOOST_CONTAINER_PERFECT_FORWARDING
+ template <typename C, typename ...Args>
+ inline typename C::handle_type
+ operator()(C& _container, Args&& ...args) const
+ {
+ return _container.emplace(::boost::forward<Args>(args)...);
+ }
+#else // partial template specialization support, imperfect forwarding
+#define BOOST_CONTAINER_GEN_EMPLACE_FUNCTION_GEN_CALL_OP_RPT_OP(z, n, poop) \
+ template < \
+ typename C \
+ BOOST_PP_ENUM_TRAILING_PARAMS_Z(z, n, typename P) \
+ > \
+ inline typename C::handle_type \
+ operator()( \
+ C& _container \
+ BOOST_PP_CAT(BOOST_PP_ENUM_TRAILING_, z)( \
+ n \
+ , BOOST_CONTAINER_PP_PARAM_LIST \
+ , poop \
+ ) \
+ ) const \
+ { \
+ return _container.emplace( \
+ BOOST_PP_CAT(BOOST_PP_ENUM_, z)( \
+ n \
+ , BOOST_CONTAINER_PP_PARAM_FORWARD \
+ , poop \
+ ) \
+ ); \
+ } \
+//!
+ BOOST_PP_REPEAT(
+ BOOST_CONTAINER_MAX_CONSTRUCTOR_PARAMETERS
+ , BOOST_CONTAINER_GEN_EMPLACE_FUNCTION_GEN_CALL_OP_RPT_OP
+ , _
+ )
+#undef BOOST_CONTAINER_GEN_EMPLACE_FUNCTION_GEN_CALL_OP_RPT_OP
+#endif // compiler defect handling
+ };
+
+ template <typename C>
+ emplace_function_proxy<mutable_heap_emplace_function,C>
+ mutable_heap_emplace_function::operator[](C& _container) const
+ {
+ return emplace_function_proxy<mutable_heap_emplace_function,C>(
+ _container
+ );
+ }
+
+ struct adaptor_emplace_emu_function
+ {
+ template <typename C>
+ emplace_function_proxy<adaptor_emplace_emu_function,C>
+ operator[](C& _container) const;
+
+#if defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+#define BOOST_CONTAINER_GEN_EMPLACE_FUNCTION_GEN_CALL_OP_FOR_OP(r, seq) \
+ template < \
+ typename C \
+ BOOST_PP_ENUM_TRAILING_PARAMS( \
+ BOOST_PP_SEQ_SIZE(seq) \
+ , typename P \
+ ) \
+ > \
+ inline void \
+ operator()( \
+ C& _container \
+ , BOOST_DETAIL_PP_BINARY_SEQ_TO_PARAMS( \
+ seq \
+ , P \
+ , & \
+ , const& \
+ , p \
+ ) \
+ ) const \
+ { \
+ _container.push( \
+ typename C::value_type( \
+ BOOST_PP_ENUM_PARAMS(BOOST_PP_SEQ_SIZE(seq), p) \
+ ) \
+ ); \
+ } \
+//!
+ BOOST_PP_FOR(
+ (0)
+ , BOOST_CONTAINER_GEN_PP_PARAM_PRED
+ , BOOST_CONTAINER_GEN_PP_PARAM_INC
+ , BOOST_CONTAINER_GEN_EMPLACE_FUNCTION_GEN_CALL_OP_FOR_OP
+ )
+#undef BOOST_CONTAINER_GEN_EMPLACE_FUNCTION_GEN_CALL_OP_FOR_OP
+#elif defined BOOST_CONTAINER_PERFECT_FORWARDING
+ template <typename C, typename ...Args>
+ inline void operator()(C& _container, Args&& ...args) const
+ {
+ _container.push(
+ typename C::value_type(::boost::forward<Args>(args)...)
+ );
+ }
+#else // partial template specialization support, imperfect forwarding
+#define BOOST_CONTAINER_GEN_EMPLACE_FUNCTION_GEN_CALL_OP_RPT_OP(z, n, poop) \
+ template < \
+ typename C \
+ BOOST_PP_ENUM_TRAILING_PARAMS_Z(z, n, typename P) \
+ > \
+ inline void \
+ operator()( \
+ C& _container \
+ BOOST_PP_CAT(BOOST_PP_ENUM_TRAILING_, z)( \
+ n \
+ , BOOST_CONTAINER_PP_PARAM_LIST \
+ , poop \
+ ) \
+ ) const \
+ { \
+ _container.push( \
+ typename C::value_type( \
+ BOOST_PP_CAT(BOOST_PP_ENUM_, z)( \
+ n \
+ , BOOST_CONTAINER_PP_PARAM_FORWARD \
+ , poop \
+ ) \
+ ) \
+ ); \
+ } \
+//!
+ BOOST_PP_REPEAT(
+ BOOST_CONTAINER_MAX_CONSTRUCTOR_PARAMETERS
+ , BOOST_CONTAINER_GEN_EMPLACE_FUNCTION_GEN_CALL_OP_RPT_OP
+ , _
+ )
+#undef BOOST_CONTAINER_GEN_EMPLACE_FUNCTION_GEN_CALL_OP_RPT_OP
+#endif // compiler defect handling
+ };
+
+ template <typename C>
+ emplace_function_proxy<adaptor_emplace_emu_function,C>
+ adaptor_emplace_emu_function::operator[](C& _container) const
+ {
+ return emplace_function_proxy<adaptor_emplace_emu_function,C>(
+ _container
+ );
+ }
+}} // namespace boost::detail
+
+#if defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+#undef BOOST_CONTAINER_GEN_EMPLACE_FUNCTION_GEN_SEQ_EMU_FOR_OP
+#undef BOOST_CONTAINER_GEN_EMPLACE_FUNCTION_GEN_SEQUENCE_FOR_OP
+#elif !defined BOOST_CONTAINER_PERFECT_FORWARDING
+#undef BOOST_CONTAINER_GEN_EMPLACE_FUNCTION_GEN_SEQ_EMU_RPT_OP
+#undef BOOST_CONTAINER_GEN_EMPLACE_FUNCTION_GEN_SEQUENCE_RPT_OP
+#endif
+
+#include <boost/mpl/identity.hpp>
+#include <boost/mpl/if.hpp>
+#include <boost/mpl/eval_if.hpp>
+#include <boost/mpl/or.hpp>
+#include <boost/mpl/aux_/lambda_support.hpp>
+#include <boost/container_gen/has_emplace_mfunc_selector.hpp>
+#include <boost/container_gen/is_associative_selector.hpp>
+#include <boost/container_gen/is_unique_assoc_selector.hpp>
+#include <boost/container_gen/is_multiple_assoc_selector.hpp>
+#include <boost/container_gen/is_ptr_selector.hpp>
+#include <boost/container_gen/is_queue_selector.hpp>
+#include <boost/container_gen/is_stack_selector.hpp>
+#include <boost/container_gen/is_std_heap_selector.hpp>
+
+#if !defined BOOST_NO_CXX11_RVALUE_REFERENCES
+#include <boost/container_gen/is_heap_selector.hpp>
+#include <boost/container_gen/is_mutable_heap_selector.hpp>
+#endif
+
+#if !defined BOOST_CONTAINER_PERFECT_FORWARDING
+#include <boost/container_gen/is_tr1_selector.hpp>
+#endif
+
+//[reference__emplace_function_gen
+namespace boost {
+
+ template <typename Selector>
+ struct emplace_function_gen
+ //<-
+ : ::boost::mpl::eval_if<
+ is_ptr_selector<Selector>
+ , ::boost::mpl::if_<
+ is_unique_associative_selector<Selector>
+ , detail::ua_ptr_container_emplace_function
+ , detail::ptr_sequence_emplace_function
+ >
+ , ::boost::mpl::eval_if<
+ has_emplace_member_function_selector<Selector>
+ , ::boost::mpl::eval_if<
+#if !defined BOOST_NO_CXX11_RVALUE_REFERENCES
+ is_heap_selector<Selector>
+ , ::boost::mpl::if_<
+ is_mutable_heap_selector<Selector>
+ , detail::mutable_heap_emplace_function
+ , detail::heap_emplace_function
+ >
+ , ::boost::mpl::eval_if<
+#endif
+ is_associative_selector<Selector>
+#if !defined BOOST_CONTAINER_PERFECT_FORWARDING
+ , ::boost::mpl::eval_if<
+ is_tr1_selector<Selector>
+ , ::boost::mpl::if_<
+ is_multiple_associative_selector<Selector>
+ , detail::tr1_hmac_emplace_function
+ , detail::tr1_huac_emplace_function
+ >
+#endif
+ , ::boost::mpl::if_<
+ is_multiple_associative_selector<Selector>
+ , detail::mac_emplace_function
+ , detail::uac_emplace_function
+ >
+#if !defined BOOST_CONTAINER_PERFECT_FORWARDING
+ >
+#endif
+ , ::boost::mpl::identity<detail::bis_emplace_function>
+#if !defined BOOST_NO_CXX11_RVALUE_REFERENCES
+ >
+#endif
+ >
+ , ::boost::mpl::eval_if<
+ is_associative_selector<Selector>
+ , ::boost::mpl::if_<
+ is_unique_associative_selector<Selector>
+ , detail::uac_emplace_emu_function
+ , detail::mac_emplace_emu_function
+ >
+ , ::boost::mpl::if_<
+ ::boost::mpl::or_<
+ ::boost::mpl::or_<
+ is_queue_selector<Selector>
+ , is_stack_selector<Selector>
+ >
+ , is_std_heap_selector<Selector>
+ >
+ , detail::adaptor_emplace_emu_function
+ , detail::bis_emplace_emu_function
+ >
+ >
+ >
+ >
+ //->
+ {
+ // typedef ... type;
+ //<-
+ BOOST_MPL_AUX_LAMBDA_SUPPORT(1, emplace_function_gen, (Selector))
+ //->
+ };
+} // namespace boost
+//]
+
+#include <boost/container_gen/selectors.hpp>
+
+#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+
+namespace boost {
+
+ template <typename AllocatorSelector>
+ struct emplace_function_gen<slist_selector<AllocatorSelector> >
+ {
+ typedef detail::fis_emplace_function type;
+ };
+} // namespace boost
+
+#elif !defined BOOST_NO_SLIST
+
+namespace boost {
+
+ template <>
+ struct emplace_function_gen<slist_selector_base>
+ {
+ typedef detail::fis_emplace_emu_function type;
+ };
+} // namespace boost
+
+#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION, BOOST_NO_SLIST
+
+#endif // BOOST_CONTAINER_GEN_EMPLACE_FUNCTION_GEN_HPP_INCLUDED
+

Added: sandbox/container_gen/boost/container_gen/has_emplace_mfunc_selector.hpp
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ sandbox/container_gen/boost/container_gen/has_emplace_mfunc_selector.hpp 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84957)
@@ -0,0 +1,240 @@
+//=============================================================================
+// 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)
+//=============================================================================
+
+#ifndef BOOST_CONTAINER_GEN_HAS_EMPLACE_MFUNC_SELECTOR_HPP_INCLUDED
+#define BOOST_CONTAINER_GEN_HAS_EMPLACE_MFUNC_SELECTOR_HPP_INCLUDED
+
+#include <boost/config.hpp>
+#include <boost/mpl/bool.hpp>
+#include <boost/mpl/aux_/lambda_support.hpp>
+
+#if defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+
+//[reference__has_emplace_member_function_selector
+namespace boost {
+
+ template <typename Selector>
+ struct has_emplace_member_function_selector
+ //<-
+ : ::boost::mpl::false_
+ //->
+ {
+ // typedef ... type;
+ //<-
+ BOOST_MPL_AUX_LAMBDA_SUPPORT(
+ 1
+ , has_emplace_member_function_selector
+ , (Selector)
+ )
+ //->
+ };
+} // namespace boost
+//]
+
+#else // !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+
+#if !defined BOOST_NO_CXX11_RVALUE_REFERENCES
+#include <boost/mpl/eval_if.hpp>
+#endif
+
+#include <boost/mpl/if.hpp>
+#include <boost/container_gen/is_flat_assoc_selector.hpp>
+#include <boost/container_gen/is_hashed_assoc_selector.hpp>
+#include <boost/container_gen/is_heap_selector.hpp>
+#include <boost/container_gen/selectors.hpp>
+
+namespace boost {
+
+ template <typename Selector>
+ struct has_emplace_member_function_selector
+#if defined BOOST_NO_CXX11_RVALUE_REFERENCES
+ : ::boost::mpl::if_<
+ is_flat_associative_selector<Selector>
+ , ::boost::mpl::true_
+ , is_hashed_associative_selector<Selector>
+ >::type
+#else
+ : ::boost::mpl::eval_if<
+ is_flat_associative_selector<Selector>
+ , ::boost::mpl::true_
+ , ::boost::mpl::if_<
+ is_hashed_associative_selector<Selector>
+ , ::boost::mpl::true_
+ , is_heap_selector<Selector>
+ >
+ >::type
+#endif // BOOST_NO_CXX11_RVALUE_REFERENCES
+ {
+ BOOST_MPL_AUX_LAMBDA_SUPPORT(
+ 1
+ , has_emplace_member_function_selector
+ , (Selector)
+ )
+ };
+
+ template <typename T0, typename T1>
+ struct has_emplace_member_function_selector<vector_selector<T0,T1> >
+#if defined BOOST_MOVE_USE_STANDARD_LIBRARY_MOVE
+ : ::boost::mpl::true_
+#else
+ : ::boost::mpl::if_<
+ typename ::boost::parameter::value_type<
+ typename detail::sequence_selector_signature::bind<T0,T1>::type
+ , ::boost::is_boost_not_std_tag
+ , ::boost::mpl::false_
+ >::type
+ , ::boost::mpl::true_
+ , ::boost::mpl::false_
+ >::type
+#endif // BOOST_MOVE_USE_STANDARD_LIBRARY_MOVE
+ {
+ };
+
+ template <typename T0, typename T1>
+ struct has_emplace_member_function_selector<deque_selector<T0,T1> >
+#if defined BOOST_MOVE_USE_STANDARD_LIBRARY_MOVE
+ : ::boost::mpl::true_
+#else
+ : ::boost::mpl::if_<
+ typename ::boost::parameter::value_type<
+ typename detail::sequence_selector_signature::bind<T0,T1>::type
+ , ::boost::is_boost_not_std_tag
+ , ::boost::mpl::false_
+ >::type
+ , ::boost::mpl::true_
+ , ::boost::mpl::false_
+ >::type
+#endif // BOOST_MOVE_USE_STANDARD_LIBRARY_MOVE
+ {
+ };
+
+ template <typename T0, typename T1>
+ struct has_emplace_member_function_selector<list_selector<T0,T1> >
+#if defined BOOST_MOVE_USE_STANDARD_LIBRARY_MOVE
+ : ::boost::mpl::true_
+#else
+ : ::boost::mpl::if_<
+ typename ::boost::parameter::value_type<
+ typename detail::sequence_selector_signature::bind<T0,T1>::type
+ , ::boost::is_boost_not_std_tag
+ , ::boost::mpl::false_
+ >::type
+ , ::boost::mpl::true_
+ , ::boost::mpl::false_
+ >::type
+#endif // BOOST_MOVE_USE_STANDARD_LIBRARY_MOVE
+ {
+ };
+
+ template <typename AllocatorSelector>
+ struct has_emplace_member_function_selector<
+ stable_vector_selector<AllocatorSelector>
+ > : ::boost::mpl::true_
+ {
+ };
+
+ template <typename AllocatorSelector>
+ struct has_emplace_member_function_selector<
+ slist_selector<AllocatorSelector>
+ > : ::boost::mpl::true_
+ {
+ };
+
+ template <typename T0, typename T1, typename T2>
+ struct has_emplace_member_function_selector<set_selector<T0,T1,T2> >
+#if defined BOOST_MOVE_USE_STANDARD_LIBRARY_MOVE
+ : ::boost::mpl::true_
+#else
+ : ::boost::mpl::if_<
+ typename ::boost::parameter::value_type<
+ typename detail::associative_selector_signature::bind<
+ T0
+ , T1
+ , T2
+ >::type
+ , ::boost::is_boost_not_std_tag
+ , ::boost::mpl::false_
+ >::type
+ , ::boost::mpl::true_
+ , ::boost::mpl::false_
+ >::type
+#endif // BOOST_MOVE_USE_STANDARD_LIBRARY_MOVE
+ {
+ };
+
+ template <typename T0, typename T1, typename T2>
+ struct has_emplace_member_function_selector<map_selector<T0,T1,T2> >
+#if defined BOOST_MOVE_USE_STANDARD_LIBRARY_MOVE
+ : ::boost::mpl::true_
+#else
+ : ::boost::mpl::if_<
+ typename ::boost::parameter::value_type<
+ typename detail::associative_selector_signature::bind<
+ T0
+ , T1
+ , T2
+ >::type
+ , ::boost::is_boost_not_std_tag
+ , ::boost::mpl::false_
+ >::type
+ , ::boost::mpl::true_
+ , ::boost::mpl::false_
+ >::type
+#endif // BOOST_MOVE_USE_STANDARD_LIBRARY_MOVE
+ {
+ };
+
+ template <typename T0, typename T1, typename T2>
+ struct has_emplace_member_function_selector<multiset_selector<T0,T1,T2> >
+#if defined BOOST_MOVE_USE_STANDARD_LIBRARY_MOVE
+ : ::boost::mpl::true_
+#else
+ : ::boost::mpl::if_<
+ typename ::boost::parameter::value_type<
+ typename detail::associative_selector_signature::bind<
+ T0
+ , T1
+ , T2
+ >::type
+ , ::boost::is_boost_not_std_tag
+ , ::boost::mpl::false_
+ >::type
+ , ::boost::mpl::true_
+ , ::boost::mpl::false_
+ >::type
+#endif // BOOST_MOVE_USE_STANDARD_LIBRARY_MOVE
+ {
+ };
+
+ template <typename T0, typename T1, typename T2>
+ struct has_emplace_member_function_selector<multimap_selector<T0,T1,T2> >
+#if defined BOOST_MOVE_USE_STANDARD_LIBRARY_MOVE
+ : ::boost::mpl::true_
+#else
+ : ::boost::mpl::if_<
+ typename ::boost::parameter::value_type<
+ typename detail::associative_selector_signature::bind<
+ T0
+ , T1
+ , T2
+ >::type
+ , ::boost::is_boost_not_std_tag
+ , ::boost::mpl::false_
+ >::type
+ , ::boost::mpl::true_
+ , ::boost::mpl::false_
+ >::type
+#endif // BOOST_MOVE_USE_STANDARD_LIBRARY_MOVE
+ {
+ };
+} // namespace boost
+
+#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+
+#endif // BOOST_CONTAINER_GEN_HAS_EMPLACE_MFUNC_SELECTOR_HPP_INCLUDED
+

Added: sandbox/container_gen/boost/container_gen/has_stable_iters_selector.hpp
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ sandbox/container_gen/boost/container_gen/has_stable_iters_selector.hpp 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84957)
@@ -0,0 +1,181 @@
+//=============================================================================
+// 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)
+//=============================================================================
+
+#ifndef BOOST_CONTAINER_GEN_HAS_STABLE_ITERS_SELECTOR_HPP_INCLUDED
+#define BOOST_CONTAINER_GEN_HAS_STABLE_ITERS_SELECTOR_HPP_INCLUDED
+
+#include <boost/config.hpp>
+#include <boost/mpl/aux_/config/has_xxx.hpp>
+#include <boost/mpl/aux_/lambda_support.hpp>
+#include <boost/mpl/bool.hpp>
+#include <boost/container_gen/selectors.hpp>
+
+#if defined BOOST_NO_SFINAE || defined BOOST_MPL_CFG_NO_HAS_XXX
+
+#include <boost/mpl/not.hpp>
+#include <boost/mpl/and.hpp>
+#include <boost/container_gen/is_random_access_selector.hpp>
+#include <boost/container_gen/is_hashed_assoc_selector.hpp>
+#include <boost/container_gen/is_queue_selector.hpp>
+#include <boost/container_gen/is_stack_selector.hpp>
+#include <boost/container_gen/is_std_heap_selector.hpp>
+#include <boost/container_gen/is_heap_selector.hpp>
+
+namespace boost {
+
+ template <typename Selector>
+ struct has_stable_iterators_selector
+ : ::boost::mpl::and_<
+ ::boost::mpl::and_<
+ ::boost::mpl::not_<is_random_access_selector<Selector> >
+ , ::boost::mpl::not_<is_hashed_associative_selector<Selector> >
+ >
+ , ::boost::mpl::and_<
+ ::boost::mpl::and_<
+ ::boost::mpl::not_<is_queue_selector<Selector> >
+ , ::boost::mpl::not_<is_stack_selector<Selector> >
+ >
+ , ::boost::mpl::and_<
+ ::boost::mpl::not_<is_std_heap_selector<Selector> >
+ , ::boost::mpl::not_<is_heap_selector<Selector> >
+ >
+ >
+ >
+ {
+ BOOST_MPL_AUX_LAMBDA_SUPPORT(
+ 1
+ , has_stable_iterators_selector
+ , (Selector)
+ )
+ };
+} // namespace boost
+
+#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+
+namespace boost {
+
+ template <typename AllocatorSelector>
+ struct has_stable_iterators_selector<
+ stable_vector_selector<AllocatorSelector>
+ > : ::boost::mpl::true_
+ {
+ };
+
+ template <typename T0, typename T1>
+ struct has_stable_iterators_selector<flat_set_selector<T0,T1> >
+ : ::boost::mpl::false_
+ {
+ };
+
+ template <typename T0, typename T1>
+ struct has_stable_iterators_selector<flat_map_selector<T0,T1> >
+ : ::boost::mpl::false_
+ {
+ };
+
+ template <typename T0, typename T1>
+ struct has_stable_iterators_selector<flat_multiset_selector<T0,T1> >
+ : ::boost::mpl::false_
+ {
+ };
+
+ template <typename T0, typename T1>
+ struct has_stable_iterators_selector<flat_multimap_selector<T0,T1> >
+ : ::boost::mpl::false_
+ {
+ };
+} // namespace boost
+
+#endif // !BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+
+#else // !defined BOOST_NO_SFINAE && !defined BOOST_MPL_CFG_NO_HAS_XXX
+
+#include <boost/mpl/aux_/has_type.hpp>
+#include <boost/mpl/if.hpp>
+#include <boost/container_gen/container_gen.hpp>
+#include <boost/detail/metafunction/has_stable_iterators.hpp>
+
+namespace boost { namespace detail { namespace metafunction {
+
+ template <typename Selector>
+ struct has_stable_iterators_selector_impl
+ : ::boost::detail::metafunction::has_stable_iterators<
+ typename container_gen<Selector,int>::type
+ >
+ {
+ };
+}}} // namespace boost::detail::metafunction
+
+//[reference__has_stable_iterators_selector
+namespace boost {
+
+ template <typename Selector>
+ struct has_stable_iterators_selector
+ //<-
+ : ::boost::mpl::if_<
+ typename ::boost::mpl::aux::has_type<
+ container_gen<Selector,int>
+ >::type
+ , detail::metafunction::has_stable_iterators_selector_impl<Selector>
+ , ::boost::mpl::false_
+ >::type
+ //->
+ {
+ // typedef ... type;
+ //<-
+ BOOST_MPL_AUX_LAMBDA_SUPPORT(
+ 1
+ , has_stable_iterators_selector
+ , (Selector)
+ )
+ //->
+ };
+} // namespace boost
+//]
+
+#endif // BOOST_NO_SFINAE, BOOST_MPL_CFG_NO_HAS_XXX
+
+#if !defined BOOST_MSVC
+#if defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+
+namespace boost {
+
+ template <>
+ struct has_stable_iterators_selector<array_selector_base>
+ : ::boost::mpl::true_
+ {
+ };
+
+ template <>
+ struct has_stable_iterators_selector<ptr_array_selector_base>
+ : ::boost::mpl::true_
+ {
+ };
+} // namespace boost
+
+#else // !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+
+namespace boost {
+
+ template <typename T0, typename T1>
+ struct has_stable_iterators_selector<array_selector<T0,T1> >
+ : ::boost::mpl::true_
+ {
+ };
+
+ template <typename T0, typename T1>
+ struct has_stable_iterators_selector<ptr_array_selector<T0,T1> >
+ : ::boost::mpl::true_
+ {
+ };
+} // namespace boost
+
+#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+#endif // !defined BOOST_MSVC
+#endif // BOOST_CONTAINER_GEN_HAS_STABLE_ITERS_SELECTOR_HPP_INCLUDED
+

Added: sandbox/container_gen/boost/container_gen/insert_range_function_gen.hpp
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ sandbox/container_gen/boost/container_gen/insert_range_function_gen.hpp 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84957)
@@ -0,0 +1,879 @@
+//=======================================================================
+// 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)
+//=======================================================================
+
+#ifndef BOOST_CONTAINER_GEN_INSERT_RANGE_FUNCTION_GEN_HPP_INCLUDED
+#define BOOST_CONTAINER_GEN_INSERT_RANGE_FUNCTION_GEN_HPP_INCLUDED
+
+#include <deque>
+#include <utility>
+#include <algorithm>
+#include <boost/mpl/bool.hpp>
+#include <boost/range.hpp>
+#include <boost/assert.hpp>
+
+namespace boost { namespace detail {
+
+ template <typename F, typename C>
+ class insert_range_function_proxy
+ {
+ C& _container;
+
+ public:
+ explicit insert_range_function_proxy(C& c);
+
+ template <typename Itr>
+ insert_range_function_proxy&
+ operator()(typename C::iterator pos, Itr itr, Itr itr_end);
+
+ template <typename InputRange>
+ insert_range_function_proxy&
+ operator()(typename C::iterator pos, InputRange const& r);
+ };
+
+ template <typename F, typename C>
+ insert_range_function_proxy<F,C>::insert_range_function_proxy(C& c)
+ : _container(c)
+ {
+ }
+
+ template <typename F, typename C>
+ template <typename Itr>
+ inline insert_range_function_proxy<F,C>&
+ insert_range_function_proxy<F,C>::operator()(
+ typename C::iterator pos
+ , Itr itr
+ , Itr itr_end
+ )
+ {
+ F::evaluate(this->_container, pos, itr, itr_end);
+ return *this;
+ }
+
+ template <typename F, typename C>
+ template <typename InputRange>
+ inline insert_range_function_proxy<F,C>&
+ insert_range_function_proxy<F,C>::operator()(
+ typename C::iterator pos
+ , InputRange const& r
+ )
+ {
+ F::evaluate(this->_container, pos, ::boost::begin(r), ::boost::end(r));
+ return *this;
+ }
+
+ struct fis_insert_range_function
+ {
+ template <typename C>
+ insert_range_function_proxy<fis_insert_range_function,C>
+ operator[](C& _container) const;
+
+ template <typename C, typename InputRange>
+ ::std::pair<typename C::iterator,typename C::iterator>
+ operator()(
+ C& _container
+ , typename C::iterator pos
+ , InputRange const& r
+ ) const;
+
+ template <typename C, typename Itr>
+ ::std::pair<typename C::iterator,typename C::iterator>
+ operator()(
+ C& _container
+ , typename C::iterator pos
+ , Itr itr
+ , Itr itr_end
+ ) const;
+
+ template <typename C, typename Itr>
+ static void
+ evaluate(
+ C& _container
+ , typename C::iterator pos
+ , Itr itr
+ , Itr itr_end
+ );
+ };
+
+ template <typename C>
+ inline insert_range_function_proxy<fis_insert_range_function,C>
+ fis_insert_range_function::operator[](C& _container) const
+ {
+ return insert_range_function_proxy<fis_insert_range_function,C>(
+ _container
+ );
+ }
+
+ template <typename C, typename InputRange>
+ inline ::std::pair<typename C::iterator,typename C::iterator>
+ fis_insert_range_function::operator()(
+ C& _container
+ , typename C::iterator pos
+ , InputRange const& r
+ ) const
+ {
+ return this->operator()(
+ _container
+ , pos
+ , ::boost::begin(r)
+ , ::boost::end(r)
+ );
+ }
+
+ template <typename C, typename Itr>
+ inline ::std::pair<typename C::iterator,typename C::iterator>
+ fis_insert_range_function::operator()(
+ C& _container
+ , typename C::iterator pos
+ , Itr itr
+ , Itr itr_end
+ ) const
+ {
+ typename C::iterator result_begin = _container.previous(pos);
+ fis_insert_range_function::evaluate(_container, pos, itr, itr_end);
+ return ::std::pair<typename C::iterator,typename C::iterator>(
+ ++result_begin
+ , pos
+ );
+ }
+
+ template <typename C, typename Itr>
+ inline void
+ fis_insert_range_function::evaluate(
+ C& _container
+ , typename C::iterator pos
+ , Itr itr
+ , Itr itr_end
+ )
+ {
+ _container.insert(pos, itr, itr_end);
+ }
+
+ struct ras_insert_range_function
+ {
+ template <typename C>
+ insert_range_function_proxy<ras_insert_range_function,C>
+ operator[](C& _container) const;
+
+ template <typename C, typename InputRange>
+ ::std::pair<typename C::iterator,typename C::iterator>
+ operator()(
+ C& _container
+ , typename C::iterator pos
+ , InputRange const& r
+ ) const;
+
+ template <typename C, typename Itr>
+ ::std::pair<typename C::iterator,typename C::iterator>
+ operator()(
+ C& _container
+ , typename C::iterator pos
+ , Itr itr
+ , Itr itr_end
+ ) const;
+
+ template <typename C, typename Itr>
+ static void
+ evaluate(
+ C& _container
+ , typename C::iterator pos
+ , Itr itr
+ , Itr itr_end
+ );
+ };
+
+ template <typename C>
+ inline insert_range_function_proxy<ras_insert_range_function,C>
+ ras_insert_range_function::operator[](C& _container) const
+ {
+ return insert_range_function_proxy<ras_insert_range_function,C>(
+ _container
+ );
+ }
+
+ template <typename C, typename InputRange>
+ inline ::std::pair<typename C::iterator,typename C::iterator>
+ ras_insert_range_function::operator()(
+ C& _container
+ , typename C::iterator pos
+ , InputRange const& r
+ ) const
+ {
+ return this->operator()(
+ _container
+ , pos
+ , ::boost::begin(r)
+ , ::boost::end(r)
+ );
+ }
+
+ template <typename C, typename Itr>
+ inline ::std::pair<typename C::iterator,typename C::iterator>
+ ras_insert_range_function::operator()(
+ C& _container
+ , typename C::iterator pos
+ , Itr itr
+ , Itr itr_end
+ ) const
+ {
+ typename C::size_type const begin_index = (
+ ::std::distance(_container.begin(), pos)
+ );
+ ras_insert_range_function::evaluate(_container, pos, itr, itr_end);
+ return ::std::pair<typename C::iterator,typename C::iterator>(
+ _container.begin() + begin_index
+ , _container.begin() + begin_index + ::std::distance(itr, itr_end)
+ );
+ }
+
+ template <typename C, typename Itr>
+ inline void
+ ras_insert_range_function::evaluate(
+ C& _container
+ , typename C::iterator pos
+ , Itr itr
+ , Itr itr_end
+ )
+ {
+ _container.insert(pos, itr, itr_end);
+ }
+
+ struct bis_insert_range_function
+ {
+ template <typename C>
+ insert_range_function_proxy<bis_insert_range_function,C>
+ operator[](C& _container) const;
+
+ template <typename C, typename InputRange>
+ ::std::pair<typename C::iterator,typename C::iterator>
+ operator()(
+ C& _container
+ , typename C::iterator pos
+ , InputRange const& r
+ ) const;
+
+ template <typename C, typename Itr>
+ ::std::pair<typename C::iterator,typename C::iterator>
+ operator()(
+ C& _container
+ , typename C::iterator pos
+ , Itr itr
+ , Itr itr_end
+ ) const;
+
+ template <typename C, typename Itr>
+ static void
+ evaluate(
+ C& _container
+ , typename C::iterator pos
+ , Itr itr
+ , Itr itr_end
+ );
+ };
+
+ template <typename C>
+ inline insert_range_function_proxy<bis_insert_range_function,C>
+ bis_insert_range_function::operator[](C& _container) const
+ {
+ return insert_range_function_proxy<bis_insert_range_function,C>(
+ _container
+ );
+ }
+
+ template <typename C, typename InputRange>
+ inline ::std::pair<typename C::iterator,typename C::iterator>
+ bis_insert_range_function::operator()(
+ C& _container
+ , typename C::iterator pos
+ , InputRange const& r
+ ) const
+ {
+ return this->operator()(
+ _container
+ , pos
+ , ::boost::begin(r)
+ , ::boost::end(r)
+ );
+ }
+
+ template <typename C, typename Itr>
+ inline ::std::pair<typename C::iterator,typename C::iterator>
+ bis_insert_range_function::operator()(
+ C& _container
+ , typename C::iterator pos
+ , Itr itr
+ , Itr itr_end
+ ) const
+ {
+ if (_container.empty())
+ {
+ BOOST_ASSERT(pos == _container.end());
+ bis_insert_range_function::evaluate(_container, pos, itr, itr_end);
+ return ::std::pair<typename C::iterator,typename C::iterator>(
+ _container.begin()
+ , _container.end()
+ );
+ }
+ else
+ {
+ typename C::iterator start = pos;
+ --start;
+ bis_insert_range_function::evaluate(_container, pos, itr, itr_end);
+ return ::std::pair<typename C::iterator,typename C::iterator>(
+ ++start
+ , pos
+ );
+ }
+ }
+
+ template <typename C, typename Itr>
+ inline void
+ bis_insert_range_function::evaluate(
+ C& _container
+ , typename C::iterator pos
+ , Itr itr
+ , Itr itr_end
+ )
+ {
+ _container.insert(pos, itr, itr_end);
+ }
+
+ struct uac_insert_range_function
+ {
+ template <typename C>
+ insert_range_function_proxy<uac_insert_range_function,C>
+ operator[](C& _container) const;
+
+ template <typename C, typename InputRange>
+ ::std::deque<typename C::iterator>
+ operator()(
+ C& _container
+ , typename C::iterator pos
+ , InputRange const& r
+ ) const;
+
+ template <typename C, typename Itr>
+ ::std::deque<typename C::iterator>
+ operator()(
+ C& _container
+ , typename C::iterator pos
+ , Itr itr
+ , Itr itr_end
+ ) const;
+
+ template <typename C, typename Itr>
+ static void
+ evaluate(
+ C& _container
+ , typename C::iterator pos
+ , Itr itr
+ , Itr itr_end
+ );
+ };
+
+ template <typename C>
+ inline insert_range_function_proxy<uac_insert_range_function,C>
+ uac_insert_range_function::operator[](C& _container) const
+ {
+ return insert_range_function_proxy<uac_insert_range_function,C>(
+ _container
+ );
+ }
+
+ template <typename C, typename InputRange>
+ inline ::std::deque<typename C::iterator>
+ uac_insert_range_function::operator()(
+ C& _container
+ , typename C::iterator pos
+ , InputRange const& r
+ ) const
+ {
+ return this->operator()(
+ _container
+ , pos
+ , ::boost::begin(r)
+ , ::boost::end(r)
+ );
+ }
+
+ template <typename C, typename Itr>
+ ::std::deque<typename C::iterator>
+ uac_insert_range_function::operator()(
+ C& _container
+ , typename C::iterator pos
+ , Itr itr
+ , Itr itr_end
+ ) const
+ {
+ ::std::deque<typename C::iterator> result;
+
+ for (
+ ::std::pair<typename C::iterator,bool> insert_result;
+ itr != itr_end;
+ ++itr
+ )
+ {
+ insert_result = _container.insert(*itr);
+
+ if (insert_result.second)
+ {
+ result.push_back(insert_result.first);
+ }
+ }
+
+ return result;
+ }
+
+ template <typename C, typename Itr>
+ inline void
+ uac_insert_range_function::evaluate(
+ C& _container
+ , typename C::iterator pos
+ , Itr itr
+ , Itr itr_end
+ )
+ {
+ _container.insert(itr, itr_end);
+ }
+
+ struct mac_insert_range_function
+ {
+ template <typename C>
+ insert_range_function_proxy<mac_insert_range_function,C>
+ operator[](C& _container) const;
+
+ template <typename C, typename InputRange>
+ ::std::deque<typename C::iterator>
+ operator()(
+ C& _container
+ , typename C::iterator pos
+ , InputRange const& r
+ ) const;
+
+ template <typename C, typename Itr>
+ ::std::deque<typename C::iterator>
+ operator()(
+ C& _container
+ , typename C::iterator pos
+ , Itr itr
+ , Itr itr_end
+ ) const;
+
+ template <typename C, typename Itr>
+ static void
+ evaluate(
+ C& _container
+ , typename C::iterator pos
+ , Itr itr
+ , Itr itr_end
+ );
+ };
+
+ template <typename C>
+ inline insert_range_function_proxy<mac_insert_range_function,C>
+ mac_insert_range_function::operator[](C& _container) const
+ {
+ return insert_range_function_proxy<mac_insert_range_function,C>(
+ _container
+ );
+ }
+
+ template <typename C, typename InputRange>
+ inline ::std::deque<typename C::iterator>
+ mac_insert_range_function::operator()(
+ C& _container
+ , typename C::iterator pos
+ , InputRange const& r
+ ) const
+ {
+ return this->operator()(
+ _container
+ , pos
+ , ::boost::begin(r)
+ , ::boost::end(r)
+ );
+ }
+
+ template <typename C, typename Itr>
+ ::std::deque<typename C::iterator>
+ mac_insert_range_function::operator()(
+ C& _container
+ , typename C::iterator pos
+ , Itr itr
+ , Itr itr_end
+ ) const
+ {
+ ::std::deque<typename C::iterator> result;
+
+ for (; itr != itr_end; ++itr)
+ {
+ result.push_back(_container.insert(*itr));
+ }
+
+ return result;
+ }
+
+ template <typename C, typename Itr>
+ inline void
+ mac_insert_range_function::evaluate(
+ C& _container
+ , typename C::iterator pos
+ , Itr itr
+ , Itr itr_end
+ )
+ {
+ _container.insert(itr, itr_end);
+ }
+
+ struct ptr_uac_insert_range_function
+ {
+ template <typename C>
+ insert_range_function_proxy<ptr_uac_insert_range_function,C>
+ operator[](C& _container) const;
+
+ template <typename C, typename InputRange>
+ ::std::deque<typename C::iterator>
+ operator()(
+ C& _container
+ , typename C::iterator pos
+ , InputRange const& r
+ ) const;
+
+ template <typename C, typename Itr>
+ ::std::deque<typename C::iterator>
+ operator()(
+ C& _container
+ , typename C::iterator pos
+ , Itr itr
+ , Itr itr_end
+ ) const;
+
+ template <typename C, typename Itr>
+ static void
+ evaluate(
+ C& _container
+ , typename C::iterator pos
+ , Itr itr
+ , Itr itr_end
+ );
+ };
+
+ template <typename C>
+ inline insert_range_function_proxy<ptr_uac_insert_range_function,C>
+ ptr_uac_insert_range_function::operator[](C& _container) const
+ {
+ return insert_range_function_proxy<ptr_uac_insert_range_function,C>(
+ _container
+ );
+ }
+
+ template <typename C, typename InputRange>
+ inline ::std::deque<typename C::iterator>
+ ptr_uac_insert_range_function::operator()(
+ C& _container
+ , typename C::iterator pos
+ , InputRange const& r
+ ) const
+ {
+ return this->operator()(
+ _container
+ , pos
+ , ::boost::begin(r)
+ , ::boost::end(r)
+ );
+ }
+
+ template <typename C, typename Itr>
+ ::std::deque<typename C::iterator>
+ ptr_uac_insert_range_function::operator()(
+ C& _container
+ , typename C::iterator pos
+ , Itr itr
+ , Itr itr_end
+ ) const
+ {
+ ::std::deque<typename C::iterator> result;
+
+ for (
+ ::std::pair<typename C::iterator,bool> insert_result;
+ itr != itr_end;
+ ++itr
+ )
+ {
+ insert_result = _container.insert(new typename C::key_type(*itr));
+
+ if (insert_result.second)
+ {
+ result.push_back(insert_result.first);
+ }
+ }
+
+ return result;
+ }
+
+ template <typename C, typename Itr>
+ inline void
+ ptr_uac_insert_range_function::evaluate(
+ C& _container
+ , typename C::iterator pos
+ , Itr itr
+ , Itr itr_end
+ )
+ {
+ _container.insert(itr, itr_end);
+ }
+
+ struct ptr_mac_insert_range_function
+ {
+ template <typename C>
+ insert_range_function_proxy<ptr_mac_insert_range_function,C>
+ operator[](C& _container) const;
+
+ template <typename C, typename InputRange>
+ ::std::deque<typename C::iterator>
+ operator()(
+ C& _container
+ , typename C::iterator pos
+ , InputRange const& r
+ ) const;
+
+ template <typename C, typename Itr>
+ ::std::deque<typename C::iterator>
+ operator()(
+ C& _container
+ , typename C::iterator pos
+ , Itr itr
+ , Itr itr_end
+ ) const;
+
+ template <typename C, typename Itr>
+ static void
+ evaluate(
+ C& _container
+ , typename C::iterator pos
+ , Itr itr
+ , Itr itr_end
+ );
+ };
+
+ template <typename C>
+ inline insert_range_function_proxy<ptr_mac_insert_range_function,C>
+ ptr_mac_insert_range_function::operator[](C& _container) const
+ {
+ return insert_range_function_proxy<ptr_mac_insert_range_function,C>(
+ _container
+ );
+ }
+
+ template <typename C, typename InputRange>
+ inline ::std::deque<typename C::iterator>
+ ptr_mac_insert_range_function::operator()(
+ C& _container
+ , typename C::iterator pos
+ , InputRange const& r
+ ) const
+ {
+ return this->operator()(
+ _container
+ , pos
+ , ::boost::begin(r)
+ , ::boost::end(r)
+ );
+ }
+
+ template <typename C, typename Itr>
+ ::std::deque<typename C::iterator>
+ ptr_mac_insert_range_function::operator()(
+ C& _container
+ , typename C::iterator pos
+ , Itr itr
+ , Itr itr_end
+ ) const
+ {
+ ::std::deque<typename C::iterator> result;
+
+ for (; itr != itr_end; ++itr)
+ {
+ result.push_back(
+ _container.insert(new typename C::key_type(*itr))
+ );
+ }
+
+ return result;
+ }
+
+ template <typename C, typename Itr>
+ inline void
+ ptr_mac_insert_range_function::evaluate(
+ C& _container
+ , typename C::iterator pos
+ , Itr itr
+ , Itr itr_end
+ )
+ {
+ _container.insert(itr, itr_end);
+ }
+
+ struct uns_ac_insert_range_function
+ {
+ template <typename C>
+ insert_range_function_proxy<uns_ac_insert_range_function,C>
+ operator[](C& _container) const;
+
+ template <typename C, typename InputRange>
+ void
+ operator()(
+ C& _container
+ , typename C::iterator pos
+ , InputRange const& r
+ ) const;
+
+ template <typename C, typename Itr>
+ void
+ operator()(
+ C& _container
+ , typename C::iterator pos
+ , Itr itr
+ , Itr itr_end
+ ) const;
+
+ template <typename C, typename Itr>
+ static void
+ evaluate(
+ C& _container
+ , typename C::iterator pos
+ , Itr itr
+ , Itr itr_end
+ );
+ };
+
+ template <typename C>
+ inline insert_range_function_proxy<uns_ac_insert_range_function,C>
+ uns_ac_insert_range_function::operator[](C& _container) const
+ {
+ return insert_range_function_proxy<uns_ac_insert_range_function,C>(
+ _container
+ );
+ }
+
+ template <typename C, typename InputRange>
+ inline void
+ uns_ac_insert_range_function::operator()(
+ C& _container
+ , typename C::iterator pos
+ , InputRange const& r
+ ) const
+ {
+ this->operator()(_container, pos, ::boost::begin(r), ::boost::end(r));
+ }
+
+ template <typename C, typename Itr>
+ inline void
+ uns_ac_insert_range_function::operator()(
+ C& _container
+ , typename C::iterator pos
+ , Itr itr
+ , Itr itr_end
+ ) const
+ {
+ uns_ac_insert_range_function::evaluate(_container, pos, itr, itr_end);
+ }
+
+ template <typename C, typename Itr>
+ inline void
+ uns_ac_insert_range_function::evaluate(
+ C& _container
+ , typename C::iterator pos
+ , Itr itr
+ , Itr itr_end
+ )
+ {
+ _container.insert(itr, itr_end);
+ }
+}} // namespace boost::detail
+
+#include <boost/mpl/identity.hpp>
+#include <boost/mpl/if.hpp>
+#include <boost/mpl/eval_if.hpp>
+#include <boost/mpl/aux_/lambda_support.hpp>
+#include <boost/container_gen/has_stable_iters_selector.hpp>
+#include <boost/container_gen/is_associative_selector.hpp>
+#include <boost/container_gen/is_unique_assoc_selector.hpp>
+#include <boost/container_gen/is_multiple_assoc_selector.hpp>
+#include <boost/container_gen/is_ptr_selector.hpp>
+#include <boost/container_gen/is_random_access_selector.hpp>
+
+//[reference__insert_range_function_gen
+namespace boost {
+
+ template <typename Selector>
+ struct insert_range_function_gen
+ //<-
+ : ::boost::mpl::eval_if<
+ is_associative_selector<Selector>
+ , ::boost::mpl::eval_if<
+ has_stable_iterators_selector<Selector>
+ , ::boost::mpl::eval_if<
+ is_ptr_selector<Selector>
+ , ::boost::mpl::if_<
+ is_unique_associative_selector<Selector>
+ , detail::ptr_uac_insert_range_function
+ , detail::ptr_mac_insert_range_function
+ >
+ , ::boost::mpl::if_<
+ is_multiple_associative_selector<Selector>
+ , detail::mac_insert_range_function
+ , detail::uac_insert_range_function
+ >
+ >
+ , ::boost::mpl::identity<detail::uns_ac_insert_range_function>
+ >
+ , ::boost::mpl::if_<
+ is_random_access_selector<Selector>
+ , detail::ras_insert_range_function
+ , detail::bis_insert_range_function
+ >
+ >
+ //->
+ {
+ // typedef ... type;
+ //<-
+ BOOST_MPL_AUX_LAMBDA_SUPPORT(1, insert_range_function_gen, (Selector))
+ //->
+ };
+} // namespace boost
+//]
+
+#include <boost/config.hpp>
+#include <boost/container_gen/selectors.hpp>
+
+#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+
+namespace boost {
+
+ template <typename AllocatorSelector>
+ struct insert_range_function_gen<slist_selector<AllocatorSelector> >
+ {
+ typedef detail::fis_insert_range_function type;
+ };
+} // namespace boost
+
+#elif !defined BOOST_NO_SLIST
+
+namespace boost {
+
+ template <>
+ struct insert_range_function_gen<slist_selector_base>
+ {
+ typedef detail::fis_insert_range_function type;
+ };
+} // namespace boost
+
+#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION, BOOST_NO_SLIST
+
+#endif // BOOST_CONTAINER_GEN_INSERT_RANGE_FUNCTION_GEN_HPP_INCLUDED
+

Added: sandbox/container_gen/boost/container_gen/insert_range_result_gen.hpp
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ sandbox/container_gen/boost/container_gen/insert_range_result_gen.hpp 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84957)
@@ -0,0 +1,53 @@
+//=======================================================================
+// 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)
+//=======================================================================
+
+#ifndef BOOST_CONTAINER_GEN_INSERT_RANGE_RESULT_GEN_HPP_INCLUDED
+#define BOOST_CONTAINER_GEN_INSERT_RANGE_RESULT_GEN_HPP_INCLUDED
+
+#include <deque>
+#include <utility>
+#include <boost/mpl/if.hpp>
+#include <boost/mpl/aux_/lambda_support.hpp>
+#include <boost/container_gen/container_gen.hpp>
+#include <boost/detail/metafunction/is_associative_container.hpp>
+
+//[reference__insert_range_result_gen
+namespace boost {
+
+ template <typename Selector, typename T>
+ struct insert_range_result_gen
+ {
+ //<-
+ private:
+ typedef typename container_gen<Selector,T>::type C;
+ typedef typename C::iterator I;
+
+ public:
+ typedef typename ::boost::mpl::if_<
+ ::boost::detail::metafunction::is_associative_container<C>
+ , ::std::deque<I>
+ , ::std::pair<I,I>
+ >::type
+ type;
+#if 0
+ //->
+ typedef ... type;
+ //<-
+#endif
+ BOOST_MPL_AUX_LAMBDA_SUPPORT(
+ 2
+ , insert_range_result_gen
+ , (Selector, T)
+ )
+ //->
+ };
+} // namespace boost
+//]
+
+#endif // BOOST_CONTAINER_GEN_INSERT_RANGE_RESULT_GEN_HPP_INCLUDED
+

Added: sandbox/container_gen/boost/container_gen/is_allocator_selector.hpp
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ sandbox/container_gen/boost/container_gen/is_allocator_selector.hpp 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84957)
@@ -0,0 +1,106 @@
+//=============================================================================
+// 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)
+//=============================================================================
+
+#ifndef BOOST_CONTAINER_GEN_IS_ALLOCATOR_SELECTOR_HPP
+#define BOOST_CONTAINER_GEN_IS_ALLOCATOR_SELECTOR_HPP
+
+#include <boost/mpl/aux_/config/has_xxx.hpp>
+#include <boost/mpl/aux_/lambda_support.hpp>
+#include <boost/mpl/bool.hpp>
+
+#if defined BOOST_MPL_CFG_NO_HAS_XXX || \
+ defined BOOST_MPL_CFG_NO_HAS_XXX_TEMPLATE
+
+#include <boost/container_gen/selectors_fwd.hpp>
+
+namespace boost {
+
+ template <typename T>
+ struct is_allocator_selector : ::boost::mpl::false_
+ {
+ BOOST_MPL_AUX_LAMBDA_SUPPORT(1, is_allocator_selector, (T))
+ };
+
+ template <>
+ struct is_allocator_selector<std_allocator_selector> : ::boost::mpl::true_
+ {
+ };
+
+ template <>
+ struct is_allocator_selector<std_flat_allocator_selector>
+ : ::boost::mpl::true_
+ {
+ };
+} // namespace boost
+
+#else // !defined BOOST_MPL_CFG_NO_HAS_XXX && \
+// !defined BOOST_MPL_CFG_NO_HAS_XXX_TEMPLATE
+
+#include <boost/config.hpp>
+#include <cstddef>
+#include <boost/mpl/aux_/has_type.hpp>
+#include <boost/mpl/bool.hpp>
+#include <boost/mpl/vector/vector10.hpp>
+#include <boost/mpl/unpack_args.hpp>
+#include <boost/mpl/apply_wrap.hpp>
+#include <boost/mpl/if.hpp>
+#include <boost/mpl/eval_if.hpp>
+#include <boost/detail/metafunction/has_apply_template.hpp>
+#include <boost/detail/metafunction/is_allocator.hpp>
+
+namespace boost { namespace detail { namespace metafunction {
+
+ template <typename T>
+ struct does_allocator_selector_return_allocator
+ : ::boost::detail::metafunction::is_allocator<
+ typename ::boost::mpl::apply_wrap1<
+ ::boost::mpl::unpack_args<T>
+ , ::boost::mpl::vector1<T>
+ >::type
+ >
+ {
+ };
+
+ template <typename T>
+ struct is_allocator_selector_metafunction_class
+ : ::boost::mpl::if_<
+ typename ::boost::mpl::aux::has_type<
+ ::boost::mpl::apply_wrap1<
+ ::boost::mpl::unpack_args<T>
+ , ::boost::mpl::vector1<T>
+ >
+ , ::boost::mpl::false_
+ >::type
+ , does_allocator_selector_return_allocator<T>
+ , ::boost::mpl::false_
+ >
+ {
+ };
+}}} // namespace boost::detail::metafunction
+
+//[reference__is_allocator_selector
+namespace boost {
+
+ template <typename T>
+ struct is_allocator_selector
+ : ::boost::mpl::eval_if<
+ typename ::boost::detail::metafunction::has_apply_template<T>::type
+ , ::boost::detail::metafunction
+ ::is_allocator_selector_metafunction_class<T>
+ , ::boost::mpl::false_
+ >::type
+ {
+ BOOST_MPL_AUX_LAMBDA_SUPPORT(1, is_allocator_selector, (T))
+ };
+} // namespace boost
+//]
+
+#endif // BOOST_MPL_CFG_NO_HAS_XXX, BOOST_MPL_CFG_NO_HAS_XXX_TEMPLATE
+
+#endif // BOOST_CONTAINER_GEN_IS_ALLOCATOR_SELECTOR_HPP
+

Added: sandbox/container_gen/boost/container_gen/is_associative_selector.hpp
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ sandbox/container_gen/boost/container_gen/is_associative_selector.hpp 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84957)
@@ -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)
+//=============================================================================
+
+#ifndef BOOST_CONTAINER_GEN_IS_ASSOCIATIVE_SELECTOR_HPP_INCLUDED
+#define BOOST_CONTAINER_GEN_IS_ASSOCIATIVE_SELECTOR_HPP_INCLUDED
+
+#include <boost/config.hpp>
+#include <boost/mpl/aux_/config/has_xxx.hpp>
+#include <boost/mpl/aux_/lambda_support.hpp>
+
+#if defined BOOST_NO_SFINAE || defined BOOST_MPL_CFG_NO_HAS_XXX
+
+#include <boost/mpl/or.hpp>
+#include <boost/container_gen/is_unique_assoc_selector.hpp>
+#include <boost/container_gen/is_multiple_assoc_selector.hpp>
+
+namespace boost {
+
+ template <typename Selector>
+ struct is_associative_selector
+ : ::boost::mpl::or_<
+ is_unique_associative_selector<Selector>
+ , is_multiple_associative_selector<Selector>
+ >
+ {
+ BOOST_MPL_AUX_LAMBDA_SUPPORT(
+ 1
+ , is_associative_selector
+ , (Selector)
+ )
+ };
+} // namespace boost
+
+#else // !defined BOOST_NO_SFINAE && !defined BOOST_MPL_CFG_NO_HAS_XXX
+
+#include <boost/mpl/aux_/has_type.hpp>
+#include <boost/mpl/bool.hpp>
+#include <boost/mpl/if.hpp>
+#include <boost/container_gen/container_gen.hpp>
+#include <boost/detail/metafunction/is_associative_container.hpp>
+
+namespace boost { namespace detail { namespace metafunction {
+
+ template <typename Selector>
+ struct is_associative_selector_impl
+ : ::boost::detail::metafunction::is_associative_container<
+ typename container_gen<Selector,int>::type
+ >
+ {
+ };
+}}} // namespace boost::detail::metafunction
+
+//[reference__is_associative_selector
+namespace boost {
+
+ template <typename Selector>
+ struct is_associative_selector
+ //<-
+ : ::boost::mpl::if_<
+ typename ::boost::mpl::aux::has_type<
+ container_gen<Selector,int>
+ >::type
+ , detail::metafunction::is_associative_selector_impl<Selector>
+ , ::boost::mpl::false_
+ >::type
+ //->
+ {
+ // typedef ... type;
+ //<-
+ BOOST_MPL_AUX_LAMBDA_SUPPORT(
+ 1
+ , is_associative_selector
+ , (Selector)
+ )
+ //->
+ };
+} // namespace boost
+//]
+
+#endif // BOOST_NO_SFINAE, BOOST_MPL_CFG_NO_HAS_XXX
+
+#endif // BOOST_CONTAINER_GEN_IS_ASSOCIATIVE_SELECTOR_HPP_INCLUDED
+

Added: sandbox/container_gen/boost/container_gen/is_compare_selector.hpp
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ sandbox/container_gen/boost/container_gen/is_compare_selector.hpp 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84957)
@@ -0,0 +1,168 @@
+//=============================================================================
+// 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)
+//=============================================================================
+
+#ifndef BOOST_CONTAINER_GEN_IS_COMPARE_SELECTOR_HPP
+#define BOOST_CONTAINER_GEN_IS_COMPARE_SELECTOR_HPP
+
+#include <boost/config.hpp>
+#include <boost/mpl/aux_/config/has_xxx.hpp>
+#include <boost/mpl/aux_/lambda_support.hpp>
+#include <boost/mpl/bool.hpp>
+
+#if defined BOOST_MPL_CFG_NO_HAS_XXX || \
+ defined BOOST_MPL_CFG_NO_HAS_XXX_TEMPLATE
+
+#include <boost/container_gen/selectors_fwd.hpp>
+#include <boost/container_gen/c_str_cmp_selectors_fwd.hpp>
+
+namespace boost {
+
+ template <typename T>
+ struct is_compare_selector : ::boost::mpl::false_
+ {
+ BOOST_MPL_AUX_LAMBDA_SUPPORT(1, is_compare_selector, (T))
+ };
+
+ template <>
+ struct is_compare_selector<equal_to_selector> : ::boost::mpl::true_
+ {
+ };
+
+ template <>
+ struct is_compare_selector<less_than_selector> : ::boost::mpl::true_
+ {
+ };
+
+ template <>
+ struct is_compare_selector<greater_than_selector> : ::boost::mpl::true_
+ {
+ };
+
+ template <>
+ struct is_compare_selector<c_str_less_than_selector> : ::boost::mpl::true_
+ {
+ };
+
+ template <>
+ struct is_compare_selector<c_str_greater_than_selector>
+ : ::boost::mpl::true_
+ {
+ };
+
+#if defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+ template <>
+ struct is_compare_selector<equivalence_selector_base> : ::boost::mpl::true_
+ {
+ };
+#else
+ template <typename CompareSelector>
+ struct is_compare_selector<equivalence_selector<CompareSelector> >
+ : ::boost::mpl::true_
+ {
+ };
+#endif
+} // namespace boost
+
+#else // !defined BOOST_MPL_CFG_NO_HAS_XXX && \
+// !defined BOOST_MPL_CFG_NO_HAS_XXX_TEMPLATE
+
+#include <cstddef>
+#include <boost/mpl/aux_/has_type.hpp>
+#include <boost/mpl/bool.hpp>
+#include <boost/mpl/integral_c.hpp>
+#include <boost/mpl/vector/vector10.hpp>
+#include <boost/mpl/unpack_args.hpp>
+#include <boost/mpl/apply_wrap.hpp>
+#include <boost/mpl/eval_if.hpp>
+#include <boost/detail/metafunction/has_apply_template.hpp>
+#include <boost/detail/metafunction/is_function_wrt.hpp>
+
+#if defined BOOST_DETAIL_METAFUNCTION_ATTEMPT_ARITY_DETECTION
+#include <boost/mpl/if.hpp>
+#include <boost/detail/metafunction/is_n_ary_function.hpp>
+#include <boost/detail/metafunction/is_adaptable_binary_func.hpp>
+#endif
+
+namespace boost { namespace detail { namespace metafunction {
+
+ template <typename Metafunction>
+ struct is_compare_selector_result_predicate
+#if !defined BOOST_DETAIL_METAFUNCTION_ATTEMPT_ARITY_DETECTION
+ : ::boost::detail::metafunction::is_function_with_result_type<
+ typename Metafunction::type
+ , bool
+ >
+#endif
+ {
+#if defined BOOST_DETAIL_METAFUNCTION_ATTEMPT_ARITY_DETECTION
+ private:
+ typedef typename Metafunction::type _function;
+
+ public:
+ typedef typename ::boost::mpl::eval_if<
+ ::boost::detail::metafunction
+ ::is_function_with_result_type<_function,bool>
+ , ::boost::mpl::if_<
+ ::boost::detail::metafunction::is_n_ary_function<
+ _function
+ , ::boost::mpl::integral_c<unsigned int,2>
+ >
+ , ::boost::mpl::true_
+ , ::boost::detail::metafunction
+ ::is_adaptable_binary_function<_function>
+ >
+ , ::boost::mpl::false_
+ >::type
+ type;
+#endif
+ };
+
+ template <typename T>
+ struct is_compare_selector_metafunction_class
+ {
+ private:
+ typedef ::boost::mpl::apply_wrap1<
+ ::boost::mpl::unpack_args<T>
+ , ::boost::mpl::vector1<T>
+ >
+ _metafunction;
+
+ public:
+ typedef typename ::boost::mpl::eval_if<
+ typename ::boost::mpl::aux::has_type<
+ _metafunction
+ , ::boost::mpl::false_
+ >::type
+ , is_compare_selector_result_predicate<_metafunction>
+ , ::boost::mpl::false_
+ >::type
+ type;
+ };
+}}} // namespace boost::detail::metafunction
+
+//[reference__is_compare_selector
+namespace boost {
+
+ template <typename T>
+ struct is_compare_selector
+ : ::boost::mpl::eval_if<
+ typename ::boost::detail::metafunction::has_apply_template<T>::type
+ , ::boost::detail::metafunction
+ ::is_compare_selector_metafunction_class<T>
+ , ::boost::mpl::false_
+ >::type
+ {
+ BOOST_MPL_AUX_LAMBDA_SUPPORT(1, is_compare_selector, (T))
+ };
+} // namespace boost
+//]
+
+#endif // BOOST_MPL_CFG_NO_HAS_XXX, BOOST_MPL_CFG_NO_HAS_XXX_TEMPLATE
+
+#endif // BOOST_CONTAINER_GEN_IS_COMPARE_SELECTOR_HPP
+

Added: sandbox/container_gen/boost/container_gen/is_container_selector.hpp
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ sandbox/container_gen/boost/container_gen/is_container_selector.hpp 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84957)
@@ -0,0 +1,444 @@
+//=============================================================================
+// 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)
+//=============================================================================
+
+#ifndef BOOST_CONTAINER_GEN_IS_CONTAINER_SELECTOR_HPP_INCLUDED
+#define BOOST_CONTAINER_GEN_IS_CONTAINER_SELECTOR_HPP_INCLUDED
+
+#include <boost/config.hpp>
+#include <boost/mpl/bool.hpp>
+#include <boost/mpl/aux_/config/has_xxx.hpp>
+#include <boost/mpl/aux_/lambda_support.hpp>
+
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+
+namespace boost {
+
+ template <typename Selector>
+ struct is_container_selector : ::boost::mpl::false_
+ {
+ BOOST_MPL_AUX_LAMBDA_SUPPORT(1,is_container_selector,(Selector))
+ };
+} // namespace boost
+
+#include <boost/container_gen/selectors_fwd.hpp>
+
+#if defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+
+namespace boost {
+
+#if !defined BOOST_MSVC
+ template <>
+ struct is_container_selector<array_selector_base> : ::boost::mpl::true_
+ {
+ };
+#endif
+
+ template <>
+ struct is_container_selector<vector_selector_base> : ::boost::mpl::true_
+ {
+ };
+
+ template <>
+ struct is_container_selector<deque_selector_base> : ::boost::mpl::true_
+ {
+ };
+
+ template <>
+ struct is_container_selector<list_selector_base> : ::boost::mpl::true_
+ {
+ };
+
+#if !defined BOOST_NO_SLIST
+ template <>
+ struct is_container_selector<slist_selector_base> : ::boost::mpl::true_
+ {
+ };
+#endif
+
+ template <>
+ struct is_container_selector<set_selector_base> : ::boost::mpl::true_
+ {
+ };
+
+ template <>
+ struct is_container_selector<map_selector_base> : ::boost::mpl::true_
+ {
+ };
+
+ template <>
+ struct is_container_selector<multiset_selector_base> : ::boost::mpl::true_
+ {
+ };
+
+ template <>
+ struct is_container_selector<multimap_selector_base> : ::boost::mpl::true_
+ {
+ };
+
+#if defined BOOST_HAS_HASH
+ template <>
+ struct is_container_selector<hash_set_selector_base> : ::boost::mpl::true_
+ {
+ };
+
+ template <>
+ struct is_container_selector<hash_map_selector_base> : ::boost::mpl::true_
+ {
+ };
+
+ template <>
+ struct is_container_selector<hash_multiset_selector_base>
+ : ::boost::mpl::true_
+ {
+ };
+
+ template <>
+ struct is_container_selector<hash_multimap_selector_base>
+ : ::boost::mpl::true_
+ {
+ };
+#endif // BOOST_HAS_HASH
+
+#if !defined BOOST_MSVC
+ template <>
+ struct is_container_selector<ptr_array_selector_base> : ::boost::mpl::true_
+ {
+ };
+#endif
+
+ template <>
+ struct is_container_selector<ptr_vector_selector_base>
+ : ::boost::mpl::true_
+ {
+ };
+
+ template <>
+ struct is_container_selector<ptr_deque_selector_base> : ::boost::mpl::true_
+ {
+ };
+
+ template <>
+ struct is_container_selector<ptr_list_selector_base> : ::boost::mpl::true_
+ {
+ };
+
+ template <>
+ struct is_container_selector<ptr_set_selector_base> : ::boost::mpl::true_
+ {
+ };
+
+ template <>
+ struct is_container_selector<ptr_map_selector_base> : ::boost::mpl::true_
+ {
+ };
+
+ template <>
+ struct is_container_selector<ptr_multiset_selector_base>
+ : ::boost::mpl::true_
+ {
+ };
+
+ template <>
+ struct is_container_selector<ptr_multimap_selector_base>
+ : ::boost::mpl::true_
+ {
+ };
+
+ template <>
+ struct is_container_selector<stack_selector_base> : ::boost::mpl::true_
+ {
+ };
+
+ template <>
+ struct is_container_selector<queue_selector_base> : ::boost::mpl::true_
+ {
+ };
+
+ template <>
+ struct is_container_selector<std_heap_selector_base> : ::boost::mpl::true_
+ {
+ };
+} // namespace boost
+
+#else // !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+
+namespace boost {
+
+#if !defined BOOST_MSVC
+ template <typename T0, typename T1>
+ struct is_container_selector<array_selector<T0,T1> > : ::boost::mpl::true_
+ {
+ };
+#endif
+
+ template <typename T0, typename T1>
+ struct is_container_selector<vector_selector<T0,T1> > : ::boost::mpl::true_
+ {
+ };
+
+ template <typename AllocatorSelector>
+ struct is_container_selector<stable_vector_selector<AllocatorSelector> >
+ : ::boost::mpl::true_
+ {
+ };
+
+ template <typename T0, typename T1>
+ struct is_container_selector<deque_selector<T0,T1> > : ::boost::mpl::true_
+ {
+ };
+
+ template <typename T0, typename T1>
+ struct is_container_selector<list_selector<T0,T1> > : ::boost::mpl::true_
+ {
+ };
+
+ template <typename T0, typename T1, typename T2>
+ struct is_container_selector<set_selector<T0,T1,T2> > : ::boost::mpl::true_
+ {
+ };
+
+ template <typename T0, typename T1, typename T2>
+ struct is_container_selector<map_selector<T0,T1,T2> > : ::boost::mpl::true_
+ {
+ };
+
+ template <typename T0, typename T1, typename T2>
+ struct is_container_selector<multiset_selector<T0,T1,T2> >
+ : ::boost::mpl::true_
+ {
+ };
+
+ template <typename T0, typename T1, typename T2>
+ struct is_container_selector<multimap_selector<T0,T1,T2> >
+ : ::boost::mpl::true_
+ {
+ };
+
+ template <typename T0, typename T1>
+ struct is_container_selector<flat_set_selector<T0,T1> >
+ : ::boost::mpl::true_
+ {
+ };
+
+ template <typename T0, typename T1>
+ struct is_container_selector<flat_map_selector<T0,T1> >
+ : ::boost::mpl::true_
+ {
+ };
+
+ template <typename T0, typename T1>
+ struct is_container_selector<flat_multiset_selector<T0,T1> >
+ : ::boost::mpl::true_
+ {
+ };
+
+ template <typename T0, typename T1>
+ struct is_container_selector<flat_multimap_selector<T0,T1> >
+ : ::boost::mpl::true_
+ {
+ };
+
+ template <typename T0, typename T1, typename T2, typename T3>
+ struct is_container_selector<hash_set_selector<T0,T1,T2,T3> >
+ : ::boost::mpl::true_
+ {
+ };
+
+ template <typename T0, typename T1, typename T2, typename T3>
+ struct is_container_selector<hash_map_selector<T0,T1,T2,T3> >
+ : ::boost::mpl::true_
+ {
+ };
+
+ template <typename T0, typename T1, typename T2, typename T3>
+ struct is_container_selector<hash_multiset_selector<T0,T1,T2,T3> >
+ : ::boost::mpl::true_
+ {
+ };
+
+ template <typename T0, typename T1, typename T2, typename T3>
+ struct is_container_selector<hash_multimap_selector<T0,T1,T2,T3> >
+ : ::boost::mpl::true_
+ {
+ };
+
+#if !defined BOOST_MSVC
+ template <typename T0, typename T1>
+ struct is_container_selector<ptr_array_selector<T0,T1> >
+ : ::boost::mpl::true_
+ {
+ };
+#endif
+
+ template <typename T0, typename T1>
+ struct is_container_selector<ptr_vector_selector<T0,T1> >
+ : ::boost::mpl::true_
+ {
+ };
+
+ template <typename T0, typename T1>
+ struct is_container_selector<ptr_deque_selector<T0,T1> >
+ : ::boost::mpl::true_
+ {
+ };
+
+ template <typename T0, typename T1>
+ struct is_container_selector<ptr_list_selector<T0,T1> >
+ : ::boost::mpl::true_
+ {
+ };
+
+ template <typename T0, typename T1, typename T2>
+ struct is_container_selector<ptr_set_selector<T0,T1,T2> >
+ : ::boost::mpl::true_
+ {
+ };
+
+ template <typename T0, typename T1, typename T2>
+ struct is_container_selector<ptr_map_selector<T0,T1,T2> >
+ : ::boost::mpl::true_
+ {
+ };
+
+ template <typename T0, typename T1, typename T2>
+ struct is_container_selector<ptr_multiset_selector<T0,T1,T2> >
+ : ::boost::mpl::true_
+ {
+ };
+
+ template <typename T0, typename T1, typename T2>
+ struct is_container_selector<ptr_multimap_selector<T0,T1,T2> >
+ : ::boost::mpl::true_
+ {
+ };
+
+ template <typename T0, typename T1, typename T2, typename T3>
+ struct is_container_selector<ptr_hash_set_selector<T0,T1,T2,T3> >
+ : ::boost::mpl::true_
+ {
+ };
+
+ template <typename T0, typename T1, typename T2, typename T3>
+ struct is_container_selector<ptr_hash_map_selector<T0,T1,T2,T3> >
+ : ::boost::mpl::true_
+ {
+ };
+
+ template <typename T0, typename T1, typename T2, typename T3>
+ struct is_container_selector<ptr_hash_multiset_selector<T0,T1,T2,T3> >
+ : ::boost::mpl::true_
+ {
+ };
+
+ template <typename T0, typename T1, typename T2, typename T3>
+ struct is_container_selector<ptr_hash_multimap_selector<T0,T1,T2,T3> >
+ : ::boost::mpl::true_
+ {
+ };
+
+ template <typename SequenceSelector>
+ struct is_container_selector<stack_selector<SequenceSelector> >
+ : ::boost::mpl::true_
+ {
+ };
+
+ template <typename SequenceSelector>
+ struct is_container_selector<queue_selector<SequenceSelector> >
+ : ::boost::mpl::true_
+ {
+ };
+
+ template <typename T0, typename T1>
+ struct is_container_selector<std_heap_selector<T0,T1> >
+ : ::boost::mpl::true_
+ {
+ };
+
+ template <typename T0, typename T1, typename T2, typename T3>
+ struct is_container_selector<priority_queue_selector<T0,T1,T2,T3> >
+ : ::boost::mpl::true_
+ {
+ };
+
+ template <
+ typename T0
+ , typename T1
+ , typename T2
+ , typename T3
+ , typename T4
+ , typename T5
+ >
+ struct is_container_selector<d_ary_heap_selector<T0,T1,T2,T3,T4,T5> >
+ : ::boost::mpl::true_
+ {
+ };
+
+ template <typename T0, typename T1, typename T2, typename T3>
+ struct is_container_selector<binomial_heap_selector<T0,T1,T2,T3> >
+ : ::boost::mpl::true_
+ {
+ };
+
+ template <typename T0, typename T1, typename T2, typename T3, typename T4>
+ struct is_container_selector<fibonacci_heap_selector<T0,T1,T2,T3,T4> >
+ : ::boost::mpl::true_
+ {
+ };
+
+ template <typename T0, typename T1, typename T2, typename T3, typename T4>
+ struct is_container_selector<pairing_heap_selector<T0,T1,T2,T3,T4> >
+ : ::boost::mpl::true_
+ {
+ };
+
+ template <
+ typename T0
+ , typename T1
+ , typename T2
+ , typename T3
+ , typename T4
+ , typename T5
+ , typename T6
+ >
+ struct is_container_selector<skew_heap_selector<T0,T1,T2,T3,T4,T5,T6> >
+ : ::boost::mpl::true_
+ {
+ };
+} // namespace boost
+
+#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+
+#else // !defined BOOST_MPL_CFG_NO_HAS_XXX
+
+#include <boost/mpl/aux_/has_type.hpp>
+#include <boost/container_gen/container_gen_fwd.hpp>
+
+//[reference__is_container_selector
+namespace boost {
+
+ template <typename Selector>
+ struct is_container_selector
+ //<-
+ : ::boost::mpl::aux::has_type<
+ container_gen<Selector,int>
+ , ::boost::mpl::false_
+ >::type
+ //->
+ {
+ // typedef ... type;
+ //<-
+ BOOST_MPL_AUX_LAMBDA_SUPPORT(1,is_container_selector,(Selector))
+ //->
+ };
+} // namespace boost
+//]
+
+#endif // BOOST_MPL_CFG_NO_HAS_XXX
+
+#endif // BOOST_CONTAINER_GEN_IS_CONTAINER_SELECTOR_HPP_INCLUDED
+

Added: sandbox/container_gen/boost/container_gen/is_flat_assoc_selector.hpp
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ sandbox/container_gen/boost/container_gen/is_flat_assoc_selector.hpp 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84957)
@@ -0,0 +1,113 @@
+//=============================================================================
+// 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)
+//=============================================================================
+
+#ifndef BOOST_CONTAINER_GEN_IS_FLAT_ASSOC_SELECTOR_HPP_INCLUDED
+#define BOOST_CONTAINER_GEN_IS_FLAT_ASSOC_SELECTOR_HPP_INCLUDED
+
+#include <boost/config.hpp>
+#include <boost/mpl/aux_/config/has_xxx.hpp>
+#include <boost/mpl/aux_/lambda_support.hpp>
+#include <boost/mpl/bool.hpp>
+
+#if defined BOOST_NO_SFINAE || defined BOOST_MPL_CFG_NO_HAS_XXX
+
+namespace boost {
+
+ template <typename Selector>
+ struct is_flat_associative_selector : ::boost::mpl::false_
+ {
+ BOOST_MPL_AUX_LAMBDA_SUPPORT(
+ 1
+ , is_flat_associative_selector
+ , (Selector)
+ )
+ };
+} // namespace boost
+
+#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+
+#include <boost/container_gen/selectors.hpp>
+
+namespace boost {
+
+ template <typename T0, typename T1>
+ struct is_flat_associative_selector<flat_set_selector<T0,T1> >
+ : ::boost::mpl::true_
+ {
+ };
+
+ template <typename T0, typename T1>
+ struct is_flat_associative_selector<flat_map_selector<T0,T1> >
+ : ::boost::mpl::true_
+ {
+ };
+
+ template <typename T0, typename T1>
+ struct is_flat_associative_selector<flat_multiset_selector<T0,T1> >
+ : ::boost::mpl::true_
+ {
+ };
+
+ template <typename T0, typename T1>
+ struct is_flat_associative_selector<flat_multimap_selector<T0,T1> >
+ : ::boost::mpl::true_
+ {
+ };
+} // namespace boost
+
+#endif // !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+
+#else // !defined BOOST_NO_SFINAE && !defined BOOST_MPL_CFG_NO_HAS_XXX
+
+#include <boost/mpl/aux_/has_type.hpp>
+#include <boost/mpl/if.hpp>
+#include <boost/container_gen/container_gen.hpp>
+#include <boost/detail/metafunction/is_flat_assoc_container.hpp>
+
+namespace boost { namespace detail { namespace metafunction {
+
+ template <typename Selector>
+ struct is_flat_associative_selector_impl
+ : ::boost::detail::metafunction::is_flat_associative_container<
+ typename container_gen<Selector,int>::type
+ >
+ {
+ };
+}}} // namespace boost::detail::metafunction
+
+//[reference__is_flat_associative_selector
+namespace boost {
+
+ template <typename Selector>
+ struct is_flat_associative_selector
+ //<-
+ : ::boost::mpl::if_<
+ typename ::boost::mpl::aux::has_type<
+ container_gen<Selector,int>
+ >::type
+ , detail::metafunction::is_flat_associative_selector_impl<Selector>
+ , ::boost::mpl::false_
+ >::type
+ //->
+ {
+ // typedef ... type;
+ //<-
+ BOOST_MPL_AUX_LAMBDA_SUPPORT(
+ 1
+ , is_flat_associative_selector
+ , (Selector)
+ )
+ //->
+ };
+} // namespace boost
+//]
+
+#endif // BOOST_NO_SFINAE, BOOST_MPL_CFG_NO_HAS_XXX
+
+#endif // BOOST_CONTAINER_GEN_IS_FLAT_ASSOC_SELECTOR_HPP_INCLUDED
+

Added: sandbox/container_gen/boost/container_gen/is_hashed_assoc_selector.hpp
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ sandbox/container_gen/boost/container_gen/is_hashed_assoc_selector.hpp 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84957)
@@ -0,0 +1,171 @@
+//=============================================================================
+// 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)
+//=============================================================================
+
+#ifndef BOOST_CONTAINER_GEN_IS_HASHED_ASSOC_SELECTOR_HPP_INCLUDED
+#define BOOST_CONTAINER_GEN_IS_HASHED_ASSOC_SELECTOR_HPP_INCLUDED
+
+#include <boost/config.hpp>
+#include <boost/mpl/aux_/config/has_xxx.hpp>
+#include <boost/mpl/aux_/lambda_support.hpp>
+
+#if defined BOOST_NO_SFINAE || defined BOOST_MPL_CFG_NO_HAS_XXX
+
+#include <boost/mpl/bool.hpp>
+
+namespace boost {
+
+ template <typename Selector>
+ struct is_hashed_associative_selector : ::boost::mpl::false_
+ {
+ BOOST_MPL_AUX_LAMBDA_SUPPORT(
+ 1
+ , is_hashed_associative_selector
+ , (Selector)
+ )
+ };
+} // namespace boost
+
+#include <boost/container_gen/selectors.hpp>
+
+#if defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+#if defined BOOST_HAS_HASH
+
+namespace boost {
+
+ template <>
+ struct is_hashed_associative_selector<hash_set_selector_base>
+ : ::boost::mpl::true_
+ {
+ };
+
+ template <>
+ struct is_hashed_associative_selector<hash_map_selector_base>
+ : ::boost::mpl::true_
+ {
+ };
+
+ template <>
+ struct is_hashed_associative_selector<hash_multiset_selector_base>
+ : ::boost::mpl::true_
+ {
+ };
+
+ template <>
+ struct is_hashed_associative_selector<hash_multimap_selector_base>
+ : ::boost::mpl::true_
+ {
+ };
+} // namespace boost
+
+#endif // BOOST_HAS_HASH
+#else // !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+
+namespace boost {
+
+ template <typename T0, typename T1, typename T2, typename T3>
+ struct is_hashed_associative_selector<hash_set_selector<T0,T1,T2,T3> >
+ : ::boost::mpl::true_
+ {
+ };
+
+ template <typename T0, typename T1, typename T2, typename T3>
+ struct is_hashed_associative_selector<hash_map_selector<T0,T1,T2,T3> >
+ : ::boost::mpl::true_
+ {
+ };
+
+ template <typename T0, typename T1, typename T2, typename T3>
+ struct is_hashed_associative_selector<hash_multiset_selector<T0,T1,T2,T3> >
+ : ::boost::mpl::true_
+ {
+ };
+
+ template <typename T0, typename T1, typename T2, typename T3>
+ struct is_hashed_associative_selector<hash_multimap_selector<T0,T1,T2,T3> >
+ : ::boost::mpl::true_
+ {
+ };
+
+ template <typename T0, typename T1, typename T2, typename T3>
+ struct is_hashed_associative_selector<ptr_hash_set_selector<T0,T1,T2,T3> >
+ : ::boost::mpl::true_
+ {
+ };
+
+ template <typename T0, typename T1, typename T2, typename T3>
+ struct is_hashed_associative_selector<ptr_hash_map_selector<T0,T1,T2,T3> >
+ : ::boost::mpl::true_
+ {
+ };
+
+ template <typename T0, typename T1, typename T2, typename T3>
+ struct is_hashed_associative_selector<
+ ptr_hash_multiset_selector<T0,T1,T2,T3>
+ > : ::boost::mpl::true_
+ {
+ };
+
+ template <typename T0, typename T1, typename T2, typename T3>
+ struct is_hashed_associative_selector<
+ ptr_hash_multimap_selector<T0,T1,T2,T3>
+ > : ::boost::mpl::true_
+ {
+ };
+} // namespace boost
+
+#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+
+#else // !defined BOOST_NO_SFINAE && !defined BOOST_MPL_CFG_NO_HAS_XXX
+
+#include <boost/mpl/aux_/has_type.hpp>
+#include <boost/mpl/if.hpp>
+#include <boost/container_gen/container_gen.hpp>
+#include <boost/detail/metafunction/is_hashed_assoc_container.hpp>
+
+namespace boost { namespace detail { namespace metafunction {
+
+ template <typename Selector>
+ struct is_hashed_associative_selector_impl
+ : ::boost::detail::metafunction::is_hashed_associative_container<
+ typename container_gen<Selector,int>::type
+ >
+ {
+ };
+}}} // namespace boost::detail::metafunction
+
+//[reference__is_hashed_associative_selector
+namespace boost {
+
+ template <typename Selector>
+ struct is_hashed_associative_selector
+ //<-
+ : ::boost::mpl::if_<
+ typename ::boost::mpl::aux::has_type<
+ container_gen<Selector,int>
+ >::type
+ , detail::metafunction::is_hashed_associative_selector_impl<Selector>
+ , ::boost::mpl::false_
+ >::type
+ //->
+ {
+ // typedef ... type;
+ //<-
+ BOOST_MPL_AUX_LAMBDA_SUPPORT(
+ 1
+ , is_hashed_associative_selector
+ , (Selector)
+ )
+ //->
+ };
+} // namespace boost
+//]
+
+#endif // BOOST_NO_SFINAE, BOOST_MPL_CFG_NO_HAS_XXX
+
+#endif // BOOST_CONTAINER_GEN_IS_HASHED_ASSOC_SELECTOR_HPP_INCLUDED
+

Added: sandbox/container_gen/boost/container_gen/is_hasher_selector.hpp
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ sandbox/container_gen/boost/container_gen/is_hasher_selector.hpp 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84957)
@@ -0,0 +1,142 @@
+//=============================================================================
+// 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)
+//=============================================================================
+
+#ifndef BOOST_CONTAINER_GEN_IS_HASHER_SELECTOR_HPP
+#define BOOST_CONTAINER_GEN_IS_HASHER_SELECTOR_HPP
+
+#include <boost/mpl/aux_/config/has_xxx.hpp>
+#include <boost/mpl/aux_/lambda_support.hpp>
+#include <boost/mpl/bool.hpp>
+
+#if defined BOOST_MPL_CFG_NO_HAS_XXX || \
+ defined BOOST_MPL_CFG_NO_HAS_XXX_TEMPLATE
+
+#include <boost/container_gen/selectors_fwd.hpp>
+
+namespace boost {
+
+ template <typename T>
+ struct is_hasher_selector : ::boost::mpl::false_
+ {
+ BOOST_MPL_AUX_LAMBDA_SUPPORT(1, is_hasher_selector, (T))
+ };
+
+ template <>
+ struct is_hasher_selector<boost_hash_selector> : ::boost::mpl::true_
+ {
+ };
+
+ template <>
+ struct is_hasher_selector<tr1_hash_selector> : ::boost::mpl::true_
+ {
+ };
+} // namespace boost
+
+#else // !defined BOOST_MPL_CFG_NO_HAS_XXX && \
+// !defined BOOST_MPL_CFG_NO_HAS_XXX_TEMPLATE
+
+#include <boost/config.hpp>
+#include <cstddef>
+#include <boost/mpl/aux_/has_type.hpp>
+#include <boost/mpl/integral_c.hpp>
+#include <boost/mpl/vector/vector10.hpp>
+#include <boost/mpl/unpack_args.hpp>
+#include <boost/mpl/apply_wrap.hpp>
+#include <boost/mpl/eval_if.hpp>
+#include <boost/detail/metafunction/has_apply_template.hpp>
+#include <boost/detail/metafunction/is_function_wrt.hpp>
+
+#if defined BOOST_DETAIL_METAFUNCTION_ATTEMPT_ARITY_DETECTION
+#include <boost/mpl/if.hpp>
+#include <boost/detail/metafunction/is_n_ary_function.hpp>
+#include <boost/detail/metafunction/is_adaptable_binary_func.hpp>
+#endif
+
+namespace boost { namespace detail { namespace metafunction {
+
+ template <typename Metafunction>
+ struct is_hasher_selector_result_function
+#if !defined BOOST_DETAIL_METAFUNCTION_ATTEMPT_ARITY_DETECTION
+ : ::boost::detail::metafunction::is_function_with_result_type<
+ typename Metafunction::type
+ , ::std::size_t
+ >
+#endif
+ {
+#if defined BOOST_DETAIL_METAFUNCTION_ATTEMPT_ARITY_DETECTION
+ private:
+ typedef typename Metafunction::type _function;
+
+ public:
+ typedef typename ::boost::mpl::eval_if<
+ ::boost::detail::metafunction
+ ::is_function_with_result_type<_function,::std::size_t>
+ , ::boost::mpl::false_
+ , ::boost::mpl::if_<
+ ::boost::detail::metafunction::is_n_ary_function<
+ _function
+ , ::boost::mpl::integral_c<unsigned int,1>
+ >
+ , ::boost::mpl::true_
+ , ::boost::detail::metafunction
+ ::is_adaptable_unary_function<_function>
+ >
+ >::type
+ type;
+#endif
+ };
+
+ template <typename T>
+ struct is_hasher_selector_metafunction_class
+ {
+ private:
+ typedef ::boost::mpl::apply_wrap1<
+ ::boost::mpl::unpack_args<T>
+ , ::boost::mpl::vector1<T>
+ >
+ _metafunction;
+
+ public:
+ typedef typename ::boost::mpl::eval_if<
+ typename ::boost::mpl::aux::has_type<
+ _metafunction
+ , ::boost::mpl::false_
+ >::type
+ , is_hasher_selector_result_function<_metafunction>
+ , ::boost::mpl::false_
+ >::type
+ type;
+ };
+}}} // namespace boost::detail::metafunction
+
+//[reference__is_hasher_selector
+namespace boost {
+
+ template <typename T>
+ struct is_hasher_selector
+ //<-
+ : ::boost::mpl::eval_if<
+ typename ::boost::detail::metafunction::has_apply_template<T>::type
+ , ::boost::detail::metafunction
+ ::is_hasher_selector_metafunction_class<T>
+ , ::boost::mpl::false_
+ >::type
+ //->
+ {
+ // typedef ... type;
+ //<-
+ BOOST_MPL_AUX_LAMBDA_SUPPORT(1, is_hasher_selector, (T))
+ //->
+ };
+} // namespace boost
+//]
+
+#endif // BOOST_MPL_CFG_NO_HAS_XXX, BOOST_MPL_CFG_NO_HAS_XXX_TEMPLATE
+
+#endif // BOOST_CONTAINER_GEN_IS_HASHER_SELECTOR_HPP
+

Added: sandbox/container_gen/boost/container_gen/is_heap_selector.hpp
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ sandbox/container_gen/boost/container_gen/is_heap_selector.hpp 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84957)
@@ -0,0 +1,132 @@
+//=============================================================================
+// 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)
+//=============================================================================
+
+#ifndef BOOST_CONTAINER_GEN_IS_HEAP_SELECTOR_HPP_INCLUDED
+#define BOOST_CONTAINER_GEN_IS_HEAP_SELECTOR_HPP_INCLUDED
+
+#include <boost/config.hpp>
+#include <boost/mpl/aux_/config/has_xxx.hpp>
+#include <boost/mpl/aux_/lambda_support.hpp>
+#include <boost/mpl/bool.hpp>
+
+#if defined BOOST_NO_SFINAE || defined BOOST_MPL_CFG_NO_HAS_XXX
+
+namespace boost {
+
+ template <typename Selector>
+ struct is_heap_selector : ::boost::mpl::false_
+ {
+ BOOST_MPL_AUX_LAMBDA_SUPPORT(1, is_heap_selector, (Selector))
+ };
+} // namespace boost
+
+#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+
+#include <boost/container_gen/selectors.hpp>
+
+namespace boost {
+
+ template <typename T0, typename T1, typename T2, typename T3>
+ struct is_heap_selector<priority_queue_selector<T0,T1,T2,T3> >
+ : ::boost::mpl::true_
+ {
+ };
+
+ template <
+ typename T0
+ , typename T1
+ , typename T2
+ , typename T3
+ , typename T4
+ , typename T5
+ >
+ struct is_heap_selector<d_ary_heap_selector<T0,T1,T2,T3,T4,T5> >
+ : ::boost::mpl::true_
+ {
+ };
+
+ template <typename T0, typename T1, typename T2, typename T3>
+ struct is_heap_selector<binomial_heap_selector<T0,T1,T2,T3> >
+ : ::boost::mpl::true_
+ {
+ };
+
+ template <typename T0, typename T1, typename T2, typename T3, typename T4>
+ struct is_heap_selector<fibonacci_heap_selector<T0,T1,T2,T3,T4> >
+ : ::boost::mpl::true_
+ {
+ };
+
+ template <typename T0, typename T1, typename T2, typename T3, typename T4>
+ struct is_heap_selector<pairing_heap_selector<T0,T1,T2,T3,T4> >
+ : ::boost::mpl::true_
+ {
+ };
+
+ template <
+ typename T0
+ , typename T1
+ , typename T2
+ , typename T3
+ , typename T4
+ , typename T5
+ , typename T6
+ >
+ struct is_heap_selector<skew_heap_selector<T0,T1,T2,T3,T4,T5,T6> >
+ : ::boost::mpl::true_
+ {
+ };
+} // namespace boost
+
+#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+
+#else // !defined BOOST_NO_SFINAE && !defined BOOST_MPL_CFG_NO_HAS_XXX
+
+#include <boost/mpl/aux_/has_type.hpp>
+#include <boost/mpl/if.hpp>
+#include <boost/container_gen/container_gen.hpp>
+#include <boost/detail/metafunction/is_heap.hpp>
+
+namespace boost { namespace detail { namespace metafunction {
+
+ template <typename Selector>
+ struct is_heap_selector_impl
+ : ::boost::detail::metafunction::is_heap<
+ typename container_gen<Selector,int>::type
+ >
+ {
+ };
+}}} // namespace boost::detail::metafunction
+
+//[reference__is_heap_selector
+namespace boost {
+
+ template <typename Selector>
+ struct is_heap_selector
+ //<-
+ : ::boost::mpl::if_<
+ typename ::boost::mpl::aux::has_type<
+ container_gen<Selector,int>
+ >::type
+ , detail::metafunction::is_heap_selector_impl<Selector>
+ , ::boost::mpl::false_
+ >::type
+ //->
+ {
+ // typedef ... type;
+ //<-
+ BOOST_MPL_AUX_LAMBDA_SUPPORT(1, is_heap_selector, (Selector))
+ //->
+ };
+} // namespace boost
+//]
+
+#endif // BOOST_NO_SFINAE, BOOST_MPL_CFG_NO_HAS_XXX
+
+#endif // BOOST_CONTAINER_GEN_IS_HEAP_SELECTOR_HPP_INCLUDED
+

Added: sandbox/container_gen/boost/container_gen/is_iteratable_heap_selector.hpp
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ sandbox/container_gen/boost/container_gen/is_iteratable_heap_selector.hpp 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84957)
@@ -0,0 +1,142 @@
+//=============================================================================
+// 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)
+//=============================================================================
+
+#ifndef BOOST_CONTAINER_GEN_IS_ITERATABLE_HEAP_SELECTOR_HPP_INCLUDED
+#define BOOST_CONTAINER_GEN_IS_ITERATABLE_HEAP_SELECTOR_HPP_INCLUDED
+
+#include <boost/config.hpp>
+#include <boost/mpl/aux_/config/has_xxx.hpp>
+#include <boost/mpl/aux_/lambda_support.hpp>
+#include <boost/mpl/bool.hpp>
+
+#if defined BOOST_NO_SFINAE || defined BOOST_MPL_CFG_NO_HAS_XXX
+
+namespace boost {
+
+ template <typename Selector>
+ struct is_iteratable_heap_selector : ::boost::mpl::false_
+ {
+ BOOST_MPL_AUX_LAMBDA_SUPPORT(
+ 1
+ , is_iteratable_heap_selector
+ , (Selector)
+ )
+ };
+} // namespace boost
+
+#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+
+#include <boost/container_gen/selectors.hpp>
+
+namespace boost {
+
+ template <typename T0, typename T1, typename T2, typename T3>
+ struct is_iteratable_heap_selector<priority_queue_selector<T0,T1,T2,T3> >
+ : ::boost::mpl::true_
+ {
+ };
+
+ template <
+ typename T0
+ , typename T1
+ , typename T2
+ , typename T3
+ , typename T4
+ , typename T5
+ >
+ struct is_iteratable_heap_selector<d_ary_heap_selector<T0,T1,T2,T3,T4,T5> >
+ : ::boost::mpl::true_
+ {
+ };
+
+ template <typename T0, typename T1, typename T2, typename T3>
+ struct is_iteratable_heap_selector<binomial_heap_selector<T0,T1,T2,T3> >
+ : ::boost::mpl::true_
+ {
+ };
+
+ template <typename T0, typename T1, typename T2, typename T3, typename T4>
+ struct is_iteratable_heap_selector<
+ fibonacci_heap_selector<T0,T1,T2,T3,T4>
+ > : ::boost::mpl::true_
+ {
+ };
+
+ template <typename T0, typename T1, typename T2, typename T3, typename T4>
+ struct is_iteratable_heap_selector<pairing_heap_selector<T0,T1,T2,T3,T4> >
+ : ::boost::mpl::true_
+ {
+ };
+
+ template <
+ typename T0
+ , typename T1
+ , typename T2
+ , typename T3
+ , typename T4
+ , typename T5
+ , typename T6
+ >
+ struct is_iteratable_heap_selector<
+ skew_heap_selector<T0,T1,T2,T3,T4,T5,T6>
+ > : ::boost::mpl::true_
+ {
+ };
+} // namespace boost
+
+#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+
+#else // !defined BOOST_NO_SFINAE && !defined BOOST_MPL_CFG_NO_HAS_XXX
+
+#include <boost/mpl/aux_/has_type.hpp>
+#include <boost/mpl/if.hpp>
+#include <boost/container_gen/container_gen.hpp>
+#include <boost/detail/metafunction/is_iteratable_heap.hpp>
+
+namespace boost { namespace detail { namespace metafunction {
+
+ template <typename Selector>
+ struct is_iteratable_heap_selector_impl
+ : ::boost::detail::metafunction::is_iteratable_heap<
+ typename container_gen<Selector,int>::type
+ >
+ {
+ };
+}}} // namespace boost::detail::metafunction
+
+//[reference__is_iteratable_heap_selector
+namespace boost {
+
+ template <typename Selector>
+ struct is_iteratable_heap_selector
+ //<-
+ : ::boost::mpl::if_<
+ typename ::boost::mpl::aux::has_type<
+ container_gen<Selector,int>
+ >::type
+ , detail::metafunction::is_iteratable_heap_selector_impl<Selector>
+ , ::boost::mpl::false_
+ >::type
+ //->
+ {
+ // typedef ... type;
+ //<-
+ BOOST_MPL_AUX_LAMBDA_SUPPORT(
+ 1
+ , is_iteratable_heap_selector
+ , (Selector)
+ )
+ //->
+ };
+} // namespace boost
+//]
+
+#endif // BOOST_NO_SFINAE, BOOST_MPL_CFG_NO_HAS_XXX
+
+#endif // BOOST_CONTAINER_GEN_IS_ITERATABLE_HEAP_SELECTOR_HPP_INCLUDED
+

Added: sandbox/container_gen/boost/container_gen/is_mergeable_heap_selector.hpp
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ sandbox/container_gen/boost/container_gen/is_mergeable_heap_selector.hpp 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84957)
@@ -0,0 +1,150 @@
+//=============================================================================
+// 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)
+//=============================================================================
+
+#ifndef BOOST_CONTAINER_GEN_IS_MERGEABLE_HEAP_SELECTOR_HPP_INCLUDED
+#define BOOST_CONTAINER_GEN_IS_MERGEABLE_HEAP_SELECTOR_HPP_INCLUDED
+
+#include <boost/config.hpp>
+#include <boost/mpl/aux_/config/has_xxx.hpp>
+#include <boost/mpl/aux_/lambda_support.hpp>
+#include <boost/mpl/bool.hpp>
+
+#if defined BOOST_NO_SFINAE || defined BOOST_MPL_CFG_NO_HAS_XXX
+
+namespace boost {
+
+ template <typename Selector>
+ struct is_mergeable_heap_selector : ::boost::mpl::false_
+ {
+ BOOST_MPL_AUX_LAMBDA_SUPPORT(1, is_mergeable_heap_selector, (Selector))
+ };
+} // namespace boost
+
+#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+
+#include <boost/heap/policies.hpp>
+#include <boost/container_gen/selectors.hpp>
+#include <boost/container_gen/detail/selector_signatures.hpp>
+
+namespace boost {
+
+ template <typename T0, typename T1, typename T2, typename T3>
+ struct is_mergeable_heap_selector<binomial_heap_selector<T0,T1,T2,T3> >
+ : ::boost::mpl::true_
+ {
+ };
+
+ template <typename T0, typename T1, typename T2, typename T3, typename T4>
+ struct is_mergeable_heap_selector<fibonacci_heap_selector<T0,T1,T2,T3,T4> >
+ : ::boost::mpl::true_
+ {
+ };
+
+ template <typename T0, typename T1, typename T2, typename T3, typename T4>
+ struct is_mergeable_heap_selector<pairing_heap_selector<T0,T1,T2,T3,T4> >
+ : ::boost::mpl::true_
+ {
+ };
+
+ template <
+ typename T0
+ , typename T1
+ , typename T2
+ , typename T3
+ , typename T4
+ , typename T5
+ , typename T6
+ >
+ struct is_mergeable_heap_selector<
+ skew_heap_selector<T0,T1,T2,T3,T4,T5,T6>
+ > : ::boost::mpl::bool_<
+ ::boost::heap::detail::extract_mutable<
+ typename detail::skew_heap_selector_signature::bind<
+ T0
+ , T1
+ , T2
+ , T3
+ , T4
+ , T5
+ , T6
+ >::type
+ >::value
+ >
+ {
+ };
+} // namespace boost
+
+#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+
+#else // !defined BOOST_NO_SFINAE && !defined BOOST_MPL_CFG_NO_HAS_XXX
+
+#include <boost/mpl/aux_/has_type.hpp>
+#include <boost/mpl/if.hpp>
+#include <boost/container_gen/container_gen.hpp>
+#include <boost/detail/metafunction/is_mergeable_heap.hpp>
+
+namespace boost { namespace detail { namespace metafunction {
+
+ template <typename Selector>
+ struct is_mergeable_heap_selector_impl
+ : ::boost::detail::metafunction::is_mergeable_heap<
+ typename container_gen<Selector,int>::type
+ >
+ {
+ };
+}}} // namespace boost::detail::metafunction
+
+//[reference__is_mergeable_heap_selector
+namespace boost {
+
+ template <typename Selector>
+ struct is_mergeable_heap_selector
+ //<-
+ : ::boost::mpl::if_<
+ typename ::boost::mpl::aux::has_type<
+ container_gen<Selector,int>
+ >::type
+ , detail::metafunction::is_mergeable_heap_selector_impl<Selector>
+ , ::boost::mpl::false_
+ >::type
+ //->
+ {
+ // typedef ... type;
+ //<-
+ BOOST_MPL_AUX_LAMBDA_SUPPORT(1, is_mergeable_heap_selector, (Selector))
+ //->
+ };
+} // namespace boost
+//]
+
+#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+
+#include <boost/container_gen/selectors.hpp>
+
+namespace boost {
+
+ template <
+ typename T0
+ , typename T1
+ , typename T2
+ , typename T3
+ , typename T4
+ , typename T5
+ >
+ struct is_mergeable_heap_selector<d_ary_heap_selector<T0,T1,T2,T3,T4,T5> >
+ : ::boost::mpl::false_
+ {
+ };
+} // namespace boost
+
+#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+
+#endif // BOOST_NO_SFINAE, BOOST_MPL_CFG_NO_HAS_XXX
+
+#endif // BOOST_CONTAINER_GEN_IS_MERGEABLE_HEAP_SELECTOR_HPP_INCLUDED
+

Added: sandbox/container_gen/boost/container_gen/is_multiple_assoc_selector.hpp
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ sandbox/container_gen/boost/container_gen/is_multiple_assoc_selector.hpp 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84957)
@@ -0,0 +1,200 @@
+//=============================================================================
+// 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)
+//=============================================================================
+
+#ifndef BOOST_CONTAINER_GEN_IS_MULTIPLE_ASSOC_SELECTOR_HPP_INCLUDED
+#define BOOST_CONTAINER_GEN_IS_MULTIPLE_ASSOC_SELECTOR_HPP_INCLUDED
+
+#include <boost/config.hpp>
+#include <boost/mpl/aux_/lambda_support.hpp>
+#include <boost/mpl/bool.hpp>
+#include <boost/typeof/typeof.hpp>
+
+#if defined BOOST_NO_SFINAE || defined BOOST_MPL_CFG_NO_HAS_XXX || \
+ defined BOOST_TYPEOF_EMULATION
+
+namespace boost {
+
+ template <typename Selector>
+ struct is_multiple_associative_selector : ::boost::mpl::false_
+ {
+ BOOST_MPL_AUX_LAMBDA_SUPPORT(
+ 1
+ , is_multiple_associative_selector
+ , (Selector)
+ )
+ };
+} // namespace boost
+
+#include <boost/container_gen/selectors.hpp>
+
+#if defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+
+namespace boost {
+
+ template <>
+ struct is_multiple_associative_selector<multiset_selector_base>
+ : ::boost::mpl::true_
+ {
+ };
+
+ template <>
+ struct is_multiple_associative_selector<multimap_selector_base>
+ : ::boost::mpl::true_
+ {
+ };
+
+ template <>
+ struct is_multiple_associative_selector<ptr_multiset_selector_base>
+ : ::boost::mpl::true_
+ {
+ };
+
+ template <>
+ struct is_multiple_associative_selector<ptr_multimap_selector_base>
+ : ::boost::mpl::true_
+ {
+ };
+
+#if defined BOOST_HAS_HASH
+ template <>
+ struct is_multiple_associative_selector<hash_multiset_selector_base>
+ : ::boost::mpl::true_
+ {
+ };
+
+ template <>
+ struct is_multiple_associative_selector<hash_multimap_selector_base>
+ : ::boost::mpl::true_
+ {
+ };
+#endif // BOOST_HAS_HASH
+} // namespace boost
+
+#else // !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+
+namespace boost {
+
+ template <typename T0, typename T1, typename T2>
+ struct is_multiple_associative_selector<multiset_selector<T0,T1,T2> >
+ : ::boost::mpl::true_
+ {
+ };
+
+ template <typename T0, typename T1, typename T2>
+ struct is_multiple_associative_selector<multimap_selector<T0,T1,T2> >
+ : ::boost::mpl::true_
+ {
+ };
+
+ template <typename T0, typename T1>
+ struct is_multiple_associative_selector<flat_multiset_selector<T0,T1> >
+ : ::boost::mpl::true_
+ {
+ };
+
+ template <typename T0, typename T1>
+ struct is_multiple_associative_selector<flat_multimap_selector<T0,T1> >
+ : ::boost::mpl::true_
+ {
+ };
+
+ template <typename T0, typename T1, typename T2, typename T3>
+ struct is_multiple_associative_selector<
+ hash_multiset_selector<T0,T1,T2,T3>
+ > : ::boost::mpl::true_
+ {
+ };
+
+ template <typename T0, typename T1, typename T2, typename T3>
+ struct is_multiple_associative_selector<
+ hash_multimap_selector<T0,T1,T2,T3>
+ > : ::boost::mpl::true_
+ {
+ };
+
+ template <typename T0, typename T1, typename T2>
+ struct is_multiple_associative_selector<ptr_multiset_selector<T0,T1,T2> >
+ : ::boost::mpl::true_
+ {
+ };
+
+ template <typename T0, typename T1, typename T2>
+ struct is_multiple_associative_selector<ptr_multimap_selector<T0,T1,T2> >
+ : ::boost::mpl::true_
+ {
+ };
+
+ template <typename T0, typename T1, typename T2, typename T3>
+ struct is_multiple_associative_selector<
+ ptr_hash_multiset_selector<T0,T1,T2,T3>
+ > : ::boost::mpl::true_
+ {
+ };
+
+ template <typename T0, typename T1, typename T2, typename T3>
+ struct is_multiple_associative_selector<
+ ptr_hash_multimap_selector<T0,T1,T2,T3>
+ > : ::boost::mpl::true_
+ {
+ };
+} // namespace boost
+
+#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+
+#else // !defined BOOST_NO_SFINAE && !defined BOOST_MPL_CFG_NO_HAS_XXX && \
+// !defined BOOST_TYPEOF_EMULATION
+
+#include <boost/mpl/aux_/has_type.hpp>
+#include <boost/mpl/if.hpp>
+#include <boost/container_gen/container_gen.hpp>
+#include <boost/detail/metafunction/is_multi_assoc_container.hpp>
+
+namespace boost { namespace detail { namespace metafunction {
+
+ template <typename Selector>
+ struct is_multiple_associative_selector_impl
+ : ::boost::detail::metafunction::is_multiple_associative_container<
+ typename container_gen<Selector,int>::type
+ >
+ {
+ };
+}}} // namespace boost::detail::metafunction
+
+//[reference__is_multiple_associative_selector
+namespace boost {
+
+ template <typename Selector>
+ struct is_multiple_associative_selector
+ //<-
+ : ::boost::mpl::if_<
+ typename ::boost::mpl::aux::has_type<
+ container_gen<Selector,int>
+ >::type
+ , detail::metafunction::is_multiple_associative_selector_impl<
+ Selector
+ >
+ , ::boost::mpl::false_
+ >::type
+ //->
+ {
+ // typedef ... type;
+ //<-
+ BOOST_MPL_AUX_LAMBDA_SUPPORT(
+ 1
+ , is_multiple_associative_selector
+ , (Selector)
+ )
+ //->
+ };
+} // namespace boost
+//]
+
+#endif // BOOST_NO_SFINAE, BOOST_MPL_CFG_NO_HAS_XXX, BOOST_TYPEOF_EMULATION
+
+#endif // BOOST_CONTAINER_GEN_IS_MULTIPLE_ASSOC_SELECTOR_HPP_INCLUDED
+

Added: sandbox/container_gen/boost/container_gen/is_mutable_heap_selector.hpp
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ sandbox/container_gen/boost/container_gen/is_mutable_heap_selector.hpp 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84957)
@@ -0,0 +1,151 @@
+//=============================================================================
+// 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)
+//=============================================================================
+
+#ifndef BOOST_CONTAINER_GEN_IS_MUTABLE_HEAP_SELECTOR_HPP_INCLUDED
+#define BOOST_CONTAINER_GEN_IS_MUTABLE_HEAP_SELECTOR_HPP_INCLUDED
+
+#include <boost/config.hpp>
+#include <boost/mpl/aux_/config/has_xxx.hpp>
+#include <boost/mpl/aux_/lambda_support.hpp>
+#include <boost/mpl/bool.hpp>
+
+#if defined BOOST_NO_SFINAE || defined BOOST_MPL_CFG_NO_HAS_XXX
+
+namespace boost {
+
+ template <typename Selector>
+ struct is_mutable_heap_selector : ::boost::mpl::false_
+ {
+ BOOST_MPL_AUX_LAMBDA_SUPPORT(1, is_mutable_heap_selector, (Selector))
+ };
+} // namespace boost
+
+#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+
+#include <boost/heap/policies.hpp>
+#include <boost/container_gen/selectors.hpp>
+#include <boost/container_gen/detail/selector_signatures.hpp>
+
+namespace boost {
+
+ template <
+ typename T0
+ , typename T1
+ , typename T2
+ , typename T3
+ , typename T4
+ , typename T5
+ >
+ struct is_mutable_heap_selector<d_ary_heap_selector<T0,T1,T2,T3,T4,T5> >
+ : ::boost::mpl::bool_<
+ ::boost::heap::detail::extract_mutable<
+ typename detail::d_ary_heap_selector_signature::bind<
+ T0
+ , T1
+ , T2
+ , T3
+ , T4
+ , T5
+ >::type
+ >::value
+ >
+ {
+ };
+
+ template <typename T0, typename T1, typename T2, typename T3>
+ struct is_mutable_heap_selector<binomial_heap_selector<T0,T1,T2,T3> >
+ : ::boost::mpl::true_
+ {
+ };
+
+ template <typename T0, typename T1, typename T2, typename T3, typename T4>
+ struct is_mutable_heap_selector<fibonacci_heap_selector<T0,T1,T2,T3,T4> >
+ : ::boost::mpl::true_
+ {
+ };
+
+ template <typename T0, typename T1, typename T2, typename T3, typename T4>
+ struct is_mutable_heap_selector<pairing_heap_selector<T0,T1,T2,T3,T4> >
+ : ::boost::mpl::true_
+ {
+ };
+
+ template <
+ typename T0
+ , typename T1
+ , typename T2
+ , typename T3
+ , typename T4
+ , typename T5
+ , typename T6
+ >
+ struct is_mutable_heap_selector<skew_heap_selector<T0,T1,T2,T3,T4,T5,T6> >
+ : ::boost::mpl::bool_<
+ ::boost::heap::detail::extract_mutable<
+ typename detail::skew_heap_selector_signature::bind<
+ T0
+ , T1
+ , T2
+ , T3
+ , T4
+ , T5
+ , T6
+ >::type
+ >::value
+ >
+ {
+ };
+} // namespace boost
+
+#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+
+#else // !defined BOOST_NO_SFINAE && !defined BOOST_MPL_CFG_NO_HAS_XXX
+
+#include <boost/mpl/aux_/has_type.hpp>
+#include <boost/mpl/if.hpp>
+#include <boost/container_gen/container_gen.hpp>
+#include <boost/detail/metafunction/is_mutable_heap.hpp>
+
+namespace boost { namespace detail { namespace metafunction {
+
+ template <typename Selector>
+ struct is_mutable_heap_selector_impl
+ : ::boost::detail::metafunction::is_mutable_heap<
+ typename container_gen<Selector,int>::type
+ >
+ {
+ };
+}}} // namespace boost::detail::metafunction
+
+//[reference__is_mutable_heap_selector
+namespace boost {
+
+ template <typename Selector>
+ struct is_mutable_heap_selector
+ //<-
+ : ::boost::mpl::if_<
+ typename ::boost::mpl::aux::has_type<
+ container_gen<Selector,int>
+ >::type
+ , detail::metafunction::is_mutable_heap_selector_impl<Selector>
+ , ::boost::mpl::false_
+ >::type
+ //->
+ {
+ // typedef ... type;
+ //<-
+ BOOST_MPL_AUX_LAMBDA_SUPPORT(1, is_mutable_heap_selector, (Selector))
+ //->
+ };
+} // namespace boost
+//]
+
+#endif // BOOST_NO_SFINAE, BOOST_MPL_CFG_NO_HAS_XXX
+
+#endif // BOOST_CONTAINER_GEN_IS_MUTABLE_HEAP_SELECTOR_HPP_INCLUDED
+

Added: sandbox/container_gen/boost/container_gen/is_order_iter_heap_selector.hpp
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ sandbox/container_gen/boost/container_gen/is_order_iter_heap_selector.hpp 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84957)
@@ -0,0 +1,141 @@
+//=============================================================================
+// 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)
+//=============================================================================
+
+#ifndef BOOST_CONTAINER_GEN_IS_ORDER_ITER_HEAP_SELECTOR_HPP_INCLUDED
+#define BOOST_CONTAINER_GEN_IS_ORDER_ITER_HEAP_SELECTOR_HPP_INCLUDED
+
+#include <boost/config.hpp>
+#include <boost/mpl/aux_/config/has_xxx.hpp>
+#include <boost/mpl/aux_/lambda_support.hpp>
+#include <boost/mpl/bool.hpp>
+
+#if defined BOOST_NO_SFINAE || defined BOOST_MPL_CFG_NO_HAS_XXX
+
+namespace boost {
+
+ template <typename Selector>
+ struct is_order_iteratable_heap_selector : ::boost::mpl::false_
+ {
+ BOOST_MPL_AUX_LAMBDA_SUPPORT(
+ 1
+ , is_order_iteratable_heap_selector
+ , (Selector)
+ )
+ };
+} // namespace boost
+
+#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+
+#include <boost/container_gen/selectors.hpp>
+
+namespace boost {
+
+ template <
+ typename T0
+ , typename T1
+ , typename T2
+ , typename T3
+ , typename T4
+ , typename T5
+ >
+ struct is_order_iteratable_heap_selector<
+ d_ary_heap_selector<T0,T1,T2,T3,T4,T5>
+ > : ::boost::mpl::true_
+ {
+ };
+
+ template <typename T0, typename T1, typename T2, typename T3>
+ struct is_order_iteratable_heap_selector<
+ binomial_heap_selector<T0,T1,T2,T3>
+ > : ::boost::mpl::true_
+ {
+ };
+
+ template <typename T0, typename T1, typename T2, typename T3, typename T4>
+ struct is_order_iteratable_heap_selector<
+ fibonacci_heap_selector<T0,T1,T2,T3,T4>
+ > : ::boost::mpl::true_
+ {
+ };
+
+ template <typename T0, typename T1, typename T2, typename T3, typename T4>
+ struct is_order_iteratable_heap_selector<
+ pairing_heap_selector<T0,T1,T2,T3,T4>
+ > : ::boost::mpl::true_
+ {
+ };
+
+ template <
+ typename T0
+ , typename T1
+ , typename T2
+ , typename T3
+ , typename T4
+ , typename T5
+ , typename T6
+ >
+ struct is_order_iteratable_heap_selector<
+ skew_heap_selector<T0,T1,T2,T3,T4,T5,T6>
+ > : ::boost::mpl::true_
+ {
+ };
+} // namespace boost
+
+#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+
+#else // !defined BOOST_NO_SFINAE && !defined BOOST_MPL_CFG_NO_HAS_XXX
+
+#include <boost/mpl/aux_/has_type.hpp>
+#include <boost/mpl/if.hpp>
+#include <boost/container_gen/container_gen.hpp>
+#include <boost/detail/metafunction/is_order_iteratable_heap.hpp>
+
+namespace boost { namespace detail { namespace metafunction {
+
+ template <typename Selector>
+ struct is_order_iteratable_heap_selector_impl
+ : ::boost::detail::metafunction::is_order_iteratable_heap<
+ typename container_gen<Selector,int>::type
+ >
+ {
+ };
+}}} // namespace boost::detail::metafunction
+
+//[reference__is_order_iteratable_heap_selector
+namespace boost {
+
+ template <typename Selector>
+ struct is_order_iteratable_heap_selector
+ //<-
+ : ::boost::mpl::if_<
+ typename ::boost::mpl::aux::has_type<
+ container_gen<Selector,int>
+ >::type
+ , detail::metafunction::is_order_iteratable_heap_selector_impl<
+ Selector
+ >
+ , ::boost::mpl::false_
+ >::type
+ //->
+ {
+ // typedef ... type;
+ //<-
+ BOOST_MPL_AUX_LAMBDA_SUPPORT(
+ 1
+ , is_order_iteratable_heap_selector
+ , (Selector)
+ )
+ //->
+ };
+} // namespace boost
+//]
+
+#endif // BOOST_NO_SFINAE, BOOST_MPL_CFG_NO_HAS_XXX
+
+#endif // BOOST_CONTAINER_GEN_IS_ORDER_ITER_HEAP_SELECTOR_HPP_INCLUDED
+

Added: sandbox/container_gen/boost/container_gen/is_ptr_selector.hpp
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ sandbox/container_gen/boost/container_gen/is_ptr_selector.hpp 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84957)
@@ -0,0 +1,196 @@
+//=============================================================================
+// 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)
+//=============================================================================
+
+#ifndef BOOST_CONTAINER_GEN_IS_PTR_SELECTOR_HPP_INCLUDED
+#define BOOST_CONTAINER_GEN_IS_PTR_SELECTOR_HPP_INCLUDED
+
+#include <boost/config.hpp>
+#include <boost/mpl/aux_/config/has_xxx.hpp>
+#include <boost/mpl/aux_/lambda_support.hpp>
+#include <boost/mpl/bool.hpp>
+
+#if defined BOOST_NO_SFINAE || defined BOOST_MPL_CFG_NO_HAS_XXX
+
+namespace boost {
+
+ template <typename Selector>
+ struct is_ptr_selector : ::boost::mpl::false_
+ {
+ BOOST_MPL_AUX_LAMBDA_SUPPORT(1, is_ptr_selector, (Selector))
+ };
+} // namespace boost
+
+#include <boost/container_gen/selectors.hpp>
+
+#if defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+
+namespace boost {
+
+#if !defined BOOST_MSVC
+ template <>
+ struct is_ptr_selector<ptr_array_selector_base> : ::boost::mpl::true_
+ {
+ };
+#endif
+
+ template <>
+ struct is_ptr_selector<ptr_vector_selector_base> : ::boost::mpl::true_
+ {
+ };
+
+ template <>
+ struct is_ptr_selector<ptr_deque_selector_base> : ::boost::mpl::true_
+ {
+ };
+
+ template <>
+ struct is_ptr_selector<ptr_list_selector_base> : ::boost::mpl::true_
+ {
+ };
+
+ template <>
+ struct is_ptr_selector<ptr_set_selector_base> : ::boost::mpl::true_
+ {
+ };
+
+ template <>
+ struct is_ptr_selector<ptr_map_selector_base> : ::boost::mpl::true_
+ {
+ };
+
+ template <>
+ struct is_ptr_selector<ptr_multiset_selector_base> : ::boost::mpl::true_
+ {
+ };
+
+ template <>
+ struct is_ptr_selector<ptr_multimap_selector_base> : ::boost::mpl::true_
+ {
+ };
+} // namespace boost
+
+#else // !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+
+namespace boost {
+
+#if !defined BOOST_MSVC
+ template <typename T0, typename T1>
+ struct is_ptr_selector<ptr_array_selector<T0,T1> > : ::boost::mpl::true_
+ {
+ };
+#endif
+
+ template <typename T0, typename T1>
+ struct is_ptr_selector<ptr_vector_selector<T0,T1> > : ::boost::mpl::true_
+ {
+ };
+
+ template <typename T0, typename T1>
+ struct is_ptr_selector<ptr_deque_selector<T0,T1> > : ::boost::mpl::true_
+ {
+ };
+
+ template <typename T0, typename T1>
+ struct is_ptr_selector<ptr_list_selector<T0,T1> > : ::boost::mpl::true_
+ {
+ };
+
+ template <typename T0, typename T1, typename T2>
+ struct is_ptr_selector<ptr_set_selector<T0,T1,T2> > : ::boost::mpl::true_
+ {
+ };
+
+ template <typename T0, typename T1, typename T2>
+ struct is_ptr_selector<ptr_map_selector<T0,T1,T2> > : ::boost::mpl::true_
+ {
+ };
+
+ template <typename T0, typename T1, typename T2>
+ struct is_ptr_selector<ptr_multiset_selector<T0,T1,T2> >
+ : ::boost::mpl::true_
+ {
+ };
+
+ template <typename T0, typename T1, typename T2>
+ struct is_ptr_selector<ptr_multimap_selector<T0,T1,T2> >
+ : ::boost::mpl::true_
+ {
+ };
+
+ template <typename T0, typename T1, typename T2, typename T3>
+ struct is_ptr_selector<ptr_hash_set_selector<T0,T1,T2,T3> >
+ : ::boost::mpl::true_
+ {
+ };
+
+ template <typename T0, typename T1, typename T2, typename T3>
+ struct is_ptr_selector<ptr_hash_map_selector<T0,T1,T2,T3> >
+ : ::boost::mpl::true_
+ {
+ };
+
+ template <typename T0, typename T1, typename T2, typename T3>
+ struct is_ptr_selector<ptr_hash_multiset_selector<T0,T1,T2,T3> >
+ : ::boost::mpl::true_
+ {
+ };
+
+ template <typename T0, typename T1, typename T2, typename T3>
+ struct is_ptr_selector<ptr_hash_multimap_selector<T0,T1,T2,T3> >
+ : ::boost::mpl::true_
+ {
+ };
+} // namespace boost
+
+#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+
+#else // !defined BOOST_NO_SFINAE && !defined BOOST_MPL_CFG_NO_HAS_XXX
+
+#include <boost/mpl/aux_/has_type.hpp>
+#include <boost/mpl/if.hpp>
+#include <boost/container_gen/container_gen.hpp>
+#include <boost/detail/metafunction/is_ptr_container.hpp>
+
+namespace boost { namespace detail { namespace metafunction {
+
+ template <typename Selector>
+ struct is_ptr_selector_impl
+ : ::boost::detail::metafunction::is_ptr_container<
+ typename container_gen<Selector,int>::type
+ >
+ {
+ };
+}}} // namespace boost::detail::metafunction
+
+//[reference__is_ptr_selector
+namespace boost {
+
+ template <typename Selector>
+ struct is_ptr_selector
+ //<-
+ : ::boost::mpl::if_<
+ typename ::boost::mpl::aux::has_type<
+ container_gen<Selector,int>
+ >::type
+ , detail::metafunction::is_ptr_selector_impl<Selector>
+ , ::boost::mpl::false_
+ >::type
+ //->
+ {
+ // typedef ... type;
+ //<-
+ BOOST_MPL_AUX_LAMBDA_SUPPORT(1, is_ptr_selector, (Selector))
+ //->
+ };
+} // namespace boost
+//]
+
+#endif // BOOST_NO_SFINAE, BOOST_MPL_CFG_NO_HAS_XXX
+
+#endif // BOOST_CONTAINER_GEN_IS_PTR_SELECTOR_HPP_INCLUDED
+

Added: sandbox/container_gen/boost/container_gen/is_queue_selector.hpp
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ sandbox/container_gen/boost/container_gen/is_queue_selector.hpp 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84957)
@@ -0,0 +1,97 @@
+//=============================================================================
+// 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)
+//=============================================================================
+
+#ifndef BOOST_CONTAINER_GEN_IS_QUEUE_SELECTOR_HPP_INCLUDED
+#define BOOST_CONTAINER_GEN_IS_QUEUE_SELECTOR_HPP_INCLUDED
+
+#include <boost/config.hpp>
+#include <boost/mpl/aux_/config/has_xxx.hpp>
+#include <boost/mpl/aux_/lambda_support.hpp>
+#include <boost/mpl/bool.hpp>
+
+#if defined BOOST_NO_SFINAE || defined BOOST_MPL_CFG_NO_HAS_XXX
+
+namespace boost {
+
+ template <typename Selector>
+ struct is_queue_selector : ::boost::mpl::false_
+ {
+ BOOST_MPL_AUX_LAMBDA_SUPPORT(1, is_queue_selector, (Selector))
+ };
+} // namespace boost
+
+#include <boost/container_gen/selectors.hpp>
+
+#if defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+
+namespace boost {
+
+ template <>
+ struct is_queue_selector<queue_selector_base> : ::boost::mpl::true_
+ {
+ };
+} // namespace boost
+
+#else // !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+
+namespace boost {
+
+ template <typename SequenceSelector>
+ struct is_queue_selector<queue_selector<SequenceSelector> >
+ : ::boost::mpl::true_
+ {
+ };
+} // namespace boost
+
+#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+
+#else // !defined BOOST_NO_SFINAE && !defined BOOST_MPL_CFG_NO_HAS_XXX
+
+#include <boost/mpl/aux_/has_type.hpp>
+#include <boost/mpl/if.hpp>
+#include <boost/container_gen/container_gen.hpp>
+#include <boost/detail/metafunction/is_queue.hpp>
+
+namespace boost { namespace detail { namespace metafunction {
+
+ template <typename Selector>
+ struct is_queue_selector_impl
+ : ::boost::detail::metafunction::is_queue<
+ typename container_gen<Selector,int>::type
+ >
+ {
+ };
+}}} // namespace boost::detail::metafunction
+
+//[reference__is_queue_selector
+namespace boost {
+
+ template <typename Selector>
+ struct is_queue_selector
+ //<-
+ : ::boost::mpl::if_<
+ typename ::boost::mpl::aux::has_type<
+ container_gen<Selector,int>
+ >::type
+ , detail::metafunction::is_queue_selector_impl<Selector>
+ , ::boost::mpl::false_
+ >::type
+ //->
+ {
+ // typedef ... type;
+ //<-
+ BOOST_MPL_AUX_LAMBDA_SUPPORT(1, is_queue_selector, (Selector))
+ //->
+ };
+} // namespace boost
+//]
+
+#endif // BOOST_NO_SFINAE, BOOST_MPL_CFG_NO_HAS_XXX
+
+#endif // BOOST_CONTAINER_GEN_IS_QUEUE_SELECTOR_HPP_INCLUDED
+

Added: sandbox/container_gen/boost/container_gen/is_random_access_selector.hpp
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ sandbox/container_gen/boost/container_gen/is_random_access_selector.hpp 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84957)
@@ -0,0 +1,173 @@
+//=============================================================================
+// 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)
+//=============================================================================
+
+#ifndef BOOST_CONTAINER_GEN_IS_RANDOM_ACCESS_SELECTOR_HPP_INCLUDED
+#define BOOST_CONTAINER_GEN_IS_RANDOM_ACCESS_SELECTOR_HPP_INCLUDED
+
+#include <boost/config.hpp>
+#include <boost/mpl/aux_/config/has_xxx.hpp>
+#include <boost/mpl/aux_/lambda_support.hpp>
+#include <boost/mpl/bool.hpp>
+
+#if defined BOOST_NO_SFINAE || defined BOOST_MPL_CFG_NO_HAS_XXX
+
+namespace boost {
+
+ template <typename Selector>
+ struct is_random_access_selector : ::boost::mpl::false_
+ {
+ BOOST_MPL_AUX_LAMBDA_SUPPORT(1,is_random_access_selector,(Selector))
+ };
+} // namespace boost
+
+#include <boost/container_gen/selectors.hpp>
+
+#if defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+
+namespace boost {
+
+#if !defined BOOST_MSVC
+ template <>
+ struct is_random_access_selector<array_selector_base>
+ : ::boost::mpl::true_
+ {
+ };
+#endif
+
+ template <>
+ struct is_random_access_selector<vector_selector_base>
+ : ::boost::mpl::true_
+ {
+ };
+
+ template <>
+ struct is_random_access_selector<deque_selector_base>
+ : ::boost::mpl::true_
+ {
+ };
+
+#if !defined BOOST_MSVC
+ template <>
+ struct is_random_access_selector<ptr_array_selector_base>
+ : ::boost::mpl::true_
+ {
+ };
+#endif
+
+ template <>
+ struct is_random_access_selector<ptr_vector_selector_base>
+ : ::boost::mpl::true_
+ {
+ };
+
+ template <>
+ struct is_random_access_selector<ptr_deque_selector_base>
+ : ::boost::mpl::true_
+ {
+ };
+} // namespace boost
+
+#else // !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+
+namespace boost {
+
+#if !defined BOOST_MSVC
+ template <typename T0, typename T1>
+ struct is_random_access_selector<array_selector<T0,T1> >
+ : ::boost::mpl::true_
+ {
+ };
+#endif
+
+ template <typename T0, typename T1>
+ struct is_random_access_selector<vector_selector<T0,T1> >
+ : ::boost::mpl::true_
+ {
+ };
+
+ template <typename AllocatorSelector>
+ struct is_random_access_selector<
+ stable_vector_selector<AllocatorSelector>
+ > : ::boost::mpl::true_
+ {
+ };
+
+ template <typename T0, typename T1>
+ struct is_random_access_selector<deque_selector<T0,T1> >
+ : ::boost::mpl::true_
+ {
+ };
+
+#if !defined BOOST_MSVC
+ template <typename T0, typename T1>
+ struct is_random_access_selector<ptr_array_selector<T0,T1> >
+ : ::boost::mpl::true_
+ {
+ };
+#endif
+
+ template <typename T0, typename T1>
+ struct is_random_access_selector<ptr_vector_selector<T0,T1> >
+ : ::boost::mpl::true_
+ {
+ };
+
+ template <typename T0, typename T1>
+ struct is_random_access_selector<ptr_deque_selector<T0,T1> >
+ : ::boost::mpl::true_
+ {
+ };
+} // namespace boost
+
+#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+
+#else // !defined BOOST_NO_SFINAE && !defined BOOST_MPL_CFG_NO_HAS_XXX
+
+#include <boost/mpl/aux_/has_type.hpp>
+#include <boost/mpl/if.hpp>
+#include <boost/container_gen/container_gen.hpp>
+#include <boost/detail/metafunction/is_random_access_container.hpp>
+
+namespace boost { namespace detail { namespace metafunction {
+
+ template <typename Selector>
+ struct is_random_access_selector_impl
+ : ::boost::detail::metafunction::is_random_access_container<
+ typename container_gen<Selector,int>::type
+ >
+ {
+ };
+}}} // namespace boost::detail::metafunction
+
+//[reference__is_random_access_selector
+namespace boost {
+
+ template <typename Selector>
+ struct is_random_access_selector
+ //<-
+ : ::boost::mpl::if_<
+ typename ::boost::mpl::aux::has_type<
+ container_gen<Selector,int>
+ >::type
+ , detail::metafunction::is_random_access_selector_impl<Selector>
+ , ::boost::mpl::false_
+ >::type
+ //->
+ {
+ // typedef ... type;
+ //<-
+ BOOST_MPL_AUX_LAMBDA_SUPPORT(1,is_random_access_selector,(Selector))
+ //->
+ };
+} // namespace boost
+//]
+
+#endif // BOOST_NO_SFINAE, BOOST_MPL_CFG_NO_HAS_XXX
+
+#endif // BOOST_CONTAINER_GEN_IS_RANDOM_ACCESS_SELECTOR_HPP_INCLUDED
+

Added: sandbox/container_gen/boost/container_gen/is_recursive_selector.hpp
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ sandbox/container_gen/boost/container_gen/is_recursive_selector.hpp 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84957)
@@ -0,0 +1,212 @@
+//=============================================================================
+// 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)
+//=============================================================================
+
+#ifndef BOOST_CONTAINER_GEN_IS_RECURSIVE_SELECTOR_HPP_INCLUDED
+#define BOOST_CONTAINER_GEN_IS_RECURSIVE_SELECTOR_HPP_INCLUDED
+
+#include <boost/config.hpp>
+#include <boost/mpl/aux_/lambda_support.hpp>
+#include <boost/container_gen/is_ptr_selector.hpp>
+
+#if defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+
+//[reference__is_recursive_selector
+namespace boost {
+
+ template <typename Selector>
+ struct is_recursive_selector
+ //<-
+ : is_ptr_selector<Selector>
+ //->
+ {
+ // typedef ... type;
+ //<-
+ BOOST_MPL_AUX_LAMBDA_SUPPORT(1, is_recursive_selector, (Selector))
+ //->
+ };
+} // namespace boost
+//]
+
+#else // !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+
+#include <boost/mpl/bool.hpp>
+#include <boost/mpl/if.hpp>
+#include <boost/parameter.hpp>
+#include <boost/container_gen/is_hashed_assoc_selector.hpp>
+#include <boost/container_gen/selectors.hpp>
+#include <boost/container_gen/selector_keywords.hpp>
+#include <boost/container_gen/detail/selector_signatures.hpp>
+
+namespace boost {
+
+ template <typename Selector>
+ struct is_recursive_selector
+ : ::boost::mpl::if_<
+ is_ptr_selector<Selector>
+ , ::boost::mpl::true_
+ , is_hashed_associative_selector<Selector>
+ >::type
+ {
+ BOOST_MPL_AUX_LAMBDA_SUPPORT(1, is_recursive_selector, (Selector))
+ };
+
+ template <typename T0, typename T1>
+ struct is_recursive_selector<vector_selector<T0,T1> >
+ : ::boost::mpl::if_<
+ typename ::boost::parameter::value_type<
+ typename detail::sequence_selector_signature::bind<T0,T1>::type
+ , ::boost::is_boost_not_std_tag
+ , ::boost::mpl::false_
+ >::type
+ , ::boost::mpl::true_
+ , ::boost::mpl::false_
+ >::type
+ {
+ };
+
+ template <typename T0, typename T1>
+ struct is_recursive_selector<deque_selector<T0,T1> >
+ : ::boost::mpl::if_<
+ typename ::boost::parameter::value_type<
+ typename detail::sequence_selector_signature::bind<T0,T1>::type
+ , ::boost::is_boost_not_std_tag
+ , ::boost::mpl::false_
+ >::type
+ , ::boost::mpl::true_
+ , ::boost::mpl::false_
+ >::type
+ {
+ };
+
+ template <typename T0, typename T1>
+ struct is_recursive_selector<list_selector<T0,T1> >
+ : ::boost::mpl::if_<
+ typename ::boost::parameter::value_type<
+ typename detail::sequence_selector_signature::bind<T0,T1>::type
+ , ::boost::is_boost_not_std_tag
+ , ::boost::mpl::false_
+ >::type
+ , ::boost::mpl::true_
+ , ::boost::mpl::false_
+ >::type
+ {
+ };
+
+ template <typename AllocatorSelector>
+ struct is_recursive_selector<stable_vector_selector<AllocatorSelector> >
+ : ::boost::mpl::true_
+ {
+ };
+
+ template <typename AllocatorSelector>
+ struct is_recursive_selector<slist_selector<AllocatorSelector> >
+ : ::boost::mpl::true_
+ {
+ };
+
+ template <typename T0, typename T1, typename T2>
+ struct is_recursive_selector<set_selector<T0,T1,T2> >
+ : ::boost::mpl::if_<
+ typename ::boost::parameter::value_type<
+ typename detail::boost_or_std_assoc_selector_signature::bind<
+ T0
+ , T1
+ , T2
+ >::type
+ , ::boost::is_boost_not_std_tag
+ , ::boost::mpl::false_
+ >::type
+ , ::boost::mpl::true_
+ , ::boost::mpl::false_
+ >::type
+ {
+ };
+
+ template <typename T0, typename T1, typename T2>
+ struct is_recursive_selector<map_selector<T0,T1,T2> >
+ : ::boost::mpl::if_<
+ typename ::boost::parameter::value_type<
+ typename detail::boost_or_std_assoc_selector_signature::bind<
+ T0
+ , T1
+ , T2
+ >::type
+ , ::boost::is_boost_not_std_tag
+ , ::boost::mpl::false_
+ >::type
+ , ::boost::mpl::true_
+ , ::boost::mpl::false_
+ >::type
+ {
+ };
+
+ template <typename T0, typename T1, typename T2>
+ struct is_recursive_selector<multiset_selector<T0,T1,T2> >
+ : ::boost::mpl::if_<
+ typename ::boost::parameter::value_type<
+ typename detail::boost_or_std_assoc_selector_signature::bind<
+ T0
+ , T1
+ , T2
+ >::type
+ , ::boost::is_boost_not_std_tag
+ , ::boost::mpl::false_
+ >::type
+ , ::boost::mpl::true_
+ , ::boost::mpl::false_
+ >::type
+ {
+ };
+
+ template <typename T0, typename T1, typename T2>
+ struct is_recursive_selector<multimap_selector<T0,T1,T2> >
+ : ::boost::mpl::if_<
+ typename ::boost::parameter::value_type<
+ typename detail::boost_or_std_assoc_selector_signature::bind<
+ T0
+ , T1
+ , T2
+ >::type
+ , ::boost::is_boost_not_std_tag
+ , ::boost::mpl::false_
+ >::type
+ , ::boost::mpl::true_
+ , ::boost::mpl::false_
+ >::type
+ {
+ };
+
+ template <typename T0, typename T1>
+ struct is_recursive_selector<flat_set_selector<T0,T1> >
+ : ::boost::mpl::true_
+ {
+ };
+
+ template <typename T0, typename T1>
+ struct is_recursive_selector<flat_map_selector<T0,T1> >
+ : ::boost::mpl::true_
+ {
+ };
+
+ template <typename T0, typename T1>
+ struct is_recursive_selector<flat_multiset_selector<T0,T1> >
+ : ::boost::mpl::true_
+ {
+ };
+
+ template <typename T0, typename T1>
+ struct is_recursive_selector<flat_multimap_selector<T0,T1> >
+ : ::boost::mpl::true_
+ {
+ };
+} // namespace boost
+
+#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+
+#endif // BOOST_CONTAINER_GEN_IS_RECURSIVE_SELECTOR_HPP_INCLUDED
+

Added: sandbox/container_gen/boost/container_gen/is_reversible_selector.hpp
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ sandbox/container_gen/boost/container_gen/is_reversible_selector.hpp 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84957)
@@ -0,0 +1,261 @@
+//=============================================================================
+// 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)
+//=============================================================================
+
+#ifndef BOOST_CONTAINER_GEN_IS_REVERSIBLE_SELECTOR_HPP_INCLUDED
+#define BOOST_CONTAINER_GEN_IS_REVERSIBLE_SELECTOR_HPP_INCLUDED
+
+#include <boost/config.hpp>
+#include <boost/mpl/aux_/config/has_xxx.hpp>
+#include <boost/mpl/aux_/lambda_support.hpp>
+#include <boost/mpl/bool.hpp>
+
+#if defined BOOST_NO_SFINAE || defined BOOST_MPL_CFG_NO_HAS_XXX
+
+namespace boost {
+
+ template <typename Selector>
+ struct is_reversible_selector : ::boost::mpl::true_
+ {
+ BOOST_MPL_AUX_LAMBDA_SUPPORT(1,is_reversible_selector,(Selector))
+ };
+} // namespace boost
+
+#include <boost/container_gen/selectors.hpp>
+
+#if defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+
+namespace boost {
+
+#if !defined BOOST_NO_SLIST
+ template <>
+ struct is_reversible_selector<slist_selector_base>
+ : ::boost::mpl::false_
+ {
+ };
+#endif
+
+#if defined BOOST_HAS_HASH
+ template <>
+ struct is_reversible_selector<hash_set_selector_base>
+ : ::boost::mpl::false_
+ {
+ };
+
+ template <>
+ struct is_reversible_selector<hash_map_selector_base>
+ : ::boost::mpl::false_
+ {
+ };
+
+ template <>
+ struct is_reversible_selector<hash_multiset_selector_base>
+ : ::boost::mpl::false_
+ {
+ };
+
+ template <>
+ struct is_reversible_selector<hash_multimap_selector_base>
+ : ::boost::mpl::false_
+ {
+ };
+#endif // BOOST_HAS_HASH
+
+ template <>
+ struct is_reversible_selector<stack_selector_base>
+ : ::boost::mpl::false_
+ {
+ };
+
+ template <>
+ struct is_reversible_selector<queue_selector_base>
+ : ::boost::mpl::false_
+ {
+ };
+
+ template <>
+ struct is_reversible_selector<std_heap_selector_base>
+ : ::boost::mpl::false_
+ {
+ };
+} // namespace boost
+
+#else // !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+
+namespace boost {
+
+ template <typename AllocatorSelector>
+ struct is_reversible_selector<slist_selector<AllocatorSelector> >
+ : ::boost::mpl::false_
+ {
+ };
+
+ template <typename T0, typename T1, typename T2, typename T3>
+ struct is_reversible_selector<hash_set_selector<T0,T1,T2,T3> >
+ : ::boost::mpl::false_
+ {
+ };
+
+ template <typename T0, typename T1, typename T2, typename T3>
+ struct is_reversible_selector<hash_map_selector<T0,T1,T2,T3> >
+ : ::boost::mpl::false_
+ {
+ };
+
+ template <typename T0, typename T1, typename T2, typename T3>
+ struct is_reversible_selector<hash_multiset_selector<T0,T1,T2,T3> >
+ : ::boost::mpl::false_
+ {
+ };
+
+ template <typename T0, typename T1, typename T2, typename T3>
+ struct is_reversible_selector<hash_multimap_selector<T0,T1,T2,T3> >
+ : ::boost::mpl::false_
+ {
+ };
+
+ template <typename T0, typename T1, typename T2, typename T3>
+ struct is_reversible_selector<ptr_hash_set_selector<T0,T1,T2,T3> >
+ : ::boost::mpl::false_
+ {
+ };
+
+ template <typename T0, typename T1, typename T2, typename T3>
+ struct is_reversible_selector<ptr_hash_map_selector<T0,T1,T2,T3> >
+ : ::boost::mpl::false_
+ {
+ };
+
+ template <typename T0, typename T1, typename T2, typename T3>
+ struct is_reversible_selector<ptr_hash_multiset_selector<T0,T1,T2,T3> >
+ : ::boost::mpl::false_
+ {
+ };
+
+ template <typename T0, typename T1, typename T2, typename T3>
+ struct is_reversible_selector<ptr_hash_multimap_selector<T0,T1,T2,T3> >
+ : ::boost::mpl::false_
+ {
+ };
+
+ template <typename ContainerSelector>
+ struct is_reversible_selector<stack_selector<ContainerSelector> >
+ : ::boost::mpl::false_
+ {
+ };
+
+ template <typename ContainerSelector>
+ struct is_reversible_selector<queue_selector<ContainerSelector> >
+ : ::boost::mpl::false_
+ {
+ };
+
+ template <typename T0, typename T1>
+ struct is_reversible_selector<std_heap_selector<T0,T1> >
+ : ::boost::mpl::false_
+ {
+ };
+
+ template <typename T0, typename T1, typename T2, typename T3>
+ struct is_reversible_selector<priority_queue_selector<T0,T1,T2,T3> >
+ : ::boost::mpl::false_
+ {
+ };
+
+ template <
+ typename T0
+ , typename T1
+ , typename T2
+ , typename T3
+ , typename T4
+ , typename T5
+ >
+ struct is_reversible_selector<d_ary_heap_selector<T0,T1,T2,T3,T4,T5> >
+ : ::boost::mpl::false_
+ {
+ };
+
+ template <typename T0, typename T1, typename T2, typename T3>
+ struct is_reversible_selector<binomial_heap_selector<T0,T1,T2,T3> >
+ : ::boost::mpl::false_
+ {
+ };
+
+ template <typename T0, typename T1, typename T2, typename T3, typename T4>
+ struct is_reversible_selector<fibonacci_heap_selector<T0,T1,T2,T3,T4> >
+ : ::boost::mpl::false_
+ {
+ };
+
+ template <typename T0, typename T1, typename T2, typename T3, typename T4>
+ struct is_reversible_selector<pairing_heap_selector<T0,T1,T2,T3,T4> >
+ : ::boost::mpl::false_
+ {
+ };
+
+ template <
+ typename T0
+ , typename T1
+ , typename T2
+ , typename T3
+ , typename T4
+ , typename T5
+ , typename T6
+ >
+ struct is_reversible_selector<skew_heap_selector<T0,T1,T2,T3,T4,T5,T6> >
+ : ::boost::mpl::false_
+ {
+ };
+} // namespace boost
+
+#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+
+#else // !defined BOOST_NO_SFINAE && !defined BOOST_MPL_CFG_NO_HAS_XXX
+
+#include <boost/mpl/aux_/has_type.hpp>
+#include <boost/mpl/if.hpp>
+#include <boost/container_gen/container_gen.hpp>
+#include <boost/detail/metafunction/is_reversible_container.hpp>
+
+namespace boost { namespace detail { namespace metafunction {
+
+ template <typename Selector>
+ struct is_reversible_selector_impl
+ : ::boost::detail::metafunction::is_reversible_container<
+ typename container_gen<Selector,int>::type
+ >
+ {
+ };
+}}} // namespace boost::detail::metafunction
+
+//[reference__is_reversible_selector
+namespace boost {
+
+ template <typename Selector>
+ struct is_reversible_selector
+ //<-
+ : ::boost::mpl::if_<
+ typename ::boost::mpl::aux::has_type<
+ container_gen<Selector,int>
+ >::type
+ , detail::metafunction::is_reversible_selector_impl<Selector>
+ , ::boost::mpl::false_
+ >::type
+ //->
+ {
+ // typedef ... type;
+ //<-
+ BOOST_MPL_AUX_LAMBDA_SUPPORT(1,is_reversible_selector,(Selector))
+ //->
+ };
+} // namespace boost
+//]
+
+#endif // BOOST_NO_SFINAE, BOOST_MPL_CFG_NO_HAS_XXX
+
+#endif // BOOST_CONTAINER_GEN_IS_REVERSIBLE_SELECTOR_HPP_INCLUDED
+

Added: sandbox/container_gen/boost/container_gen/is_stack_selector.hpp
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ sandbox/container_gen/boost/container_gen/is_stack_selector.hpp 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84957)
@@ -0,0 +1,58 @@
+//=============================================================================
+// 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)
+//=============================================================================
+
+#ifndef BOOST_CONTAINER_GEN_IS_STACK_SELECTOR_HPP_INCLUDED
+#define BOOST_CONTAINER_GEN_IS_STACK_SELECTOR_HPP_INCLUDED
+
+#include <boost/config.hpp>
+#include <boost/mpl/bool.hpp>
+#include <boost/mpl/aux_/lambda_support.hpp>
+#include <boost/container_gen/selectors.hpp>
+
+//[reference__is_stack_selector
+namespace boost {
+
+ template <typename Selector>
+ struct is_stack_selector
+ //<-
+ : ::boost::mpl::false_
+ //->
+ {
+ // typedef ... type;
+ //<-
+ BOOST_MPL_AUX_LAMBDA_SUPPORT(1, is_stack_selector, (Selector))
+ //->
+ };
+} // namespace boost
+//]
+
+#if defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+
+namespace boost {
+
+ template <>
+ struct is_stack_selector<stack_selector_base> : ::boost::mpl::true_
+ {
+ };
+} // namespace boost
+
+#else // !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+
+namespace boost {
+
+ template <typename SequenceSelector>
+ struct is_stack_selector<stack_selector<SequenceSelector> >
+ : ::boost::mpl::true_
+ {
+ };
+} // namespace boost
+
+#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+
+#endif // BOOST_CONTAINER_GEN_IS_STACK_SELECTOR_HPP_INCLUDED
+

Added: sandbox/container_gen/boost/container_gen/is_std_heap_selector.hpp
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ sandbox/container_gen/boost/container_gen/is_std_heap_selector.hpp 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84957)
@@ -0,0 +1,59 @@
+//=============================================================================
+// 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)
+//=============================================================================
+
+#ifndef BOOST_CONTAINER_GEN_IS_STD_HEAP_SELECTOR_HPP_INCLUDED
+#define BOOST_CONTAINER_GEN_IS_STD_HEAP_SELECTOR_HPP_INCLUDED
+
+#include <boost/config.hpp>
+#include <boost/mpl/bool.hpp>
+#include <boost/mpl/aux_/lambda_support.hpp>
+#include <boost/container_gen/selectors.hpp>
+
+//[reference__is_std_heap_selector
+namespace boost {
+
+ template <typename Selector>
+ struct is_std_heap_selector
+ //<-
+ : ::boost::mpl::false_
+ //->
+ {
+ // typedef ... type;
+ //<-
+ BOOST_MPL_AUX_LAMBDA_SUPPORT(1, is_std_heap_selector, (Selector))
+ //->
+ };
+} // namespace boost
+//]
+
+#if defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+
+namespace boost {
+
+ template <>
+ struct is_std_heap_selector<std_heap_selector_base> : ::boost::mpl::true_
+ {
+ };
+} // namespace boost
+
+#else // !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+
+namespace boost {
+
+ template <typename CompareSelector, typename SequenceSelector>
+ struct is_std_heap_selector<
+ std_heap_selector<CompareSelector,SequenceSelector>
+ > : ::boost::mpl::true_
+ {
+ };
+} // namespace boost
+
+#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+
+#endif // BOOST_CONTAINER_GEN_IS_STD_HEAP_SELECTOR_HPP_INCLUDED
+

Added: sandbox/container_gen/boost/container_gen/is_tr1_selector.hpp
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ sandbox/container_gen/boost/container_gen/is_tr1_selector.hpp 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84957)
@@ -0,0 +1,153 @@
+//=============================================================================
+// 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)
+//=============================================================================
+
+#ifndef BOOST_CONTAINER_GEN_IS_TR1_SELECTOR_HPP_INCLUDED
+#define BOOST_CONTAINER_GEN_IS_TR1_SELECTOR_HPP_INCLUDED
+
+#include <boost/mpl/bool.hpp>
+#include <boost/mpl/aux_/lambda_support.hpp>
+#include <boost/container_gen/selectors.hpp>
+
+//[reference__is_tr1_selector
+namespace boost {
+
+ template <typename Selector>
+ struct is_tr1_selector
+ //<-
+ : ::boost::mpl::false_
+ //->
+ {
+ // typedef ... type;
+ //<-
+ BOOST_MPL_AUX_LAMBDA_SUPPORT(1, is_tr1_selector, (Selector))
+ //->
+ };
+} // namespace boost
+//]
+
+#include <boost/config.hpp>
+
+namespace boost {
+
+ template <>
+ struct is_tr1_selector<tr1_hash_selector> : ::boost::mpl::true_
+ {
+ };
+} // namespace boost
+
+#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+
+#include <boost/mpl/if.hpp>
+#include <boost/parameter.hpp>
+#include <boost/container_gen/selector_keywords.hpp>
+#include <boost/container_gen/detail/selector_signatures.hpp>
+
+namespace boost {
+
+ template <>
+ struct is_tr1_selector<tr1_binary_predicate_selector> : ::boost::mpl::true_
+ {
+ };
+
+#if !defined BOOST_MSVC
+ template <typename T0, typename T1>
+ struct is_tr1_selector<array_selector<T0,T1> >
+ : ::boost::mpl::if_<
+ typename ::boost::parameter::value_type<
+ typename detail::array_selector_signature::bind<T0,T1>::type
+ , ::boost::is_tr1_not_boost_tag
+ , ::boost::mpl::false_
+ >::type
+ , ::boost::mpl::true_
+ , ::boost::mpl::false_
+ >::type
+ {
+ };
+#endif
+
+ template <typename T0, typename T1, typename T2, typename T3>
+ struct is_tr1_selector<hash_set_selector<T0,T1,T2,T3> >
+ : ::boost::mpl::if_<
+ typename ::boost::parameter::value_type<
+ typename detail::hashed_associative_selector_signature::bind<
+ T0
+ , T1
+ , T2
+ , T3
+ >::type
+ , ::boost::is_tr1_not_boost_tag
+ , ::boost::mpl::false_
+ >::type
+ , ::boost::mpl::true_
+ , ::boost::mpl::false_
+ >::type
+ {
+ };
+
+ template <typename T0, typename T1, typename T2, typename T3>
+ struct is_tr1_selector<hash_map_selector<T0,T1,T2,T3> >
+ : ::boost::mpl::if_<
+ typename ::boost::parameter::value_type<
+ typename detail::hashed_associative_selector_signature::bind<
+ T0
+ , T1
+ , T2
+ , T3
+ >::type
+ , ::boost::is_tr1_not_boost_tag
+ , ::boost::mpl::false_
+ >::type
+ , ::boost::mpl::true_
+ , ::boost::mpl::false_
+ >::type
+ {
+ };
+
+ template <typename T0, typename T1, typename T2, typename T3>
+ struct is_tr1_selector<hash_multiset_selector<T0,T1,T2,T3> >
+ : ::boost::mpl::if_<
+ typename ::boost::parameter::value_type<
+ typename detail::hashed_associative_selector_signature::bind<
+ T0
+ , T1
+ , T2
+ , T3
+ >::type
+ , ::boost::is_tr1_not_boost_tag
+ , ::boost::mpl::false_
+ >::type
+ , ::boost::mpl::true_
+ , ::boost::mpl::false_
+ >::type
+ {
+ };
+
+ template <typename T0, typename T1, typename T2, typename T3>
+ struct is_tr1_selector<hash_multimap_selector<T0,T1,T2,T3> >
+ : ::boost::mpl::if_<
+ typename ::boost::parameter::value_type<
+ typename detail::hashed_associative_selector_signature::bind<
+ T0
+ , T1
+ , T2
+ , T3
+ >::type
+ , ::boost::is_tr1_not_boost_tag
+ , ::boost::mpl::false_
+ >::type
+ , ::boost::mpl::true_
+ , ::boost::mpl::false_
+ >::type
+ {
+ };
+} // namespace boost
+
+#endif // !BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+
+#endif // BOOST_CONTAINER_GEN_IS_TR1_SELECTOR_HPP_INCLUDED
+

Added: sandbox/container_gen/boost/container_gen/is_unique_assoc_selector.hpp
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ sandbox/container_gen/boost/container_gen/is_unique_assoc_selector.hpp 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84957)
@@ -0,0 +1,194 @@
+//=============================================================================
+// 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)
+//=============================================================================
+
+#ifndef BOOST_CONTAINER_GEN_IS_UNIQUE_ASSOC_SELECTOR_HPP_INCLUDED
+#define BOOST_CONTAINER_GEN_IS_UNIQUE_ASSOC_SELECTOR_HPP_INCLUDED
+
+#include <boost/config.hpp>
+#include <boost/mpl/aux_/lambda_support.hpp>
+#include <boost/mpl/bool.hpp>
+#include <boost/typeof/typeof.hpp>
+
+#if defined BOOST_NO_SFINAE || defined BOOST_MPL_CFG_NO_HAS_XXX || \
+ defined BOOST_TYPEOF_EMULATION
+
+namespace boost {
+
+ template <typename Selector>
+ struct is_unique_associative_selector : ::boost::mpl::false_
+ {
+ BOOST_MPL_AUX_LAMBDA_SUPPORT(
+ 1
+ , is_unique_associative_selector
+ , (Selector)
+ )
+ };
+} // namespace boost
+
+#include <boost/container_gen/selectors.hpp>
+
+#if defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+
+namespace boost {
+
+ template <>
+ struct is_unique_associative_selector<set_selector_base>
+ : ::boost::mpl::true_
+ {
+ };
+
+ template <>
+ struct is_unique_associative_selector<map_selector_base>
+ : ::boost::mpl::true_
+ {
+ };
+
+ template <>
+ struct is_unique_associative_selector<ptr_set_selector_base>
+ : ::boost::mpl::true_
+ {
+ };
+
+ template <>
+ struct is_unique_associative_selector<ptr_map_selector_base>
+ : ::boost::mpl::true_
+ {
+ };
+
+#if defined BOOST_HAS_HASH
+ template <>
+ struct is_unique_associative_selector<hash_set_selector_base>
+ : ::boost::mpl::true_
+ {
+ };
+
+ template <>
+ struct is_unique_associative_selector<hash_map_selector_base>
+ : ::boost::mpl::true_
+ {
+ };
+#endif // BOOST_HAS_HASH
+} // namespace boost
+
+#else // !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+
+namespace boost {
+
+ template <typename T0, typename T1, typename T2>
+ struct is_unique_associative_selector<set_selector<T0,T1,T2> >
+ : ::boost::mpl::true_
+ {
+ };
+
+ template <typename T0, typename T1, typename T2>
+ struct is_unique_associative_selector<map_selector<T0,T1,T2> >
+ : ::boost::mpl::true_
+ {
+ };
+
+ template <typename T0, typename T1>
+ struct is_unique_associative_selector<flat_set_selector<T0,T1> >
+ : ::boost::mpl::true_
+ {
+ };
+
+ template <typename T0, typename T1>
+ struct is_unique_associative_selector<flat_map_selector<T0,T1> >
+ : ::boost::mpl::true_
+ {
+ };
+
+ template <typename T0, typename T1, typename T2, typename T3>
+ struct is_unique_associative_selector<hash_set_selector<T0,T1,T2,T3> >
+ : ::boost::mpl::true_
+ {
+ };
+
+ template <typename T0, typename T1, typename T2, typename T3>
+ struct is_unique_associative_selector<hash_map_selector<T0,T1,T2,T3> >
+ : ::boost::mpl::true_
+ {
+ };
+
+ template <typename T0, typename T1, typename T2>
+ struct is_unique_associative_selector<ptr_set_selector<T0,T1,T2> >
+ : ::boost::mpl::true_
+ {
+ };
+
+ template <typename T0, typename T1, typename T2>
+ struct is_unique_associative_selector<ptr_map_selector<T0,T1,T2> >
+ : ::boost::mpl::true_
+ {
+ };
+
+ template <typename T0, typename T1, typename T2, typename T3>
+ struct is_unique_associative_selector<ptr_hash_set_selector<T0,T1,T2,T3> >
+ : ::boost::mpl::true_
+ {
+ };
+
+ template <typename T0, typename T1, typename T2, typename T3>
+ struct is_unique_associative_selector<ptr_hash_map_selector<T0,T1,T2,T3> >
+ : ::boost::mpl::true_
+ {
+ };
+} // namespace boost
+
+#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+
+#else // !defined BOOST_NO_SFINAE && !defined BOOST_MPL_CFG_NO_HAS_XXX && \
+// !defined BOOST_TYPEOF_EMULATION
+
+#include <boost/mpl/aux_/has_type.hpp>
+#include <boost/mpl/if.hpp>
+#include <boost/container_gen/container_gen.hpp>
+#include <boost/detail/metafunction/is_unique_assoc_container.hpp>
+
+namespace boost { namespace detail { namespace metafunction {
+
+ template <typename Selector>
+ struct is_unique_associative_selector_impl
+ : ::boost::detail::metafunction::is_unique_associative_container<
+ typename container_gen<Selector,int>::type
+ >
+ {
+ };
+}}} // namespace boost::detail::metafunction
+
+//[reference__is_unique_associative_selector
+namespace boost {
+
+ template <typename Selector>
+ struct is_unique_associative_selector
+ //<-
+ : ::boost::mpl::if_<
+ typename ::boost::mpl::aux::has_type<
+ container_gen<Selector,int>
+ >::type
+ , detail::metafunction::is_unique_associative_selector_impl<Selector>
+ , ::boost::mpl::false_
+ >::type
+ //->
+ {
+ // typedef ... type;
+ //<-
+ BOOST_MPL_AUX_LAMBDA_SUPPORT(
+ 1
+ , is_unique_associative_selector
+ , (Selector)
+ )
+ //->
+ };
+} // namespace boost
+//]
+
+#endif // BOOST_NO_SFINAE, BOOST_MPL_CFG_NO_HAS_XXX, BOOST_TYPEOF_EMULATION
+
+#endif // BOOST_CONTAINER_GEN_IS_UNIQUE_ASSOC_SELECTOR_HPP_INCLUDED
+

Added: sandbox/container_gen/boost/container_gen/push_range_function_gen.hpp
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ sandbox/container_gen/boost/container_gen/push_range_function_gen.hpp 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84957)
@@ -0,0 +1,705 @@
+//=======================================================================
+// 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)
+//=======================================================================
+
+#ifndef BOOST_CONTAINER_GEN_PUSH_RANGE_FUNCTION_GEN_HPP_INCLUDED
+#define BOOST_CONTAINER_GEN_PUSH_RANGE_FUNCTION_GEN_HPP_INCLUDED
+
+#include <deque>
+#include <utility>
+#include <boost/range.hpp>
+
+namespace boost { namespace detail {
+
+ template <typename F, typename C>
+ class push_range_function_proxy
+ {
+ C& _container;
+
+ public:
+ explicit push_range_function_proxy(C& c);
+
+ template <typename Itr>
+ push_range_function_proxy& operator()(Itr itr, Itr itr_end);
+
+ template <typename InputRange>
+ push_range_function_proxy& operator()(InputRange const& r);
+ };
+
+ template <typename F, typename C>
+ push_range_function_proxy<F,C>::push_range_function_proxy(C& c)
+ : _container(c)
+ {
+ }
+
+ template <typename F, typename C>
+ template <typename Itr>
+ inline push_range_function_proxy<F,C>&
+ push_range_function_proxy<F,C>::operator()(Itr itr, Itr itr_end)
+ {
+ F::evaluate(this->_container, itr, itr_end);
+ return *this;
+ }
+
+ template <typename F, typename C>
+ template <typename InputRange>
+ inline push_range_function_proxy<F,C>&
+ push_range_function_proxy<F,C>::operator()(InputRange const& r)
+ {
+ F::evaluate(this->_container, ::boost::begin(r), ::boost::end(r));
+ return *this;
+ }
+
+ struct fis_push_range_function
+ {
+ template <typename C>
+ push_range_function_proxy<fis_push_range_function,C>
+ operator[](C& _container) const;
+
+ template <typename C, typename InputRange>
+ ::std::pair<typename C::iterator,typename C::iterator>
+ operator()(C& _container, InputRange const& r) const;
+
+ template <typename C, typename Itr>
+ ::std::pair<typename C::iterator,typename C::iterator>
+ operator()(C& _container, Itr itr, Itr itr_end) const;
+
+ template <typename C, typename Itr>
+ static void evaluate(C& _container, Itr itr, Itr itr_end);
+ };
+
+ template <typename C>
+ inline push_range_function_proxy<fis_push_range_function,C>
+ fis_push_range_function::operator[](C& _container) const
+ {
+ return push_range_function_proxy<fis_push_range_function,C>(
+ _container
+ );
+ }
+
+ template <typename C, typename InputRange>
+ inline ::std::pair<typename C::iterator,typename C::iterator>
+ fis_push_range_function::operator()(
+ C& _container
+ , InputRange const& r
+ ) const
+ {
+ return this->operator()(
+ _container
+ , ::boost::begin(r)
+ , ::boost::end(r)
+ );
+ }
+
+ template <typename C, typename Itr>
+ inline ::std::pair<typename C::iterator,typename C::iterator>
+ fis_push_range_function::operator()(
+ C& _container
+ , Itr itr
+ , Itr itr_end
+ ) const
+ {
+ typename C::iterator const range_end = _container.begin();
+ fis_push_range_function::evaluate(_container, itr, itr_end);
+ return ::std::pair<typename C::iterator,typename C::iterator>(
+ _container.begin()
+ , range_end
+ );
+ }
+
+ template <typename C, typename Itr>
+ inline void
+ fis_push_range_function::evaluate(C& _container, Itr itr, Itr itr_end)
+ {
+ _container.insert(_container.begin(), itr, itr_end);
+ }
+
+ struct ras_push_range_function
+ {
+ template <typename C>
+ push_range_function_proxy<ras_push_range_function,C>
+ operator[](C& _container) const;
+
+ template <typename C, typename InputRange>
+ ::std::pair<typename C::iterator,typename C::iterator>
+ operator()(C& _container, InputRange const& r) const;
+
+ template <typename C, typename Itr>
+ ::std::pair<typename C::iterator,typename C::iterator>
+ operator()(C& _container, Itr itr, Itr itr_end) const;
+
+ template <typename C, typename Itr>
+ static void evaluate(C& _container, Itr itr, Itr itr_end);
+ };
+
+ template <typename C>
+ inline push_range_function_proxy<ras_push_range_function,C>
+ ras_push_range_function::operator[](C& _container) const
+ {
+ return push_range_function_proxy<ras_push_range_function,C>(
+ _container
+ );
+ }
+
+ template <typename C, typename InputRange>
+ inline ::std::pair<typename C::iterator,typename C::iterator>
+ ras_push_range_function::operator()(
+ C& _container
+ , InputRange const& r
+ ) const
+ {
+ return this->operator()(
+ _container
+ , ::boost::begin(r)
+ , ::boost::end(r)
+ );
+ }
+
+ template <typename C, typename Itr>
+ inline ::std::pair<typename C::iterator,typename C::iterator>
+ ras_push_range_function::operator()(
+ C& _container
+ , Itr itr
+ , Itr itr_end
+ ) const
+ {
+ if (_container.empty())
+ {
+ ras_push_range_function::evaluate(_container, itr, itr_end);
+ return ::std::pair<typename C::iterator,typename C::iterator>(
+ _container.begin()
+ , _container.end()
+ );
+ }
+ else
+ {
+ typename C::size_type const old_size = _container.size();
+ ras_push_range_function::evaluate(_container, itr, itr_end);
+ return ::std::pair<typename C::iterator,typename C::iterator>(
+ _container.begin() + old_size
+ , _container.end()
+ );
+ }
+ }
+
+ template <typename C, typename Itr>
+ inline void
+ ras_push_range_function::evaluate(C& _container, Itr itr, Itr itr_end)
+ {
+ _container.insert(_container.end(), itr, itr_end);
+ }
+
+ struct bis_push_range_function
+ {
+ template <typename C>
+ push_range_function_proxy<bis_push_range_function,C>
+ operator[](C& _container) const;
+
+ template <typename C, typename InputRange>
+ ::std::pair<typename C::iterator,typename C::iterator>
+ operator()(C& _container, InputRange const& r) const;
+
+ template <typename C, typename Itr>
+ ::std::pair<typename C::iterator,typename C::iterator>
+ operator()(C& _container, Itr itr, Itr itr_end) const;
+
+ template <typename C, typename Itr>
+ static void evaluate(C& _container, Itr itr, Itr itr_end);
+ };
+
+ template <typename C>
+ inline push_range_function_proxy<bis_push_range_function,C>
+ bis_push_range_function::operator[](C& _container) const
+ {
+ return push_range_function_proxy<bis_push_range_function,C>(
+ _container
+ );
+ }
+
+ template <typename C, typename InputRange>
+ inline ::std::pair<typename C::iterator,typename C::iterator>
+ bis_push_range_function::operator()(
+ C& _container
+ , InputRange const& r
+ ) const
+ {
+ return this->operator()(
+ _container
+ , ::boost::begin(r)
+ , ::boost::end(r)
+ );
+ }
+
+ template <typename C, typename Itr>
+ inline ::std::pair<typename C::iterator,typename C::iterator>
+ bis_push_range_function::operator()(
+ C& _container
+ , Itr itr
+ , Itr itr_end
+ ) const
+ {
+ if (_container.empty())
+ {
+ bis_push_range_function::evaluate(_container, itr, itr_end);
+ return ::std::pair<typename C::iterator,typename C::iterator>(
+ _container.begin()
+ , _container.end()
+ );
+ }
+ else
+ {
+ typename C::iterator pos = _container.end();
+ --pos;
+ bis_push_range_function::evaluate(_container, itr, itr_end);
+ return ::std::pair<typename C::iterator,typename C::iterator>(
+ ++pos
+ , _container.end()
+ );
+ }
+ }
+
+ template <typename C, typename Itr>
+ inline void
+ bis_push_range_function::evaluate(C& _container, Itr itr, Itr itr_end)
+ {
+ _container.insert(_container.end(), itr, itr_end);
+ }
+
+ struct uac_push_range_function
+ {
+ template <typename C>
+ push_range_function_proxy<uac_push_range_function,C>
+ operator[](C& _container) const;
+
+ template <typename C, typename InputRange>
+ ::std::deque<typename C::iterator>
+ operator()(C& _container, InputRange const& r) const;
+
+ template <typename C, typename Itr>
+ ::std::deque<typename C::iterator>
+ operator()(C& _container, Itr itr, Itr itr_end) const;
+
+ template <typename C, typename Itr>
+ static void evaluate(C& _container, Itr itr, Itr itr_end);
+ };
+
+ template <typename C>
+ inline push_range_function_proxy<uac_push_range_function,C>
+ uac_push_range_function::operator[](C& _container) const
+ {
+ return push_range_function_proxy<uac_push_range_function,C>(
+ _container
+ );
+ }
+
+ template <typename C, typename InputRange>
+ inline ::std::deque<typename C::iterator>
+ uac_push_range_function::operator()(
+ C& _container
+ , InputRange const& r
+ ) const
+ {
+ return this->operator()(
+ _container
+ , ::boost::begin(r)
+ , ::boost::end(r)
+ );
+ }
+
+ template <typename C, typename Itr>
+ ::std::deque<typename C::iterator>
+ uac_push_range_function::operator()(
+ C& _container
+ , Itr itr
+ , Itr itr_end
+ ) const
+ {
+ ::std::deque<typename C::iterator> result;
+
+ for (
+ ::std::pair<typename C::iterator,bool> insert_result;
+ itr != itr_end;
+ ++itr
+ )
+ {
+ insert_result = _container.insert(*itr);
+
+ if (insert_result.second)
+ {
+ result.push_back(insert_result.first);
+ }
+ }
+
+ return result;
+ }
+
+ template <typename C, typename Itr>
+ inline void
+ uac_push_range_function::evaluate(C& _container, Itr itr, Itr itr_end)
+ {
+ _container.insert(itr, itr_end);
+ }
+
+ struct mac_push_range_function
+ {
+ template <typename C>
+ push_range_function_proxy<mac_push_range_function,C>
+ operator[](C& _container) const;
+
+ template <typename C, typename InputRange>
+ ::std::deque<typename C::iterator>
+ operator()(C& _container, InputRange const& r) const;
+
+ template <typename C, typename Itr>
+ ::std::deque<typename C::iterator>
+ operator()(C& _container, Itr itr, Itr itr_end) const;
+
+ template <typename C, typename Itr>
+ static void evaluate(C& _container, Itr itr, Itr itr_end);
+ };
+
+ template <typename C>
+ inline push_range_function_proxy<mac_push_range_function,C>
+ mac_push_range_function::operator[](C& _container) const
+ {
+ return push_range_function_proxy<mac_push_range_function,C>(
+ _container
+ );
+ }
+
+ template <typename C, typename InputRange>
+ inline ::std::deque<typename C::iterator>
+ mac_push_range_function::operator()(
+ C& _container
+ , InputRange const& r
+ ) const
+ {
+ return this->operator()(
+ _container
+ , ::boost::begin(r)
+ , ::boost::end(r)
+ );
+ }
+
+ template <typename C, typename Itr>
+ ::std::deque<typename C::iterator>
+ mac_push_range_function::operator()(
+ C& _container
+ , Itr itr
+ , Itr itr_end
+ ) const
+ {
+ ::std::deque<typename C::iterator> result;
+
+ for (; itr != itr_end; ++itr)
+ {
+ result.push_back(_container.insert(*itr));
+ }
+
+ return result;
+ }
+
+ template <typename C, typename Itr>
+ inline void
+ mac_push_range_function::evaluate(C& _container, Itr itr, Itr itr_end)
+ {
+ _container.insert(itr, itr_end);
+ }
+
+ struct ptr_uac_push_range_function
+ {
+ template <typename C>
+ push_range_function_proxy<ptr_uac_push_range_function,C>
+ operator[](C& _container) const;
+
+ template <typename C, typename InputRange>
+ ::std::deque<typename C::iterator>
+ operator()(C& _container, InputRange const& r) const;
+
+ template <typename C, typename Itr>
+ ::std::deque<typename C::iterator>
+ operator()(C& _container, Itr itr, Itr itr_end) const;
+
+ template <typename C, typename Itr>
+ static void
+ evaluate(C& _container, Itr itr, Itr itr_end);
+ };
+
+ template <typename C>
+ inline push_range_function_proxy<ptr_uac_push_range_function,C>
+ ptr_uac_push_range_function::operator[](C& _container) const
+ {
+ return push_range_function_proxy<ptr_uac_push_range_function,C>(
+ _container
+ );
+ }
+
+ template <typename C, typename InputRange>
+ inline ::std::deque<typename C::iterator>
+ ptr_uac_push_range_function::operator()(
+ C& _container
+ , InputRange const& r
+ ) const
+ {
+ return this->operator()(
+ _container
+ , ::boost::begin(r)
+ , ::boost::end(r)
+ );
+ }
+
+ template <typename C, typename Itr>
+ ::std::deque<typename C::iterator>
+ ptr_uac_push_range_function::operator()(
+ C& _container
+ , Itr itr
+ , Itr itr_end
+ ) const
+ {
+ ::std::deque<typename C::iterator> result;
+
+ for (
+ ::std::pair<typename C::iterator,bool> insert_result;
+ itr != itr_end;
+ ++itr
+ )
+ {
+ insert_result = _container.insert(new typename C::key_type(*itr));
+
+ if (insert_result.second)
+ {
+ result.push_back(insert_result.first);
+ }
+ }
+
+ return result;
+ }
+
+ template <typename C, typename Itr>
+ inline void
+ ptr_uac_push_range_function::evaluate(
+ C& _container
+ , Itr itr
+ , Itr itr_end
+ )
+ {
+ _container.insert(itr, itr_end);
+ }
+
+ struct ptr_mac_push_range_function
+ {
+ template <typename C>
+ push_range_function_proxy<ptr_mac_push_range_function,C>
+ operator[](C& _container) const;
+
+ template <typename C, typename InputRange>
+ ::std::deque<typename C::iterator>
+ operator()(C& _container, InputRange const& r) const;
+
+ template <typename C, typename Itr>
+ ::std::deque<typename C::iterator>
+ operator()(C& _container, Itr itr, Itr itr_end) const;
+
+ template <typename C, typename Itr>
+ static void
+ evaluate(C& _container, Itr itr, Itr itr_end);
+ };
+
+ template <typename C>
+ inline push_range_function_proxy<ptr_mac_push_range_function,C>
+ ptr_mac_push_range_function::operator[](C& _container) const
+ {
+ return push_range_function_proxy<ptr_mac_push_range_function,C>(
+ _container
+ );
+ }
+
+ template <typename C, typename InputRange>
+ inline ::std::deque<typename C::iterator>
+ ptr_mac_push_range_function::operator()(
+ C& _container
+ , InputRange const& r
+ ) const
+ {
+ return this->operator()(
+ _container
+ , ::boost::begin(r)
+ , ::boost::end(r)
+ );
+ }
+
+ template <typename C, typename Itr>
+ ::std::deque<typename C::iterator>
+ ptr_mac_push_range_function::operator()(
+ C& _container
+ , Itr itr
+ , Itr itr_end
+ ) const
+ {
+ ::std::deque<typename C::iterator> result;
+
+ for (; itr != itr_end; ++itr)
+ {
+ result.push_back(
+ _container.insert(new typename C::key_type(*itr))
+ );
+ }
+
+ return result;
+ }
+
+ template <typename C, typename Itr>
+ inline void
+ ptr_mac_push_range_function::evaluate(
+ C& _container
+ , Itr itr
+ , Itr itr_end
+ )
+ {
+ _container.insert(itr, itr_end);
+ }
+
+ struct uns_ac_push_range_function
+ {
+ template <typename C>
+ push_range_function_proxy<uns_ac_push_range_function,C>
+ operator[](C& _container) const;
+
+ template <typename C, typename InputRange>
+ void operator()(C& _container, InputRange const& r) const;
+
+ template <typename C, typename Itr>
+ void operator()(C& _container, Itr itr, Itr itr_end) const;
+
+ template <typename C, typename Itr>
+ static void
+ evaluate(C& _container, Itr itr, Itr itr_end);
+ };
+
+ template <typename C>
+ inline push_range_function_proxy<uns_ac_push_range_function,C>
+ uns_ac_push_range_function::operator[](C& _container) const
+ {
+ return push_range_function_proxy<uns_ac_push_range_function,C>(
+ _container
+ );
+ }
+
+ template <typename C, typename InputRange>
+ inline void
+ uns_ac_push_range_function::operator()(
+ C& _container
+ , InputRange const& r
+ ) const
+ {
+ this->operator()(_container, ::boost::begin(r), ::boost::end(r));
+ }
+
+ template <typename C, typename Itr>
+ inline void
+ uns_ac_push_range_function::operator()(
+ C& _container
+ , Itr itr
+ , Itr itr_end
+ ) const
+ {
+ uns_ac_push_range_function::evaluate(_container, itr, itr_end);
+ }
+
+ template <typename C, typename Itr>
+ inline void
+ uns_ac_push_range_function::evaluate(
+ C& _container
+ , Itr itr
+ , Itr itr_end
+ )
+ {
+ _container.insert(itr, itr_end);
+ }
+}} // namespace boost::detail
+
+#include <boost/mpl/identity.hpp>
+#include <boost/mpl/if.hpp>
+#include <boost/mpl/eval_if.hpp>
+#include <boost/mpl/aux_/lambda_support.hpp>
+#include <boost/container_gen/has_stable_iters_selector.hpp>
+#include <boost/container_gen/is_associative_selector.hpp>
+#include <boost/container_gen/is_unique_assoc_selector.hpp>
+#include <boost/container_gen/is_multiple_assoc_selector.hpp>
+#include <boost/container_gen/is_ptr_selector.hpp>
+#include <boost/container_gen/is_random_access_selector.hpp>
+
+//[reference__push_range_function_gen
+namespace boost {
+
+ template <typename Selector>
+ struct push_range_function_gen
+ //<-
+ : ::boost::mpl::eval_if<
+ is_associative_selector<Selector>
+ , ::boost::mpl::eval_if<
+ has_stable_iterators_selector<Selector>
+ , ::boost::mpl::eval_if<
+ is_ptr_selector<Selector>
+ , ::boost::mpl::if_<
+ is_unique_associative_selector<Selector>
+ , detail::ptr_uac_push_range_function
+ , detail::ptr_mac_push_range_function
+ >
+ , ::boost::mpl::if_<
+ is_multiple_associative_selector<Selector>
+ , detail::mac_push_range_function
+ , detail::uac_push_range_function
+ >
+ >
+ , ::boost::mpl::identity<detail::uns_ac_push_range_function>
+ >
+ , ::boost::mpl::if_<
+ is_random_access_selector<Selector>
+ , detail::ras_push_range_function
+ , detail::bis_push_range_function
+ >
+ >
+ //->
+ {
+ // typedef ... type;
+ //<-
+ BOOST_MPL_AUX_LAMBDA_SUPPORT(1, push_range_function_gen, (Selector))
+ //->
+ };
+} // namespace boost
+//]
+
+#include <boost/config.hpp>
+#include <boost/container_gen/selectors.hpp>
+
+#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+
+namespace boost {
+
+ template <typename AllocatorSelector>
+ struct push_range_function_gen<slist_selector<AllocatorSelector> >
+ {
+ typedef detail::fis_push_range_function type;
+ };
+} // namespace boost
+
+#elif !defined BOOST_NO_SLIST
+
+namespace boost {
+
+ template <>
+ struct push_range_function_gen<slist_selector_base>
+ {
+ typedef detail::fis_push_range_function type;
+ };
+} // namespace boost
+
+#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION, BOOST_NO_SLIST
+
+#endif // BOOST_CONTAINER_GEN_PUSH_RANGE_FUNCTION_GEN_HPP_INCLUDED
+

Added: sandbox/container_gen/boost/container_gen/selector_keywords.hpp
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ sandbox/container_gen/boost/container_gen/selector_keywords.hpp 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84957)
@@ -0,0 +1,82 @@
+//=============================================================================
+// 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)
+//=============================================================================
+
+#ifndef BOOST_CONTAINER_GEN_SELECTOR_KEYWORDS_HPP_INCLUDED
+#define BOOST_CONTAINER_GEN_SELECTOR_KEYWORDS_HPP_INCLUDED
+
+#include <boost/parameter/aux_/template_keyword.hpp>
+
+namespace boost {
+
+ struct constant_size_tag;
+ struct is_tr1_not_boost_tag;
+ struct is_boost_not_std_tag;
+ struct hasher_selector_tag;
+ struct compare_selector_tag;
+ struct allocator_selector_tag;
+ struct ptr_clone_allocator_tag;
+ struct ptr_allocator_tag;
+ struct sequence_selector_tag;
+
+ template <typename T>
+ struct constant_size_arg
+ : ::boost::parameter::template_keyword<constant_size_tag,T>
+ {
+ };
+
+ template <typename T>
+ struct is_tr1_not_boost_arg
+ : ::boost::parameter::template_keyword<is_tr1_not_boost_tag,T>
+ {
+ };
+
+ template <typename T>
+ struct is_boost_not_std_arg
+ : ::boost::parameter::template_keyword<is_boost_not_std_tag,T>
+ {
+ };
+
+ template <typename T>
+ struct hasher_selector_arg
+ : ::boost::parameter::template_keyword<hasher_selector_tag,T>
+ {
+ };
+
+ template <typename T>
+ struct compare_selector_arg
+ : ::boost::parameter::template_keyword<compare_selector_tag,T>
+ {
+ };
+
+ template <typename T>
+ struct allocator_selector_arg
+ : ::boost::parameter::template_keyword<allocator_selector_tag,T>
+ {
+ };
+
+ template <typename T>
+ struct ptr_clone_allocator_arg
+ : ::boost::parameter::template_keyword<ptr_clone_allocator_tag,T>
+ {
+ };
+
+ template <typename T>
+ struct ptr_allocator_arg
+ : ::boost::parameter::template_keyword<ptr_allocator_tag,T>
+ {
+ };
+
+ template <typename T>
+ struct sequence_selector_arg
+ : ::boost::parameter::template_keyword<sequence_selector_tag,T>
+ {
+ };
+} // namespace boost
+
+#endif // BOOST_CONTAINER_GEN_SELECTOR_KEYWORDS_HPP_INCLUDED
+

Added: sandbox/container_gen/boost/container_gen/selectors.hpp
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ sandbox/container_gen/boost/container_gen/selectors.hpp 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84957)
@@ -0,0 +1,1262 @@
+//=============================================================================
+// Copyright 1997, 1998, 1999, 2000 University of Notre Dame.
+// Copyright 2010 Thomas Claveirole
+// Copyright 2011-2013 Cromwell D. Enage
+// Authors: Andrew Lumsdaine, Lie-Quan Lee, Jeremy G. Siek, Thomas Claveirole,
+// 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)
+//=============================================================================
+
+#ifndef BOOST_CONTAINER_GEN_SELECTORS_HPP_INCLUDED
+#define BOOST_CONTAINER_GEN_SELECTORS_HPP_INCLUDED
+
+#include <functional>
+#include <memory>
+#include <utility>
+#include <boost/config.hpp>
+#include <boost/mpl/apply_wrap.hpp>
+#include <boost/mpl/if.hpp>
+#include <boost/mpl/aux_/config/forwarding.hpp>
+#include <boost/tr1/type_traits.hpp>
+#include <boost/tr1/functional.hpp>
+#include <boost/function.hpp>
+#include <boost/functional/hash.hpp>
+#include <boost/utility/equivalence_function.hpp>
+#include <boost/container_gen/selectors_fwd.hpp>
+#include <boost/detail/metafunction/is_container.hpp>
+#include <boost/detail/function/range_equal.hpp>
+#include <boost/detail/function/range_less.hpp>
+#include <boost/detail/function/range_greater.hpp>
+
+//[reference__template_argument_selectors
+namespace boost {
+
+ struct equal_to_selector
+ {
+ template <typename T>
+ struct apply
+ {
+ typedef // implementation_defined
+ //<-
+ typename ::boost::mpl::if_<
+ ::boost::detail::metafunction::is_container<T>
+ , ::boost::detail::range_equal
+ , ::std::equal_to<T>
+ >::type
+ //->
+ type;
+ };
+ };
+
+ struct less_than_selector
+ {
+ template <typename T>
+ struct apply
+ {
+ typedef // implementation_defined
+ //<-
+ typename ::boost::mpl::if_<
+ ::boost::detail::metafunction::is_container<T>
+ , ::boost::detail::range_less
+ , ::std::less<T>
+ >::type
+ //->
+ type;
+ };
+ };
+
+ struct greater_than_selector
+ {
+ template <typename T>
+ struct apply
+ {
+ typedef // implementation_defined
+ //<-
+ typename ::boost::mpl::if_<
+ ::boost::detail::metafunction::is_container<T>
+ , ::boost::detail::range_greater
+ , ::std::greater<T>
+ >::type
+ //->
+ type;
+ };
+ };
+
+ struct binary_predicate_selector
+ {
+ template <typename T>
+ struct apply
+ {
+ typedef ::boost::function2<bool,T const&,T const&> type;
+ };
+ };
+
+//<-
+#if defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+ struct equivalence_selector_base
+ {
+ };
+#else
+//->
+ struct tr1_binary_predicate_selector
+ {
+ template <typename T>
+ struct apply
+ {
+ typedef ::std::tr1::function<bool(T const&,T const&)> type;
+ };
+ };
+//<-
+#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+//->
+
+ template <typename CompareSelector>
+ struct equivalence_selector
+//<-
+#if defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+ : equivalence_selector_base
+#endif
+//->
+ {
+ template <typename T>
+ struct apply
+//<-
+#if !defined BOOST_MPL_CFG_NO_NESTED_FORWARDING
+//->
+ : ::boost::equivalence_function_gen<
+ typename ::boost::mpl::apply_wrap1<CompareSelector,T>::type
+ >
+//<-
+#endif
+//->
+ {
+//<-
+#if defined BOOST_MPL_CFG_NO_NESTED_FORWARDING
+ typedef typename ::boost::equivalence_function_gen<
+ typename ::boost::mpl::apply_wrap1<
+ CompareSelector
+ , T
+ >::type
+ >::type
+ type;
+#endif
+//->
+ };
+ };
+
+ struct boost_hash_selector
+ {
+ template <typename T>
+ struct apply
+ {
+ typedef ::boost::hash<T> type;
+ };
+ };
+
+ struct tr1_hash_selector
+ {
+ template <typename T>
+ struct apply
+ {
+ typedef ::std::tr1::hash<T> type;
+ };
+ };
+
+ struct std_allocator_selector
+ {
+ template <typename T1, typename T2 = void>
+ struct apply
+ {
+ typedef typename ::boost::mpl::if_<
+ ::std::tr1::is_void<T2>
+ , ::std::allocator<T1>
+ , ::std::allocator< ::std::pair<T1 const,T2> >
+ >::type
+ type;
+ };
+ };
+
+ struct std_flat_allocator_selector
+ {
+ template <typename T1, typename T2 = void>
+ struct apply
+ {
+ typedef typename ::boost::mpl::if_<
+ ::std::tr1::is_void<T2>
+ , ::std::allocator<T1>
+ , ::std::allocator< ::std::pair<T1,T2> >
+ >::type
+ type;
+ };
+ };
+} // namespace boost
+//]
+
+#include <boost/mpl/bool.hpp>
+#include <boost/ptr_container/clone_allocator.hpp>
+
+//=============================================================================
+// Selectors for the VertexList and EdgeList template parameters of
+// adjacency_list, and the container_gen metafunction which is used
+// to map the selectors to the container type used to implement the
+// graph.
+//=============================================================================
+
+#if defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+
+#include <vector>
+#include <deque>
+#include <list>
+
+#if !defined BOOST_NO_SLIST
+# if defined BOOST_SLIST_HEADER
+# include BOOST_SLIST_HEADER
+# else
+# include <slist>
+# endif
+#endif
+
+#if defined BOOST_HAS_HASH
+# if defined BOOST_HASH_SET_HEADER
+# include BOOST_HASH_SET_HEADER
+# else
+# include <hash_set>
+# endif
+# if defined BOOST_HASH_MAP_HEADER
+# include BOOST_HASH_MAP_HEADER
+# else
+# include <hash_map>
+# endif
+#endif
+
+#if !defined BOOST_MSVC
+#include <boost/array.hpp>
+#include <boost/tr1/array.hpp>
+#include <boost/ptr_container/ptr_array.hpp>
+#endif
+
+#include <set>
+#include <map>
+#include <boost/ptr_container/ptr_vector.hpp>
+#include <boost/ptr_container/ptr_deque.hpp>
+#include <boost/ptr_container/ptr_list.hpp>
+#include <boost/ptr_container/ptr_set.hpp>
+#include <boost/ptr_container/ptr_map.hpp>
+#include <boost/ptr_container/ptr_unordered_set.hpp>
+#include <boost/ptr_container/ptr_unordered_map.hpp>
+
+namespace boost {
+
+#if !defined BOOST_MSVC
+ struct array_selector_base
+ {
+ };
+
+ template <typename ConstantSize, typename IsTR1NotBoost>
+ struct array_selector : array_selector_base
+ {
+ template <typename T, typename Unused>
+ struct apply
+ {
+ typedef typename ::boost::mpl::if_<
+ IsTR1NotBoost
+ , ::std::tr1::array<T,ConstantSize::value>
+ , ::boost::array<T,ConstantSize::value>
+ >::type
+ type;
+ };
+ };
+#endif
+
+ struct vector_selector_base
+ {
+ };
+
+ template <typename AllocatorSelector, typename Ignored>
+ struct vector_selector : vector_selector_base
+ {
+ template <typename T, typename Unused>
+ struct apply
+ {
+ typedef ::std::vector<
+ T
+ , typename ::boost::mpl::apply_wrap1<
+ AllocatorSelector
+ , T
+ >::type
+ >
+ type;
+ };
+ };
+
+ struct deque_selector_base
+ {
+ };
+
+ template <typename AllocatorSelector, typename Ignored>
+ struct deque_selector : deque_selector_base
+ {
+ template <typename T, typename Unused>
+ struct apply
+ {
+ typedef ::std::deque<
+ T
+ , typename ::boost::mpl::apply_wrap1<
+ AllocatorSelector
+ , T
+ >::type
+ >
+ type;
+ };
+ };
+
+ struct list_selector_base
+ {
+ };
+
+ template <typename AllocatorSelector, typename Ignored>
+ struct list_selector : list_selector_base
+ {
+ template <typename T, typename Unused>
+ struct apply
+ {
+ typedef ::std::list<
+ T
+ , typename ::boost::mpl::apply_wrap1<
+ AllocatorSelector
+ , T
+ >::type
+ >
+ type;
+ };
+ };
+
+#if !defined BOOST_NO_SLIST
+ struct slist_selector_base
+ {
+ };
+
+ template <typename AllocatorSelector>
+ struct slist_selector : slist_selector_base
+ {
+ template <typename T, typename Unused>
+ struct apply
+ {
+ typedef ::BOOST_STD_EXTENSION_NAMESPACE::slist<
+ T
+ , typename ::boost::mpl::apply_wrap1<
+ AllocatorSelector
+ , T
+ >::type
+ >
+ type;
+ };
+ };
+#endif
+
+ struct set_selector_base
+ {
+ };
+
+ template <
+ typename CompareSelector
+ , typename AllocatorSelector
+ , typename Ignored
+ >
+ struct set_selector : set_selector_base
+ {
+ template <typename Key, typename Mapped>
+ struct apply
+ {
+ private:
+ typedef typename ::boost::mpl::apply_wrap1<
+ CompareSelector
+ , Key
+ >::type
+ comparator;
+ typedef typename ::boost::mpl::apply_wrap2<
+ AllocatorSelector
+ , Key
+ , Mapped
+ >::type
+ allocator_type;
+
+ public:
+ typedef typename ::boost::mpl::if_<
+ ::std::tr1::is_void<Mapped>
+ , ::std::set<Key,comparator,allocator_type>
+ , ::std::map<Key,Mapped,comparator,allocator_type>
+ >::type
+ type;
+ };
+ };
+
+ struct map_selector_base
+ {
+ };
+
+ template <
+ typename CompareSelector
+ , typename AllocatorSelector
+ , typename Ignored
+ >
+ struct map_selector : map_selector_base
+ {
+ template <typename Key, typename Mapped>
+ struct apply
+ {
+ private:
+ typedef typename ::boost::mpl::apply_wrap1<
+ CompareSelector
+ , Key
+ >::type
+ comparator;
+ typedef typename ::boost::mpl::apply_wrap2<
+ AllocatorSelector
+ , Key
+ , Mapped
+ >::type
+ allocator_type;
+
+ public:
+ typedef typename ::boost::mpl::if_<
+ ::std::tr1::is_void<Mapped>
+ , ::std::set<Key,comparator,allocator_type>
+ , ::std::map<Key,Mapped,comparator,allocator_type>
+ >::type
+ type;
+ };
+ };
+
+ struct multiset_selector_base
+ {
+ };
+
+ template <
+ typename CompareSelector
+ , typename AllocatorSelector
+ , typename Ignored
+ >
+ struct multiset_selector : multiset_selector_base
+ {
+ template <typename Key, typename Mapped>
+ struct apply
+ {
+ private:
+ typedef typename ::boost::mpl::apply_wrap1<
+ CompareSelector
+ , Key
+ >::type
+ comparator;
+ typedef typename ::boost::mpl::apply_wrap2<
+ AllocatorSelector
+ , Key
+ , Mapped
+ >::type
+ allocator_type;
+
+ public:
+ typedef typename ::boost::mpl::if_<
+ ::std::tr1::is_void<Mapped>
+ , ::std::multiset<Key,comparator,allocator_type>
+ , ::std::multimap<Key,Mapped,comparator,allocator_type>
+ >::type
+ type;
+ };
+ };
+
+ struct multimap_selector_base
+ {
+ };
+
+ template <
+ typename CompareSelector
+ , typename AllocatorSelector
+ , typename Ignored
+ >
+ struct multimap_selector : multimap_selector_base
+ {
+ template <typename Key, typename Mapped>
+ struct apply
+ {
+ private:
+ typedef typename ::boost::mpl::apply_wrap1<
+ CompareSelector
+ , Key
+ >::type
+ comparator;
+ typedef typename ::boost::mpl::apply_wrap2<
+ AllocatorSelector
+ , Key
+ , Mapped
+ >::type
+ allocator_type;
+
+ public:
+ typedef typename ::boost::mpl::if_<
+ ::std::tr1::is_void<Mapped>
+ , ::std::multiset<Key,comparator,allocator_type>
+ , ::std::multimap<Key,Mapped,comparator,allocator_type>
+ >::type
+ type;
+ };
+ };
+
+#if defined BOOST_HAS_HASH
+ struct hash_set_selector_base
+ {
+ };
+
+ template <
+ typename HashSelector
+ , typename CompareSelector
+ , typename AllocatorSelector
+ , typename Ignored
+ >
+ struct hash_set_selector : hash_set_selector_base
+ {
+ template <typename Key, typename Mapped>
+ struct apply
+ {
+ private:
+ typedef typename ::boost::mpl::apply_wrap1<
+ HashSelector
+ , Key
+ >::type
+ hasher;
+ typedef typename ::boost::mpl::apply_wrap1<
+ CompareSelector
+ , Key
+ >::type
+ comparator;
+ typedef typename ::boost::mpl::apply_wrap1<
+ AllocatorSelector
+ , Key
+ >::type
+ allocator_type;
+
+ public:
+ typedef typename ::boost::mpl::if_<
+ ::std::tr1::is_void<Mapped>
+ , ::BOOST_STD_EXTENSION_NAMESPACE::hash_set<
+ Key
+ , hasher
+ , comparator
+ , allocator_type
+ >
+ , ::BOOST_STD_EXTENSION_NAMESPACE::hash_map<
+ Key
+ , Mapped
+ , hasher
+ , comparator
+ , allocator_type
+ >
+ >::type
+ type;
+ };
+ };
+
+ struct hash_map_selector_base
+ {
+ };
+
+ template <
+ typename HashSelector
+ , typename CompareSelector
+ , typename AllocatorSelector
+ , typename Ignored
+ >
+ struct hash_map_selector : hash_map_selector_base
+ {
+ template <typename Key, typename Mapped>
+ struct apply
+ {
+ private:
+ typedef typename ::boost::mpl::apply_wrap1<
+ HashSelector
+ , Key
+ >::type
+ hasher;
+ typedef typename ::boost::mpl::apply_wrap1<
+ CompareSelector
+ , Key
+ >::type
+ comparator;
+ typedef typename ::boost::mpl::apply_wrap1<
+ AllocatorSelector
+ , Key
+ >::type
+ allocator_type;
+
+ public:
+ typedef typename ::boost::mpl::if_<
+ ::std::tr1::is_void<Mapped>
+ , ::BOOST_STD_EXTENSION_NAMESPACE::hash_set<
+ Key
+ , hasher
+ , comparator
+ , allocator_type
+ >
+ , ::BOOST_STD_EXTENSION_NAMESPACE::hash_map<
+ Key
+ , Mapped
+ , hasher
+ , comparator
+ , allocator_type
+ >
+ >::type
+ type;
+ };
+ };
+
+ struct hash_multiset_selector_base
+ {
+ };
+
+ template <
+ typename HashSelector
+ , typename CompareSelector
+ , typename AllocatorSelector
+ , typename Ignored
+ >
+ struct hash_multiset_selector : hash_multiset_selector_base
+ {
+ template <typename Key, typename Mapped>
+ struct apply
+ {
+ private:
+ typedef typename ::boost::mpl::apply_wrap1<
+ HashSelector
+ , Key
+ >::type
+ hasher;
+ typedef typename ::boost::mpl::apply_wrap1<
+ CompareSelector
+ , Key
+ >::type
+ comparator;
+ typedef typename ::boost::mpl::apply_wrap1<
+ AllocatorSelector
+ , Key
+ >::type
+ allocator_type;
+
+ public:
+ typedef typename ::boost::mpl::if_<
+ ::std::tr1::is_void<Mapped>
+ , ::BOOST_STD_EXTENSION_NAMESPACE::hash_multiset<
+ Key
+ , hasher
+ , comparator
+ , allocator_type
+ >
+ , ::BOOST_STD_EXTENSION_NAMESPACE::hash_multimap<
+ Key
+ , Mapped
+ , hasher
+ , comparator
+ , allocator_type
+ >
+ >::type
+ type;
+ };
+ };
+
+ struct hash_multimap_selector_base
+ {
+ };
+
+ template <
+ typename HashSelector
+ , typename CompareSelector
+ , typename AllocatorSelector
+ , typename Ignored
+ >
+ struct hash_multimap_selector : hash_multimap_selector_base
+ {
+ template <typename Key, typename Mapped>
+ struct apply
+ {
+ private:
+ typedef typename ::boost::mpl::apply_wrap1<
+ HashSelector
+ , Key
+ >::type
+ hasher;
+ typedef typename ::boost::mpl::apply_wrap1<
+ CompareSelector
+ , Key
+ >::type
+ comparator;
+ typedef typename ::boost::mpl::apply_wrap1<
+ AllocatorSelector
+ , Key
+ >::type
+ allocator_type;
+
+ public:
+ typedef typename ::boost::mpl::if_<
+ ::std::tr1::is_void<Mapped>
+ , ::BOOST_STD_EXTENSION_NAMESPACE::hash_multiset<
+ Key
+ , hasher
+ , comparator
+ , allocator_type
+ >
+ , ::BOOST_STD_EXTENSION_NAMESPACE::hash_multimap<
+ Key
+ , Mapped
+ , hasher
+ , comparator
+ , allocator_type
+ >
+ >::type
+ type;
+ };
+ };
+#endif // BOOST_HAS_HASH
+
+#if !defined BOOST_MSVC
+ struct ptr_array_selector_base
+ {
+ };
+
+ template <typename ConstantSize, typename CloneAllocator>
+ struct ptr_array_selector : ptr_array_selector_base
+ {
+ template <typename T, typename Unused>
+ struct apply
+ {
+ typedef ::boost::ptr_array<
+ T
+ , ConstantSize::value
+ , CloneAllocator
+ >
+ type;
+ };
+ };
+#endif
+
+ struct ptr_vector_selector_base
+ {
+ };
+
+ template <typename CloneAllocator, typename Allocator>
+ struct ptr_vector_selector : ptr_vector_selector_base
+ {
+ template <typename T, typename Unused>
+ struct apply
+ {
+ typedef ::boost::ptr_vector<T,CloneAllocator,Allocator> type;
+ };
+ };
+
+ struct ptr_deque_selector_base
+ {
+ };
+
+ template <typename CloneAllocator, typename Allocator>
+ struct ptr_deque_selector : ptr_deque_selector_base
+ {
+ template <typename T, typename Unused>
+ struct apply
+ {
+ typedef ::boost::ptr_deque<T,CloneAllocator,Allocator> type;
+ };
+ };
+
+ struct ptr_list_selector_base
+ {
+ };
+
+ template <typename CloneAllocator, typename Allocator>
+ struct ptr_list_selector : ptr_list_selector_base
+ {
+ template <typename T, typename Unused>
+ struct apply
+ {
+ typedef ::boost::ptr_list<T,CloneAllocator,Allocator> type;
+ };
+ };
+
+ struct ptr_set_selector_base
+ {
+ };
+
+ template <
+ typename CompareSelector
+ , typename CloneAllocator
+ , typename Allocator
+ >
+ struct ptr_set_selector : ptr_set_selector_base
+ {
+ template <typename Key, typename Mapped>
+ struct apply
+ {
+ private:
+ typedef typename ::boost::mpl::apply_wrap1<
+ CompareSelector
+ , Key
+ >::type
+ comparator;
+
+ public:
+ typedef typename ::boost::mpl::if_<
+ ::std::tr1::is_void<Mapped>
+ , ::boost::ptr_set<
+ Key
+ , comparator
+ , CloneAllocator
+ , Allocator
+ >
+ , ::boost::ptr_map<
+ Key
+ , Mapped
+ , comparator
+ , CloneAllocator
+ , Allocator
+ >
+ >::type
+ type;
+ };
+ };
+
+ struct ptr_map_selector_base
+ {
+ };
+
+ template <
+ typename CompareSelector
+ , typename CloneAllocator
+ , typename Allocator
+ >
+ struct ptr_map_selector : ptr_map_selector_base
+ {
+ template <typename Key, typename Mapped>
+ struct apply
+ {
+ private:
+ typedef typename ::boost::mpl::apply_wrap1<
+ CompareSelector
+ , Key
+ >::type
+ comparator;
+
+ public:
+ typedef typename ::boost::mpl::if_<
+ ::std::tr1::is_void<Mapped>
+ , ::boost::ptr_set<
+ Key
+ , comparator
+ , CloneAllocator
+ , Allocator
+ >
+ , ::boost::ptr_map<
+ Key
+ , Mapped
+ , comparator
+ , CloneAllocator
+ , Allocator
+ >
+ >::type
+ type;
+ };
+ };
+
+ struct ptr_multiset_selector_base
+ {
+ };
+
+ template <
+ typename CompareSelector
+ , typename CloneAllocator
+ , typename Allocator
+ >
+ struct ptr_multiset_selector : ptr_multiset_selector_base
+ {
+ template <typename Key, typename Mapped>
+ struct apply
+ {
+ private:
+ typedef typename ::boost::mpl::apply_wrap1<
+ CompareSelector
+ , Key
+ >::type
+ comparator;
+
+ public:
+ typedef typename ::boost::mpl::if_<
+ ::std::tr1::is_void<Mapped>
+ , ::boost::ptr_multiset<
+ Key
+ , comparator
+ , CloneAllocator
+ , Allocator
+ >
+ , ::boost::ptr_multimap<
+ Key
+ , Mapped
+ , comparator
+ , CloneAllocator
+ , Allocator
+ >
+ >::type
+ type;
+ };
+ };
+
+ struct ptr_multimap_selector_base
+ {
+ };
+
+ template <
+ typename CompareSelector
+ , typename CloneAllocator
+ , typename Allocator
+ >
+ struct ptr_multimap_selector : ptr_multimap_selector_base
+ {
+ template <typename Key, typename Mapped>
+ struct apply
+ {
+ private:
+ typedef typename ::boost::mpl::apply_wrap1<
+ CompareSelector
+ , Key
+ >::type
+ comparator;
+
+ public:
+ typedef typename ::boost::mpl::if_<
+ ::std::tr1::is_void<Mapped>
+ , ::boost::ptr_multiset<
+ Key
+ , comparator
+ , CloneAllocator
+ , Allocator
+ >
+ , ::boost::ptr_multimap<
+ Key
+ , Mapped
+ , comparator
+ , CloneAllocator
+ , Allocator
+ >
+ >::type
+ type;
+ };
+ };
+} // namespace boost
+
+#else // !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+
+namespace boost {
+
+ template <typename T0, typename T1>
+ struct array_selector
+ {
+ };
+
+ template <typename T0, typename T1>
+ struct vector_selector
+ {
+ };
+
+ template <typename AllocatorSelector>
+ struct stable_vector_selector
+ {
+ };
+
+ template <typename T0, typename T1>
+ struct deque_selector
+ {
+ };
+
+ template <typename T0, typename T1>
+ struct list_selector
+ {
+ };
+
+ template <typename AllocatorSelector>
+ struct slist_selector
+ {
+ };
+
+ template <typename T0, typename T1, typename T2>
+ struct set_selector
+ {
+ };
+
+ template <typename T0, typename T1, typename T2>
+ struct map_selector
+ {
+ };
+
+ template <typename T0, typename T1, typename T2>
+ struct multiset_selector
+ {
+ };
+
+ template <typename T0, typename T1, typename T2>
+ struct multimap_selector
+ {
+ };
+
+ template <typename T0, typename T1, typename T2, typename T3>
+ struct hash_set_selector
+ {
+ };
+
+ template <typename T0, typename T1, typename T2, typename T3>
+ struct hash_map_selector
+ {
+ };
+
+ template <typename T0, typename T1, typename T2, typename T3>
+ struct hash_multiset_selector
+ {
+ };
+
+ template <typename T0, typename T1, typename T2, typename T3>
+ struct hash_multimap_selector
+ {
+ };
+
+ template <typename T0, typename T1>
+ struct flat_set_selector
+ {
+ };
+
+ template <typename T0, typename T1>
+ struct flat_map_selector
+ {
+ };
+
+ template <typename T0, typename T1>
+ struct flat_multiset_selector
+ {
+ };
+
+ template <typename T0, typename T1>
+ struct flat_multimap_selector
+ {
+ };
+
+ template <typename T0, typename T1>
+ struct ptr_array_selector
+ {
+ };
+
+ template <typename T0, typename T1>
+ struct ptr_vector_selector
+ {
+ };
+
+ template <typename T0, typename T1>
+ struct ptr_deque_selector
+ {
+ };
+
+ template <typename T0, typename T1>
+ struct ptr_list_selector
+ {
+ };
+
+ template <typename T0, typename T1, typename T2>
+ struct ptr_set_selector
+ {
+ };
+
+ template <typename T0, typename T1, typename T2>
+ struct ptr_map_selector
+ {
+ };
+
+ template <typename T0, typename T1, typename T2>
+ struct ptr_multiset_selector
+ {
+ };
+
+ template <typename T0, typename T1, typename T2>
+ struct ptr_multimap_selector
+ {
+ };
+
+ template <typename T0, typename T1, typename T2, typename T3>
+ struct ptr_hash_set_selector
+ {
+ };
+
+ template <typename T0, typename T1, typename T2, typename T3>
+ struct ptr_hash_map_selector
+ {
+ };
+
+ template <typename T0, typename T1, typename T2, typename T3>
+ struct ptr_hash_multiset_selector
+ {
+ };
+
+ template <typename T0, typename T1, typename T2, typename T3>
+ struct ptr_hash_multimap_selector
+ {
+ };
+} // namespace boost
+
+#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+
+//=============================================================================
+// Container adaptor / heap selectors, also usable by the container_gen
+// metafunction.
+//=============================================================================
+
+#if defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+
+#include <stack>
+#include <queue>
+
+namespace boost {
+
+ struct stack_selector_base
+ {
+ };
+
+ template <typename SequenceSelector>
+ struct stack_selector : stack_selector_base
+ {
+ template <typename T, typename Unused>
+ struct apply
+ {
+ typedef ::std::stack<
+ T
+ , typename ::boost::mpl::apply_wrap2<
+ SequenceSelector
+ , T
+ , void
+ >::type
+ >
+ type;
+ };
+ };
+
+ struct queue_selector_base
+ {
+ };
+
+ template <typename SequenceSelector>
+ struct queue_selector : queue_selector_base
+ {
+ template <typename T, typename Unused>
+ struct apply
+ {
+ typedef ::std::queue<
+ T
+ , typename ::boost::mpl::apply_wrap2<
+ SequenceSelector
+ , T
+ , void
+ >::type
+ >
+ type;
+ };
+ };
+
+ struct std_heap_selector_base
+ {
+ };
+
+ template <typename CompareSelector, typename SequenceSelector>
+ struct std_heap_selector : std_heap_selector_base
+ {
+ template <typename T, typename Unused>
+ struct apply
+ {
+ typedef ::std::priority_queue<
+ T
+ , typename ::boost::mpl::apply_wrap2<
+ SequenceSelector
+ , T
+ , void
+ >::type
+ , typename ::boost::mpl::apply_wrap1<
+ CompareSelector
+ , T
+ >::type
+ >
+ type;
+ };
+ };
+} // namespace boost
+
+#else // !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+
+namespace boost {
+
+ template <typename SequenceSelector>
+ struct stack_selector
+ {
+ };
+
+ template <typename SequenceSelector>
+ struct queue_selector
+ {
+ };
+
+ template <typename T0, typename T1>
+ struct std_heap_selector
+ {
+ };
+
+ template <typename T0, typename T1, typename T2, typename T3>
+ struct priority_queue_selector
+ {
+ };
+
+ template <
+ typename T0
+ , typename T1
+ , typename T2
+ , typename T3
+ , typename T4
+ , typename T5
+ >
+ struct d_ary_heap_selector
+ {
+ };
+
+ template <typename T0, typename T1, typename T2, typename T3>
+ struct binomial_heap_selector
+ {
+ };
+
+ template <typename T0, typename T1, typename T2, typename T3, typename T4>
+ struct fibonacci_heap_selector
+ {
+ };
+
+ template <typename T0, typename T1, typename T2, typename T3, typename T4>
+ struct pairing_heap_selector
+ {
+ };
+
+ template <
+ typename T0
+ , typename T1
+ , typename T2
+ , typename T3
+ , typename T4
+ , typename T5
+ , typename T6
+ >
+ struct skew_heap_selector
+ {
+ };
+} // namespace boost
+
+#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+
+#endif // BOOST_CONTAINER_GEN_SELECTORS_HPP_INCLUDED
+

Added: sandbox/container_gen/boost/container_gen/selectors_fwd.hpp
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ sandbox/container_gen/boost/container_gen/selectors_fwd.hpp 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84957)
@@ -0,0 +1,743 @@
+//=============================================================================
+// Copyright 1997, 1998, 1999, 2000 University of Notre Dame.
+// Copyright 2010 Thomas Claveirole
+// Copyright 2011-2013 Cromwell D. Enage
+// Authors: Andrew Lumsdaine, Lie-Quan Lee, Jeremy G. Siek, Thomas Claveirole,
+// 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)
+//=============================================================================
+
+#ifndef BOOST_CONTAINER_GEN_SELECTORS_FWD_HPP_INCLUDED
+#define BOOST_CONTAINER_GEN_SELECTORS_FWD_HPP_INCLUDED
+
+#include <memory>
+#include <boost/config.hpp>
+#include <boost/mpl/bool.hpp>
+#include <boost/ptr_container/clone_allocator.hpp>
+
+#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+#include <boost/parameter/aux_/void.hpp>
+#endif
+
+namespace boost {
+
+ struct equal_to_selector;
+ struct less_than_selector;
+ struct greater_than_selector;
+ struct binary_predicate_selector;
+#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+ struct tr1_binary_predicate_selector;
+#endif
+
+ template <typename CompareSelector = less_than_selector>
+ struct equivalence_selector;
+
+ typedef equivalence_selector<> equivalenceS;
+
+ struct boost_hash_selector;
+ struct tr1_hash_selector;
+
+ struct std_allocator_selector;
+ struct std_flat_allocator_selector;
+} // namespace boost
+
+#if defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+namespace boost {
+
+#if !defined BOOST_MSVC
+ struct array_selector_base;
+ struct ptr_array_selector_base;
+#endif
+ struct vector_selector_base;
+ struct deque_selector_base;
+ struct list_selector_base;
+#if !defined BOOST_NO_SLIST
+ struct slist_selector_base;
+#endif
+ struct set_selector_base;
+ struct map_selector_base;
+ struct multiset_selector_base;
+ struct multimap_selector_base;
+#if defined BOOST_HAS_HASH
+ struct hash_set_selector_base;
+ struct hash_map_selector_base;
+ struct hash_multiset_selector_base;
+ struct hash_multimap_selector_base;
+#endif // BOOST_HAS_HASH
+ struct ptr_vector_selector_base;
+ struct ptr_deque_selector_base;
+ struct ptr_list_selector_base;
+ struct ptr_set_selector_base;
+ struct ptr_map_selector_base;
+ struct ptr_multiset_selector_base;
+ struct ptr_multimap_selector_base;
+ struct stack_selector_base;
+ struct queue_selector_base;
+ struct std_heap_selector_base;
+} // namespace boost
+#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+
+//[reference__container_selector_templates
+namespace boost {
+
+//<-
+#if defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+#if !defined BOOST_MSVC
+//->
+ template <
+ typename ConstantSize
+ , typename IsTR1NotBoost = ::boost::mpl::false_
+ >
+ struct array_selector;
+//<-
+#endif
+//->
+
+ template <
+ typename AllocatorSelector = std_allocator_selector
+ , typename IsBoostNotStd = ::boost::mpl::false_
+ >
+ struct vector_selector;
+
+ template <
+ typename AllocatorSelector = std_allocator_selector
+ , typename IsBoostNotStd = ::boost::mpl::false_
+ >
+ struct deque_selector;
+
+ template <
+ typename AllocatorSelector = std_allocator_selector
+ , typename IsBoostNotStd = ::boost::mpl::false_
+ >
+ struct list_selector;
+//<-
+#else // !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+#if !defined BOOST_MSVC
+ template <typename T0, typename T1 = ::boost::parameter::void_>
+ struct array_selector;
+#endif
+
+ template <
+ typename T0 = ::boost::parameter::void_
+ , typename T1 = ::boost::parameter::void_
+ >
+ struct vector_selector;
+
+ template <
+ typename T0 = ::boost::parameter::void_
+ , typename T1 = ::boost::parameter::void_
+ >
+ struct deque_selector;
+
+ template <
+ typename T0 = ::boost::parameter::void_
+ , typename T1 = ::boost::parameter::void_
+ >
+ struct list_selector;
+//->
+
+ template <typename AllocatorSelector = std_allocator_selector>
+ struct stable_vector_selector;
+//<-
+#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+//->
+
+//<-
+#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION || \
+ !defined BOOST_NO_SLIST
+//->
+ template <typename AllocatorSelector = std_allocator_selector>
+ struct slist_selector;
+//<-
+#endif
+//->
+
+//<-
+#if defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+//->
+ template <
+ typename CompareSelector = less_than_selector
+ , typename AllocatorSelector = std_allocator_selector
+ , typename IsBoostNotStd = ::boost::mpl::false_
+ >
+ struct set_selector;
+
+ template <
+ typename CompareSelector = less_than_selector
+ , typename AllocatorSelector = std_allocator_selector
+ , typename IsBoostNotStd = ::boost::mpl::false_
+ >
+ struct map_selector;
+
+ template <
+ typename CompareSelector = less_than_selector
+ , typename AllocatorSelector = std_allocator_selector
+ , typename IsBoostNotStd = ::boost::mpl::false_
+ >
+ struct multiset_selector;
+
+ template <
+ typename CompareSelector = less_than_selector
+ , typename AllocatorSelector = std_allocator_selector
+ , typename IsBoostNotStd = ::boost::mpl::false_
+ >
+ struct multimap_selector;
+
+//<-
+#if 0 // for documentation purposes
+//->
+ template <
+ typename CompareSelector = less_than_selector
+ , typename AllocatorSelector = std_flat_allocator_selector
+ >
+ struct flat_set_selector;
+
+ template <
+ typename CompareSelector = less_than_selector
+ , typename AllocatorSelector = std_flat_allocator_selector
+ >
+ struct flat_map_selector;
+
+ template <
+ typename CompareSelector = less_than_selector
+ , typename AllocatorSelector = std_flat_allocator_selector
+ >
+ struct flat_multiset_selector;
+
+ template <
+ typename CompareSelector = less_than_selector
+ , typename AllocatorSelector = std_flat_allocator_selector
+ >
+ struct flat_multimap_selector;
+//<-
+#endif // for documentation purposes
+//->
+
+//<-
+#if defined BOOST_HAS_HASH
+//->
+ template <
+ typename HashSelector = boost_hash_selector
+ , typename CompareSelector = equal_to_selector
+ , typename AllocatorSelector = std_allocator_selector
+ , typename IsTR1NotBoost = ::boost::mpl::false_
+ >
+ struct hash_set_selector;
+
+ template <
+ typename HashSelector = boost_hash_selector
+ , typename CompareSelector = equal_to_selector
+ , typename AllocatorSelector = std_allocator_selector
+ , typename IsTR1NotBoost = ::boost::mpl::false_
+ >
+ struct hash_map_selector;
+
+ template <
+ typename HashSelector = boost_hash_selector
+ , typename CompareSelector = equal_to_selector
+ , typename AllocatorSelector = std_allocator_selector
+ , typename IsTR1NotBoost = ::boost::mpl::false_
+ >
+ struct hash_multiset_selector;
+
+ template <
+ typename HashSelector = boost_hash_selector
+ , typename CompareSelector = equal_to_selector
+ , typename AllocatorSelector = std_allocator_selector
+ , typename IsTR1NotBoost = ::boost::mpl::false_
+ >
+ struct hash_multimap_selector;
+//<-
+#endif // defined BOOST_HAS_HASH
+//->
+
+//<-
+#if !defined BOOST_MSVC
+//->
+ template <
+ typename ConstantSize
+ , typename CloneAllocator = ::boost::heap_clone_allocator
+ >
+ struct ptr_array_selector;
+//<-
+#endif
+//->
+
+ template <
+ typename CloneAllocator = ::boost::heap_clone_allocator
+ , typename Allocator = ::std::allocator<void*>
+ >
+ struct ptr_vector_selector;
+
+ template <
+ typename CloneAllocator = ::boost::heap_clone_allocator
+ , typename Allocator = ::std::allocator<void*>
+ >
+ struct ptr_deque_selector;
+
+ template <
+ typename CloneAllocator = ::boost::heap_clone_allocator
+ , typename Allocator = ::std::allocator<void*>
+ >
+ struct ptr_list_selector;
+
+ template <
+ typename CompareSelector = less_than_selector
+ , typename CloneAllocator = ::boost::heap_clone_allocator
+ , typename Allocator = ::std::allocator<void*>
+ >
+ struct ptr_set_selector;
+
+ template <
+ typename CompareSelector = less_than_selector
+ , typename CloneAllocator = ::boost::heap_clone_allocator
+ , typename Allocator = ::std::allocator<void*>
+ >
+ struct ptr_map_selector;
+
+ template <
+ typename CompareSelector = less_than_selector
+ , typename CloneAllocator = ::boost::heap_clone_allocator
+ , typename Allocator = ::std::allocator<void*>
+ >
+ struct ptr_multiset_selector;
+
+ template <
+ typename CompareSelector = less_than_selector
+ , typename CloneAllocator = ::boost::heap_clone_allocator
+ , typename Allocator = ::std::allocator<void*>
+ >
+ struct ptr_multimap_selector;
+
+//<-
+#if 0 // for documentation purposes
+//->
+ template <
+ typename HashSelector = boost_hash_selector
+ , typename CompareSelector = equal_to_selector
+ , typename CloneAllocator = ::boost::heap_clone_allocator
+ , typename Allocator = ::std::allocator<void*>
+ >
+ struct ptr_hash_set_selector;
+
+ template <
+ typename HashSelector = boost_hash_selector
+ , typename CompareSelector = equal_to_selector
+ , typename CloneAllocator = ::boost::heap_clone_allocator
+ , typename Allocator = ::std::allocator<void*>
+ >
+ struct ptr_hash_map_selector;
+
+ template <
+ typename HashSelector = boost_hash_selector
+ , typename CompareSelector = equal_to_selector
+ , typename CloneAllocator = ::boost::heap_clone_allocator
+ , typename Allocator = ::std::allocator<void*>
+ >
+ struct ptr_hash_multiset_selector;
+
+ template <
+ typename HashSelector = boost_hash_selector
+ , typename CompareSelector = equal_to_selector
+ , typename CloneAllocator = ::boost::heap_clone_allocator
+ , typename Allocator = ::std::allocator<void*>
+ >
+ struct ptr_hash_multimap_selector;
+//<-
+#endif // for documentation purposes
+#else // !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+ template <
+ typename T0 = ::boost::parameter::void_
+ , typename T1 = ::boost::parameter::void_
+ , typename T2 = ::boost::parameter::void_
+ >
+ struct set_selector;
+
+ template <
+ typename T0 = ::boost::parameter::void_
+ , typename T1 = ::boost::parameter::void_
+ , typename T2 = ::boost::parameter::void_
+ >
+ struct map_selector;
+
+ template <
+ typename T0 = ::boost::parameter::void_
+ , typename T1 = ::boost::parameter::void_
+ , typename T2 = ::boost::parameter::void_
+ >
+ struct multiset_selector;
+
+ template <
+ typename T0 = ::boost::parameter::void_
+ , typename T1 = ::boost::parameter::void_
+ , typename T2 = ::boost::parameter::void_
+ >
+ struct multimap_selector;
+
+ template <
+ typename T0 = ::boost::parameter::void_
+ , typename T1 = ::boost::parameter::void_
+ >
+ struct flat_set_selector;
+
+ template <
+ typename T0 = ::boost::parameter::void_
+ , typename T1 = ::boost::parameter::void_
+ >
+ struct flat_map_selector;
+
+ template <
+ typename T0 = ::boost::parameter::void_
+ , typename T1 = ::boost::parameter::void_
+ >
+ struct flat_multiset_selector;
+
+ template <
+ typename T0 = ::boost::parameter::void_
+ , typename T1 = ::boost::parameter::void_
+ >
+ struct flat_multimap_selector;
+
+ template <
+ typename T0 = ::boost::parameter::void_
+ , typename T1 = ::boost::parameter::void_
+ , typename T2 = ::boost::parameter::void_
+ , typename T3 = ::boost::parameter::void_
+ >
+ struct hash_set_selector;
+
+ template <
+ typename T0 = ::boost::parameter::void_
+ , typename T1 = ::boost::parameter::void_
+ , typename T2 = ::boost::parameter::void_
+ , typename T3 = ::boost::parameter::void_
+ >
+ struct hash_map_selector;
+
+ template <
+ typename T0 = ::boost::parameter::void_
+ , typename T1 = ::boost::parameter::void_
+ , typename T2 = ::boost::parameter::void_
+ , typename T3 = ::boost::parameter::void_
+ >
+ struct hash_multiset_selector;
+
+ template <
+ typename T0 = ::boost::parameter::void_
+ , typename T1 = ::boost::parameter::void_
+ , typename T2 = ::boost::parameter::void_
+ , typename T3 = ::boost::parameter::void_
+ >
+ struct hash_multimap_selector;
+
+#if !defined BOOST_MSVC
+ template <typename T0, typename T1 = ::boost::parameter::void_>
+ struct ptr_array_selector;
+#endif
+
+ template <
+ typename T0 = ::boost::parameter::void_
+ , typename T1 = ::boost::parameter::void_
+ >
+ struct ptr_vector_selector;
+
+ template <
+ typename T0 = ::boost::parameter::void_
+ , typename T1 = ::boost::parameter::void_
+ >
+ struct ptr_deque_selector;
+
+ template <
+ typename T0 = ::boost::parameter::void_
+ , typename T1 = ::boost::parameter::void_
+ >
+ struct ptr_list_selector;
+
+ template <
+ typename T0 = ::boost::parameter::void_
+ , typename T1 = ::boost::parameter::void_
+ , typename T2 = ::boost::parameter::void_
+ >
+ struct ptr_set_selector;
+
+ template <
+ typename T0 = ::boost::parameter::void_
+ , typename T1 = ::boost::parameter::void_
+ , typename T2 = ::boost::parameter::void_
+ >
+ struct ptr_map_selector;
+
+ template <
+ typename T0 = ::boost::parameter::void_
+ , typename T1 = ::boost::parameter::void_
+ , typename T2 = ::boost::parameter::void_
+ >
+ struct ptr_multiset_selector;
+
+ template <
+ typename T0 = ::boost::parameter::void_
+ , typename T1 = ::boost::parameter::void_
+ , typename T2 = ::boost::parameter::void_
+ >
+ struct ptr_multimap_selector;
+
+ template <
+ typename T0 = ::boost::parameter::void_
+ , typename T1 = ::boost::parameter::void_
+ , typename T2 = ::boost::parameter::void_
+ , typename T3 = ::boost::parameter::void_
+ >
+ struct ptr_hash_set_selector;
+
+ template <
+ typename T0 = ::boost::parameter::void_
+ , typename T1 = ::boost::parameter::void_
+ , typename T2 = ::boost::parameter::void_
+ , typename T3 = ::boost::parameter::void_
+ >
+ struct ptr_hash_map_selector;
+
+ template <
+ typename T0 = ::boost::parameter::void_
+ , typename T1 = ::boost::parameter::void_
+ , typename T2 = ::boost::parameter::void_
+ , typename T3 = ::boost::parameter::void_
+ >
+ struct ptr_hash_multiset_selector;
+
+ template <
+ typename T0 = ::boost::parameter::void_
+ , typename T1 = ::boost::parameter::void_
+ , typename T2 = ::boost::parameter::void_
+ , typename T3 = ::boost::parameter::void_
+ >
+ struct ptr_hash_multimap_selector;
+#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+//->
+
+ template <typename SequenceSelector = deque_selector<> >
+ struct stack_selector;
+
+ template <typename SequenceSelector = deque_selector<> >
+ struct queue_selector;
+
+//<-
+#if defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+//->
+ template <
+ typename CompareSelector = less_than_selector
+ , typename SequenceSelector = deque_selector<>
+ >
+ struct std_heap_selector;
+
+//<-
+#if 0 // for documentation purposes
+//->
+ template <
+ typename CompareSelector = less_than_selector
+ , typename AllocatorSelector = std_allocator_selector
+ , typename IsStable = ::boost::heap::stable<false>
+ , typename StabilityCounterType = ::boost::heap::stability_counter_type<
+ ::boost::uintmax_t
+ >
+ >
+ struct priority_queue_selector;
+
+ template <
+ typename Arity
+ , typename CompareSelector = less_than_selector
+ , typename AllocatorSelector = std_allocator_selector
+ , typename IsStable = ::boost::heap::stable<false>
+ , typename StabilityCounterType = ::boost::heap::stability_counter_type<
+ ::boost::uintmax_t
+ >
+ , typename IsMutable = ::boost::heap::mutable_<false>
+ >
+ struct d_ary_heap_selector;
+
+ template <
+ typename CompareSelector = less_than_selector
+ , typename AllocatorSelector = std_allocator_selector
+ , typename IsStable = ::boost::heap::stable<false>
+ , typename StabilityCounterType = ::boost::heap::stability_counter_type<
+ ::boost::uintmax_t
+ >
+ >
+ struct binomial_heap_selector;
+
+ template <
+ typename CompareSelector = less_than_selector
+ , typename AllocatorSelector = std_allocator_selector
+ , typename IsStable = ::boost::heap::stable<false>
+ , typename StabilityCounterType = ::boost::heap::stability_counter_type<
+ ::boost::uintmax_t
+ >
+ , typename ConstantTimeSize = ::boost::heap::constant_time_size<true>
+ >
+ struct fibonacci_heap_selector;
+
+ template <
+ typename CompareSelector = less_than_selector
+ , typename AllocatorSelector = std_allocator_selector
+ , typename IsStable = ::boost::heap::stable<false>
+ , typename StabilityCounterType = ::boost::heap::stability_counter_type<
+ ::boost::uintmax_t
+ >
+ , typename ConstantTimeSize = ::boost::heap::constant_time_size<true>
+ >
+ struct pairing_heap_selector;
+
+ template <
+ typename CompareSelector = less_than_selector
+ , typename AllocatorSelector = std_allocator_selector
+ , typename IsStable = ::boost::heap::stable<false>
+ , typename StoresParentPointer = ::boost::heap::store_parent_pointer<
+ false
+ >
+ , typename StabilityCounterType = ::boost::heap::stability_counter_type<
+ ::boost::uintmax_t
+ >
+ , typename ConstantTimeSize = ::boost::heap::constant_time_size<true>
+ , typename IsMutable = ::boost::heap::mutable_<false>
+ >
+ struct skew_heap_selector;
+//<-
+#endif // for documentation purposes
+#else // !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+ template <
+ typename T0 = ::boost::parameter::void_
+ , typename T1 = ::boost::parameter::void_
+ >
+ struct std_heap_selector;
+
+ template <
+ typename T0 = ::boost::parameter::void_
+ , typename T1 = ::boost::parameter::void_
+ , typename T2 = ::boost::parameter::void_
+ , typename T3 = ::boost::parameter::void_
+ >
+ struct priority_queue_selector;
+
+ template <
+ typename T0
+ , typename T1 = ::boost::parameter::void_
+ , typename T2 = ::boost::parameter::void_
+ , typename T3 = ::boost::parameter::void_
+ , typename T4 = ::boost::parameter::void_
+ , typename T5 = ::boost::parameter::void_
+ >
+ struct d_ary_heap_selector;
+
+ template <
+ typename T0 = ::boost::parameter::void_
+ , typename T1 = ::boost::parameter::void_
+ , typename T2 = ::boost::parameter::void_
+ , typename T3 = ::boost::parameter::void_
+ >
+ struct binomial_heap_selector;
+
+ template <
+ typename T0 = ::boost::parameter::void_
+ , typename T1 = ::boost::parameter::void_
+ , typename T2 = ::boost::parameter::void_
+ , typename T3 = ::boost::parameter::void_
+ , typename T4 = ::boost::parameter::void_
+ >
+ struct fibonacci_heap_selector;
+
+ template <
+ typename T0 = ::boost::parameter::void_
+ , typename T1 = ::boost::parameter::void_
+ , typename T2 = ::boost::parameter::void_
+ , typename T3 = ::boost::parameter::void_
+ , typename T4 = ::boost::parameter::void_
+ >
+ struct pairing_heap_selector;
+
+ template <
+ typename T0 = ::boost::parameter::void_
+ , typename T1 = ::boost::parameter::void_
+ , typename T2 = ::boost::parameter::void_
+ , typename T3 = ::boost::parameter::void_
+ , typename T4 = ::boost::parameter::void_
+ , typename T5 = ::boost::parameter::void_
+ , typename T6 = ::boost::parameter::void_
+ >
+ struct skew_heap_selector;
+#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+//->
+} // namespace boost
+//]
+
+//[reference__container_selector_typedefs
+namespace boost {
+
+ typedef vector_selector<> vecS;
+ typedef deque_selector<> dequeS;
+ typedef list_selector<> listS;
+//<-
+#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION || \
+ !defined BOOST_NO_SLIST
+//->
+ typedef slist_selector<> slistS;
+//<-
+#endif
+//->
+ typedef set_selector<> setS;
+ typedef map_selector<> mapS;
+ typedef multiset_selector<> multisetS;
+ typedef multimap_selector<> multimapS;
+//<-
+#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION || defined BOOST_HAS_HASH
+//->
+ typedef hash_set_selector<> hash_setS;
+ typedef hash_map_selector<> hash_mapS;
+ typedef hash_multiset_selector<> hash_multisetS;
+ typedef hash_multimap_selector<> hash_multimapS;
+//<-
+#endif
+//->
+ typedef ptr_vector_selector<> ptr_vecS;
+ typedef ptr_deque_selector<> ptr_dequeS;
+ typedef ptr_list_selector<> ptr_listS;
+ typedef ptr_set_selector<> ptr_setS;
+ typedef ptr_map_selector<> ptr_mapS;
+ typedef ptr_multiset_selector<> ptr_multisetS;
+ typedef ptr_multimap_selector<> ptr_multimapS;
+//<-
+#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+//->
+ typedef ptr_hash_set_selector<> ptr_hash_setS;
+ typedef ptr_hash_map_selector<> ptr_hash_mapS;
+ typedef ptr_hash_multiset_selector<> ptr_hash_multisetS;
+ typedef ptr_hash_multimap_selector<> ptr_hash_multimapS;
+ typedef stable_vector_selector<> stable_vecS;
+ typedef flat_set_selector<> flat_setS;
+ typedef flat_map_selector<> flat_mapS;
+ typedef flat_multiset_selector<> flat_multisetS;
+ typedef flat_multimap_selector<> flat_multimapS;
+//<-
+#endif
+//->
+ typedef stack_selector<> stackS;
+ typedef queue_selector<> queueS;
+ typedef std_heap_selector<> std_heapS;
+//<-
+#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+//->
+ typedef priority_queue_selector<> priority_queueS;
+ typedef binomial_heap_selector<> binomial_heapS;
+ typedef fibonacci_heap_selector<> fibonacci_heapS;
+ typedef pairing_heap_selector<> pairing_heapS;
+ typedef skew_heap_selector<> skew_heapS;
+//<-
+#endif
+//->
+} // namespace boost
+//]
+
+#endif // BOOST_CONTAINER_GEN_SELECTORS_HPP_INCLUDED
+

Added: sandbox/container_gen/boost/container_gen/splice_function_gen.hpp
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ sandbox/container_gen/boost/container_gen/splice_function_gen.hpp 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84957)
@@ -0,0 +1,1147 @@
+//=======================================================================
+// 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)
+//=======================================================================
+
+#ifndef BOOST_CONTAINER_GEN_SPLICE_FUNCTION_GEN_HPP_INCLUDED
+#define BOOST_CONTAINER_GEN_SPLICE_FUNCTION_GEN_HPP_INCLUDED
+
+#include <deque>
+#include <utility>
+#include <boost/config.hpp>
+#include <algorithm>
+#include <boost/mpl/bool.hpp>
+#include <boost/range.hpp>
+#include <boost/assert.hpp>
+
+#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+#include <boost/move/move.hpp>
+#endif
+
+namespace boost { namespace detail {
+
+ template <typename C>
+ inline typename C::iterator
+ random_access_splice(
+ C& _container
+ , typename C::iterator pos
+ , C& c
+ , typename C::iterator itr
+ )
+ {
+ if (pos == itr)
+ {
+ BOOST_ASSERT(&_container == &c);
+ return pos;
+ }
+ else
+ {
+ typename C::size_type insert_index = (
+ ::std::distance(_container.begin(), pos)
+ );
+
+ if ((&_container == &c) && (itr < pos))
+ {
+ --insert_index;
+ }
+
+#if defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+ typename C::value_type datum(*itr);
+
+ c.erase(itr);
+ return _container.insert(_container.begin() + insert_index, datum);
+#else
+ typename C::value_type datum(::boost::move(*itr));
+
+ c.erase(itr);
+ return _container.insert(
+ _container.begin() + insert_index
+ , ::boost::move(datum)
+ );
+#endif
+ }
+ }
+
+ template <typename C>
+ inline typename C::iterator
+ stable_splice(
+ C& _container
+ , typename C::iterator pos
+ , C& c
+ , typename C::iterator itr
+ )
+ {
+ if (pos == itr)
+ {
+ BOOST_ASSERT(&_container == &c);
+ return pos;
+ }
+ else
+ {
+#if defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+ typename C::value_type datum(*itr);
+
+ c.erase(itr);
+ return _container.insert(pos, datum);
+#else
+ typename C::value_type datum(::boost::move(*itr));
+
+ c.erase(itr);
+ return _container.insert(pos, ::boost::move(datum));
+#endif
+ }
+ }
+
+ template <typename C>
+ inline ::std::pair<typename C::iterator,typename C::iterator>
+ stable_splice(
+ C& _container
+ , typename C::iterator pos
+ , C& c
+ , typename C::iterator itr
+ , typename C::iterator itr_end
+ )
+ {
+ if (_container.empty())
+ {
+ BOOST_ASSERT(pos == _container.end());
+#if defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+ _container.insert(
+ _container.begin()
+ , itr
+ , itr_end
+ );
+#else
+ _container.insert(
+ _container.begin()
+ , ::boost::move_iterator<typename C::iterator>(itr)
+ , ::boost::move_iterator<typename C::iterator>(itr_end)
+ );
+#endif
+ return ::std::pair<typename C::iterator,typename C::iterator>(
+ _container.begin()
+ , _container.end()
+ );
+ }
+ else if ((pos == itr) || (pos == itr_end))
+ {
+ BOOST_ASSERT(&_container == &c);
+ return ::std::pair<typename C::iterator,typename C::iterator>(
+ itr
+ , itr_end
+ );
+ }
+ else
+ {
+#if defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+ C splice_buf(itr, itr_end);
+
+ c.erase(itr, itr_end);
+ return ::std::pair<typename C::iterator,typename C::iterator>(
+ _container.insert(
+ pos
+ , splice_buf.begin()
+ , splice_buf.end()
+ )
+ , pos
+ );
+#else // !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+ typedef ::boost::move_iterator<typename C::iterator> MoveItr;
+
+ MoveItr _itr(itr);
+ MoveItr _itr_end(itr_end);
+ C splice_buf(_itr, _itr_end);
+
+ c.erase(itr, itr_end);
+ return ::std::pair<typename C::iterator,typename C::iterator>(
+ _container.insert(
+ pos
+ , MoveItr(splice_buf.begin())
+ , MoveItr(splice_buf.end())
+ )
+ , pos
+ );
+#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+ }
+ }
+
+ template <typename C>
+ inline void
+ stable_splice_void_return(
+ C& _container
+ , typename C::iterator pos
+ , C& c
+ , typename C::iterator itr
+ , typename C::iterator itr_end
+ )
+ {
+ if (_container.empty())
+ {
+ BOOST_ASSERT(pos == _container.end());
+#if defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+ _container.insert(
+ _container.begin()
+ , itr
+ , itr_end
+ );
+#else
+ _container.insert(
+ _container.begin()
+ , ::boost::move_iterator<typename C::iterator>(itr)
+ , ::boost::move_iterator<typename C::iterator>(itr_end)
+ );
+#endif
+ }
+ else if ((pos == itr) || (pos == itr_end))
+ {
+ BOOST_ASSERT(&_container == &c);
+ }
+ else
+ {
+#if defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+ C splice_buf(itr, itr_end);
+
+ c.erase(itr, itr_end);
+ _container.insert(
+ pos
+ , splice_buf.begin()
+ , splice_buf.end()
+ );
+#else // !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+ typedef ::boost::move_iterator<typename C::iterator> MoveItr;
+
+ MoveItr _itr(itr);
+ MoveItr _itr_end(itr_end);
+ C splice_buf(_itr, _itr_end);
+
+ c.erase(itr, itr_end);
+ _container.insert(
+ pos
+ , MoveItr(splice_buf.begin())
+ , MoveItr(splice_buf.end())
+ );
+#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+ }
+ }
+
+ template <typename F, typename C>
+ class splice_function_proxy
+ {
+ C& _container;
+
+ public:
+ explicit splice_function_proxy(C& c);
+
+ splice_function_proxy&
+ operator()(
+ typename C::iterator pos
+ , C& c
+ , typename C::iterator itr
+ );
+
+ splice_function_proxy&
+ operator()(
+ typename C::iterator pos
+ , C& c
+ , typename C::iterator itr
+ , typename C::iterator itr_end
+ );
+ };
+
+ template <typename F, typename C>
+ splice_function_proxy<F,C>::splice_function_proxy(C& c)
+ : _container(c)
+ {
+ }
+
+ template <typename F, typename C>
+ inline splice_function_proxy<F,C>&
+ splice_function_proxy<F,C>::operator()(
+ typename C::iterator pos
+ , C& c
+ , typename C::iterator itr
+ )
+ {
+ F::evaluate(this->_container, pos, c, itr);
+ return *this;
+ }
+
+ template <typename F, typename C>
+ inline splice_function_proxy<F,C>&
+ splice_function_proxy<F,C>::operator()(
+ typename C::iterator pos
+ , C& c
+ , typename C::iterator itr
+ , typename C::iterator itr_end
+ )
+ {
+ F::evaluate(this->_container, pos, c, itr, itr_end);
+ return *this;
+ }
+
+ struct fis_splice_function
+ {
+ template <typename C>
+ splice_function_proxy<fis_splice_function,C>
+ operator[](C& _container) const;
+
+ template <typename C>
+ typename C::iterator
+ operator()(
+ C& _container
+ , typename C::iterator pos
+ , C& c
+ , typename C::iterator itr
+ ) const;
+
+ template <typename C>
+ ::std::pair<typename C::iterator,typename C::iterator>
+ operator()(
+ C& _container
+ , typename C::iterator pos
+ , C& c
+ , typename C::iterator itr
+ , typename C::iterator itr_end
+ ) const;
+
+ template <typename C>
+ static void
+ evaluate(
+ C& _container
+ , typename C::iterator pos
+ , C& c
+ , typename C::iterator itr
+ );
+
+ template <typename C>
+ static void
+ evaluate(
+ C& _container
+ , typename C::iterator pos
+ , C& c
+ , typename C::iterator itr
+ , typename C::iterator itr_end
+ );
+ };
+
+ template <typename C>
+ inline splice_function_proxy<fis_splice_function,C>
+ fis_splice_function::operator[](C& _container) const
+ {
+ return splice_function_proxy<fis_splice_function,C>(_container);
+ }
+
+ template <typename C>
+ inline typename C::iterator
+ fis_splice_function::operator()(
+ C& _container
+ , typename C::iterator pos
+ , C& c
+ , typename C::iterator itr
+ ) const
+ {
+ typename C::iterator result_begin = _container.previous(pos);
+ fis_splice_function::evaluate(
+ _container
+ , pos
+ , c
+ , itr
+ );
+ return ++result_begin;
+ }
+
+ template <typename C>
+ inline ::std::pair<typename C::iterator,typename C::iterator>
+ fis_splice_function::operator()(
+ C& _container
+ , typename C::iterator pos
+ , C& c
+ , typename C::iterator itr
+ , typename C::iterator itr_end
+ ) const
+ {
+ typename C::iterator result_begin = _container.previous(pos);
+ fis_splice_function::evaluate(
+ _container
+ , pos
+ , c
+ , itr
+ , itr_end
+ );
+ return ::std::pair<typename C::iterator,typename C::iterator>(
+ ++result_begin
+ , pos
+ );
+ }
+
+ template <typename C>
+ inline void
+ fis_splice_function::evaluate(
+ C& _container
+ , typename C::iterator pos
+ , C& c
+ , typename C::iterator itr
+ )
+ {
+ stable_splice(_container, pos, c, itr);
+ }
+
+ template <typename C>
+ inline void
+ fis_splice_function::evaluate(
+ C& _container
+ , typename C::iterator pos
+ , C& c
+ , typename C::iterator itr
+ , typename C::iterator itr_end
+ )
+ {
+ stable_splice_void_return(_container, pos, c, itr, itr_end);
+ }
+
+ struct ras_splice_function
+ {
+ template <typename C>
+ splice_function_proxy<ras_splice_function,C>
+ operator[](C& _container) const;
+
+ template <typename C>
+ typename C::iterator
+ operator()(
+ C& _container
+ , typename C::iterator pos
+ , C& c
+ , typename C::iterator itr
+ ) const;
+
+ template <typename C>
+ ::std::pair<typename C::iterator,typename C::iterator>
+ operator()(
+ C& _container
+ , typename C::iterator pos
+ , C& c
+ , typename C::iterator itr
+ , typename C::iterator itr_end
+ ) const;
+
+ template <typename C>
+ static void
+ evaluate(
+ C& _container
+ , typename C::iterator pos
+ , C& c
+ , typename C::iterator itr
+ );
+
+ template <typename C>
+ static void
+ evaluate(
+ C& _container
+ , typename C::iterator pos
+ , C& c
+ , typename C::iterator itr
+ , typename C::iterator itr_end
+ );
+ };
+
+ template <typename C>
+ inline splice_function_proxy<ras_splice_function,C>
+ ras_splice_function::operator[](C& _container) const
+ {
+ return splice_function_proxy<ras_splice_function,C>(_container);
+ }
+
+ template <typename C>
+ inline typename C::iterator
+ ras_splice_function::operator()(
+ C& _container
+ , typename C::iterator pos
+ , C& c
+ , typename C::iterator itr
+ ) const
+ {
+ return random_access_splice(_container, pos, c, itr);
+ }
+
+ template <typename C>
+ inline ::std::pair<typename C::iterator,typename C::iterator>
+ ras_splice_function::operator()(
+ C& _container
+ , typename C::iterator pos
+ , C& c
+ , typename C::iterator itr
+ , typename C::iterator itr_end
+ ) const
+ {
+ if (_container.empty())
+ {
+ BOOST_ASSERT(pos == _container.end());
+#if defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+ _container.insert(
+ _container.begin()
+ , itr
+ , itr_end
+ );
+#else
+ _container.insert(
+ _container.begin()
+ , ::boost::move_iterator<typename C::iterator>(itr)
+ , ::boost::move_iterator<typename C::iterator>(itr_end)
+ );
+#endif
+ return ::std::pair<typename C::iterator,typename C::iterator>(
+ _container.begin()
+ , _container.end()
+ );
+ }
+ else if ((pos == itr) || (pos == itr_end))
+ {
+ BOOST_ASSERT(&_container == &c);
+ return ::std::pair<typename C::iterator,typename C::iterator>(
+ itr
+ , itr_end
+ );
+ }
+ else
+ {
+ typename C::size_type insert_index = (
+ ::std::distance(_container.begin(), pos)
+ );
+
+#if defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+ C splice_buf(itr, itr_end);
+ typename C::size_type const range_size = splice_buf.size();
+
+ if ((&_container == &c) && (itr < pos))
+ {
+ BOOST_ASSERT_MSG(
+ !(pos < itr_end)
+ , "Insertion point lies inside subrange to splice."
+ );
+ insert_index -= range_size;
+ }
+
+ c.erase(itr, itr_end);
+
+ typename C::iterator result_itr = _container.insert(
+ _container.begin() + insert_index
+ , splice_buf.begin()
+ , splice_buf.end()
+ );
+#else // !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+ typedef ::boost::move_iterator<typename C::iterator> MoveItr;
+
+ MoveItr _itr(itr);
+ MoveItr _itr_end(itr_end);
+ C splice_buf(_itr, _itr_end);
+ typename C::size_type const range_size = splice_buf.size();
+
+ if ((&_container == &c) && (itr < pos))
+ {
+ BOOST_ASSERT_MSG(
+ !(pos < itr_end)
+ , "Insertion point lies inside subrange to splice."
+ );
+ insert_index -= range_size;
+ }
+
+ c.erase(itr, itr_end);
+
+ typename C::iterator result_itr = _container.insert(
+ _container.begin() + insert_index
+ , MoveItr(splice_buf.begin())
+ , MoveItr(splice_buf.end())
+ );
+#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+ return ::std::pair<typename C::iterator,typename C::iterator>(
+ result_itr
+ , result_itr + range_size
+ );
+ }
+ }
+
+ template <typename C>
+ inline void
+ ras_splice_function::evaluate(
+ C& _container
+ , typename C::iterator pos
+ , C& c
+ , typename C::iterator itr
+ )
+ {
+ random_access_splice(_container, pos, c, itr);
+ }
+
+ template <typename C>
+ inline void
+ ras_splice_function::evaluate(
+ C& _container
+ , typename C::iterator pos
+ , C& c
+ , typename C::iterator itr
+ , typename C::iterator itr_end
+ )
+ {
+ if (_container.empty())
+ {
+ BOOST_ASSERT(pos == _container.end());
+#if defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+ _container.insert(
+ _container.begin()
+ , itr
+ , itr_end
+ );
+#else
+ _container.insert(
+ _container.begin()
+ , ::boost::move_iterator<typename C::iterator>(itr)
+ , ::boost::move_iterator<typename C::iterator>(itr_end)
+ );
+#endif
+ }
+ else if ((pos == itr) || (pos == itr_end))
+ {
+ BOOST_ASSERT(&_container == &c);
+ }
+ else
+ {
+ typename C::size_type insert_index = (
+ ::std::distance(_container.begin(), pos)
+ );
+
+#if defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+ C splice_buf(itr, itr_end);
+
+ if ((&_container == &c) && (itr < pos))
+ {
+ BOOST_ASSERT_MSG(
+ !(pos < itr_end)
+ , "Insertion point lies inside subrange to splice."
+ );
+ insert_index -= splice_buf.size();
+ }
+
+ c.erase(itr, itr_end);
+ _container.insert(
+ _container.begin() + insert_index
+ , splice_buf.begin()
+ , splice_buf.end()
+ );
+#else // !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+ typedef ::boost::move_iterator<typename C::iterator> MoveItr;
+
+ MoveItr _itr(itr);
+ MoveItr _itr_end(itr_end);
+ C splice_buf(_itr, _itr_end);
+
+ if ((&_container == &c) && (itr < pos))
+ {
+ BOOST_ASSERT_MSG(
+ !(pos < itr_end)
+ , "Insertion point lies inside subrange to splice."
+ );
+ insert_index -= splice_buf.size();
+ }
+
+ c.erase(itr, itr_end);
+ _container.insert(
+ _container.begin() + insert_index
+ , MoveItr(splice_buf.begin())
+ , MoveItr(splice_buf.end())
+ );
+#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+ }
+ }
+
+ struct ptr_ras_splice_function
+ {
+ template <typename C>
+ splice_function_proxy<ptr_ras_splice_function,C>
+ operator[](C& _container) const;
+
+ template <typename C>
+ typename C::iterator
+ operator()(
+ C& _container
+ , typename C::iterator pos
+ , C& c
+ , typename C::iterator itr
+ ) const;
+
+ template <typename C>
+ ::std::pair<typename C::iterator,typename C::iterator>
+ operator()(
+ C& _container
+ , typename C::iterator pos
+ , C& c
+ , typename C::iterator itr
+ , typename C::iterator itr_end
+ ) const;
+
+ template <typename C>
+ static void
+ evaluate(
+ C& _container
+ , typename C::iterator pos
+ , C& c
+ , typename C::iterator itr
+ );
+
+ template <typename C>
+ static void
+ evaluate(
+ C& _container
+ , typename C::iterator pos
+ , C& c
+ , typename C::iterator itr
+ , typename C::iterator itr_end
+ );
+ };
+
+ template <typename C>
+ inline splice_function_proxy<ptr_ras_splice_function,C>
+ ptr_ras_splice_function::operator[](C& _container) const
+ {
+ return splice_function_proxy<ptr_ras_splice_function,C>(_container);
+ }
+
+ template <typename C>
+ inline typename C::iterator
+ ptr_ras_splice_function::operator()(
+ C& _container
+ , typename C::iterator pos
+ , C& c
+ , typename C::iterator itr
+ ) const
+ {
+ if (pos != itr)
+ {
+ typename C::size_type insert_index = (
+ ::std::distance(_container.begin(), pos)
+ );
+ C splice_buf;
+
+ if ((&_container == &c) && (itr < pos))
+ {
+ --insert_index;
+ }
+
+ splice_buf.transfer(splice_buf.begin(), itr, c);
+ pos = _container.begin() + insert_index;
+ _container.transfer(pos, splice_buf);
+ }
+
+ return pos;
+ }
+
+ template <typename C>
+ inline ::std::pair<typename C::iterator,typename C::iterator>
+ ptr_ras_splice_function::operator()(
+ C& _container
+ , typename C::iterator pos
+ , C& c
+ , typename C::iterator itr
+ , typename C::iterator itr_end
+ ) const
+ {
+ typename C::size_type const r_size = ::std::distance(itr, itr_end);
+
+ if ((pos == itr) || (pos == itr_end))
+ {
+ return ::std::pair<typename C::iterator,typename C::iterator>(
+ pos
+ , pos + r_size
+ );
+ }
+ else
+ {
+ typename C::size_type insert_index = (
+ ::std::distance(_container.begin(), pos)
+ );
+ C splice_buf;
+
+ if ((&_container == &c) && (itr < pos))
+ {
+ BOOST_ASSERT_MSG(
+ !(pos < itr_end)
+ , "Insertion point lies inside subrange to splice."
+ );
+ insert_index -= r_size;
+ }
+
+ splice_buf.transfer(splice_buf.begin(), itr, itr_end, c);
+ _container.transfer(_container.begin() + insert_index, splice_buf);
+ return ::std::pair<typename C::iterator,typename C::iterator>(
+ _container.begin() + insert_index
+ , _container.begin() + insert_index + r_size
+ );
+ }
+ }
+
+ template <typename C>
+ inline void
+ ptr_ras_splice_function::evaluate(
+ C& _container
+ , typename C::iterator pos
+ , C& c
+ , typename C::iterator itr
+ )
+ {
+ if (pos != itr)
+ {
+ typename C::size_type insert_index = (
+ ::std::distance(_container.begin(), pos)
+ );
+ C splice_buf;
+
+ if ((&_container == &c) && (itr < pos))
+ {
+ --insert_index;
+ }
+
+ splice_buf.transfer(splice_buf.begin(), itr, c);
+ _container.transfer(_container.begin() + insert_index, splice_buf);
+ }
+ }
+
+ template <typename C>
+ inline void
+ ptr_ras_splice_function::evaluate(
+ C& _container
+ , typename C::iterator pos
+ , C& c
+ , typename C::iterator itr
+ , typename C::iterator itr_end
+ )
+ {
+ if ((pos != itr) && (pos != itr_end))
+ {
+ typename C::size_type insert_index = (
+ ::std::distance(_container.begin(), pos)
+ );
+ C splice_buf;
+
+ if ((&_container == &c) && (itr < pos))
+ {
+ BOOST_ASSERT_MSG(
+ !(pos < itr_end)
+ , "Insertion point lies inside subrange to splice."
+ );
+ insert_index -= ::std::distance(itr, itr_end);
+ }
+
+ splice_buf.transfer(splice_buf.begin(), itr, itr_end, c);
+ _container.transfer(_container.begin() + insert_index, splice_buf);
+ }
+ }
+
+ struct bis_splice_function
+ {
+ template <typename C>
+ splice_function_proxy<bis_splice_function,C>
+ operator[](C& _container) const;
+
+ template <typename C>
+ typename C::iterator
+ operator()(
+ C& _container
+ , typename C::iterator pos
+ , C& c
+ , typename C::iterator itr
+ ) const;
+
+ template <typename C>
+ ::std::pair<typename C::iterator,typename C::iterator>
+ operator()(
+ C& _container
+ , typename C::iterator pos
+ , C& c
+ , typename C::iterator itr
+ , typename C::iterator itr_end
+ ) const;
+
+ template <typename C>
+ static void
+ evaluate(
+ C& _container
+ , typename C::iterator pos
+ , C& c
+ , typename C::iterator itr
+ );
+
+ template <typename C>
+ static void
+ evaluate(
+ C& _container
+ , typename C::iterator pos
+ , C& c
+ , typename C::iterator itr
+ , typename C::iterator itr_end
+ );
+ };
+
+ template <typename C>
+ inline splice_function_proxy<bis_splice_function,C>
+ bis_splice_function::operator[](C& _container) const
+ {
+ return splice_function_proxy<bis_splice_function,C>(_container);
+ }
+
+ template <typename C>
+ inline typename C::iterator
+ bis_splice_function::operator()(
+ C& _container
+ , typename C::iterator pos
+ , C& c
+ , typename C::iterator itr
+ ) const
+ {
+ return stable_splice(_container, pos, c, itr);
+ }
+
+ template <typename C>
+ inline ::std::pair<typename C::iterator,typename C::iterator>
+ bis_splice_function::operator()(
+ C& _container
+ , typename C::iterator pos
+ , C& c
+ , typename C::iterator itr
+ , typename C::iterator itr_end
+ ) const
+ {
+ return stable_splice(_container, pos, c, itr, itr_end);
+ }
+
+ template <typename C>
+ inline void
+ bis_splice_function::evaluate(
+ C& _container
+ , typename C::iterator pos
+ , C& c
+ , typename C::iterator itr
+ )
+ {
+ stable_splice(_container, pos, c, itr);
+ }
+
+ template <typename C>
+ inline void
+ bis_splice_function::evaluate(
+ C& _container
+ , typename C::iterator pos
+ , C& c
+ , typename C::iterator itr
+ , typename C::iterator itr_end
+ )
+ {
+ stable_splice_void_return(_container, pos, c, itr, itr_end);
+ }
+
+ struct ptr_bis_splice_function
+ {
+ template <typename C>
+ splice_function_proxy<ptr_bis_splice_function,C>
+ operator[](C& _container) const;
+
+ template <typename C>
+ typename C::iterator
+ operator()(
+ C& _container
+ , typename C::iterator pos
+ , C& c
+ , typename C::iterator itr
+ ) const;
+
+ template <typename C>
+ ::std::pair<typename C::iterator,typename C::iterator>
+ operator()(
+ C& _container
+ , typename C::iterator pos
+ , C& c
+ , typename C::iterator itr
+ , typename C::iterator itr_end
+ ) const;
+
+ template <typename C>
+ static void
+ evaluate(
+ C& _container
+ , typename C::iterator pos
+ , C& c
+ , typename C::iterator itr
+ );
+
+ template <typename C>
+ static void
+ evaluate(
+ C& _container
+ , typename C::iterator pos
+ , C& c
+ , typename C::iterator itr
+ , typename C::iterator itr_end
+ );
+ };
+
+ template <typename C>
+ inline splice_function_proxy<ptr_bis_splice_function,C>
+ ptr_bis_splice_function::operator[](C& _container) const
+ {
+ return splice_function_proxy<ptr_bis_splice_function,C>(_container);
+ }
+
+ template <typename C>
+ inline typename C::iterator
+ ptr_bis_splice_function::operator()(
+ C& _container
+ , typename C::iterator pos
+ , C& c
+ , typename C::iterator itr
+ ) const
+ {
+ if (_container.empty())
+ {
+ BOOST_ASSERT(pos == _container.end());
+ ptr_bis_splice_function::evaluate(
+ _container
+ , pos
+ , c
+ , itr
+ );
+ return _container.begin();
+ }
+ else
+ {
+ typename C::iterator start = pos;
+ --start;
+ ptr_bis_splice_function::evaluate(
+ _container
+ , pos
+ , c
+ , itr
+ );
+ return ++start;
+ }
+ }
+
+ template <typename C>
+ inline ::std::pair<typename C::iterator,typename C::iterator>
+ ptr_bis_splice_function::operator()(
+ C& _container
+ , typename C::iterator pos
+ , C& c
+ , typename C::iterator itr
+ , typename C::iterator itr_end
+ ) const
+ {
+ if (_container.empty())
+ {
+ BOOST_ASSERT(pos == _container.end());
+ ptr_bis_splice_function::evaluate(
+ _container
+ , pos
+ , c
+ , itr
+ , itr_end
+ );
+ return ::std::pair<typename C::iterator,typename C::iterator>(
+ _container.begin()
+ , _container.end()
+ );
+ }
+ else
+ {
+ typename C::iterator start = pos;
+ --start;
+ ptr_bis_splice_function::evaluate(
+ _container
+ , pos
+ , c
+ , itr
+ , itr_end
+ );
+ return ::std::pair<typename C::iterator,typename C::iterator>(
+ ++start
+ , pos
+ );
+ }
+ }
+
+ template <typename C>
+ inline void
+ ptr_bis_splice_function::evaluate(
+ C& _container
+ , typename C::iterator pos
+ , C& c
+ , typename C::iterator itr
+ )
+ {
+ C splice_buf;
+
+ splice_buf.transfer(splice_buf.begin(), itr, c);
+ _container.transfer(pos, splice_buf);
+ }
+
+ template <typename C>
+ inline void
+ ptr_bis_splice_function::evaluate(
+ C& _container
+ , typename C::iterator pos
+ , C& c
+ , typename C::iterator itr
+ , typename C::iterator itr_end
+ )
+ {
+ C splice_buf;
+
+ splice_buf.transfer(splice_buf.begin(), itr, itr_end, c);
+ _container.transfer(pos, splice_buf);
+ }
+}} // namespace boost::detail
+
+#include <boost/mpl/identity.hpp>
+#include <boost/mpl/if.hpp>
+#include <boost/mpl/eval_if.hpp>
+#include <boost/mpl/aux_/lambda_support.hpp>
+#include <boost/container_gen/is_ptr_selector.hpp>
+#include <boost/container_gen/is_random_access_selector.hpp>
+#include <boost/container_gen/is_reversible_selector.hpp>
+
+//[reference__splice_function_gen
+namespace boost {
+
+ template <typename Selector>
+ struct splice_function_gen
+ //<-
+ : ::boost::mpl::eval_if<
+ is_ptr_selector<Selector>
+ , ::boost::mpl::if_<
+ is_random_access_selector<Selector>
+ , detail::ptr_ras_splice_function
+ , detail::ptr_bis_splice_function
+ >
+ , ::boost::mpl::eval_if<
+ is_random_access_selector<Selector>
+ , ::boost::mpl::identity<detail::ras_splice_function>
+ , ::boost::mpl::if_<
+ is_reversible_selector<Selector>
+ , detail::bis_splice_function
+ , detail::fis_splice_function
+ >
+ >
+ >
+ //->
+ {
+ // typedef ... type;
+ //<-
+ BOOST_MPL_AUX_LAMBDA_SUPPORT(1, splice_function_gen, (Selector))
+ //->
+ };
+
+} // namespace boost
+//]
+
+#endif // BOOST_CONTAINER_GEN_SPLICE_FUNCTION_GEN_HPP_INCLUDED
+

Added: sandbox/container_gen/boost/detail/metafunction/is_mergeable_heap.hpp
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ sandbox/container_gen/boost/detail/metafunction/is_mergeable_heap.hpp 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84957)
@@ -0,0 +1,37 @@
+// 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)
+
+#ifndef BOOST_DETAIL_METAFUNCTION_IS_MERGEABLE_HEAP_HPP_INCLUDED
+#define BOOST_DETAIL_METAFUNCTION_IS_MERGEABLE_HEAP_HPP_INCLUDED
+
+#include <boost/mpl/vector.hpp>
+#include <boost/mpl/bool.hpp>
+#include <boost/mpl/eval_if.hpp>
+#include <boost/mpl/aux_/lambda_support.hpp>
+#include <boost/function_types/property_tags.hpp>
+#include <boost/detail/metafunction/has_mfunc_merge.hpp>
+#include <boost/detail/metafunction/is_heap.hpp>
+
+namespace boost { namespace detail { namespace metafunction {
+
+ template <typename T>
+ struct is_mergeable_heap
+ : ::boost::mpl::eval_if<
+ is_heap<T>
+ , has_member_function_merge<
+ T
+ , void
+ , ::boost::mpl::vector1<T&>
+ , ::boost::function_types::non_const
+ >
+ , ::boost::mpl::false_
+ >::type
+ {
+ BOOST_MPL_AUX_LAMBDA_SUPPORT(1,is_mergeable_heap,(T))
+ };
+}}} // namespace boost::detail::metafunction
+
+#endif // BOOST_DETAIL_METAFUNCTION_IS_MERGEABLE_HEAP_HPP_INCLUDED
+

Added: sandbox/container_gen/boost/detail/metafunction/is_mutable_heap.hpp
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ sandbox/container_gen/boost/detail/metafunction/is_mutable_heap.hpp 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84957)
@@ -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)
+
+#ifndef BOOST_DETAIL_METAFUNCTION_IS_MUTABLE_HEAP_HPP_INCLUDED
+#define BOOST_DETAIL_METAFUNCTION_IS_MUTABLE_HEAP_HPP_INCLUDED
+
+#include <boost/tr1/type_traits.hpp>
+#include <boost/mpl/vector.hpp>
+#include <boost/mpl/bool.hpp>
+#include <boost/mpl/if.hpp>
+#include <boost/mpl/eval_if.hpp>
+#include <boost/mpl/aux_/lambda_support.hpp>
+#include <boost/function_types/property_tags.hpp>
+#include <boost/detail/metafunction/has_mfunc_update.hpp>
+#include <boost/detail/metafunction/has_mfunc_increase.hpp>
+#include <boost/detail/metafunction/has_mfunc_decrease.hpp>
+#include <boost/detail/metafunction/has_mfunc_push.hpp>
+#include <boost/detail/metafunction/has_handle_type.hpp>
+#include <boost/detail/metafunction/is_heap.hpp>
+
+namespace boost { namespace detail { namespace metafunction {
+
+ template <typename T>
+ struct is_mutable_heap_with_increase
+ : ::boost::mpl::eval_if<
+ typename has_member_function_increase<
+ T
+ , void
+ , ::boost::mpl::vector1<typename T::handle_type>
+ , ::boost::function_types::non_const
+ >::type
+ , has_member_function_increase<
+ T
+ , void
+ , ::boost::mpl::vector2<
+ typename T::handle_type
+ , typename T::const_reference
+ >
+ , ::boost::function_types::non_const
+ >
+ , ::boost::mpl::false_
+ >
+ {
+ };
+
+ template <typename T>
+ struct is_mutable_heap_with_decrease
+ : ::boost::mpl::eval_if<
+ typename has_member_function_decrease<
+ T
+ , void
+ , ::boost::mpl::vector1<typename T::handle_type>
+ , ::boost::function_types::non_const
+ >::type
+ , has_member_function_decrease<
+ T
+ , void
+ , ::boost::mpl::vector2<
+ typename T::handle_type
+ , typename T::const_reference
+ >
+ , ::boost::function_types::non_const
+ >
+ , ::boost::mpl::false_
+ >::type
+ {
+ };
+
+ template <typename T>
+ struct is_mutable_heap_with_push
+ : has_member_function_push<
+ T
+ , typename T::handle_type
+ , ::boost::mpl::vector1<typename T::const_reference>
+ , ::boost::function_types::non_const
+ >
+ {
+ };
+
+ template <typename T>
+ struct is_mutable_heap_impl
+ : ::boost::mpl::eval_if<
+ typename ::boost::mpl::eval_if<
+ typename ::boost::mpl::eval_if<
+ typename has_member_function_update<
+ T
+ , void
+ , ::boost::mpl::vector1<typename T::handle_type>
+ , ::boost::function_types::non_const
+ >::type
+ , has_member_function_update<
+ T
+ , void
+ , ::boost::mpl::vector2<
+ typename T::handle_type
+ , typename T::const_reference
+ >
+ , ::boost::function_types::non_const
+ >
+ , ::boost::mpl::false_
+ >::type
+ , is_mutable_heap_with_increase<T>
+ , ::boost::mpl::false_
+ >::type
+ , ::boost::mpl::eval_if<
+ is_mutable_heap_with_decrease<T>
+ , is_mutable_heap_with_push<T>
+ , ::boost::mpl::false_
+ >
+ , ::boost::mpl::false_
+ >
+ {
+ };
+
+ template <typename T>
+ struct is_mutable_heap
+ : ::boost::mpl::eval_if<
+ typename ::boost::mpl::eval_if<
+ is_heap<T>
+ , has_handle_type<T>
+ , ::boost::mpl::false_
+ >::type
+ , is_mutable_heap_impl<T>
+ , ::boost::mpl::false_
+ >::type
+ {
+ BOOST_MPL_AUX_LAMBDA_SUPPORT(1,is_mutable_heap,(T))
+ };
+}}} // namespace boost::detail::metafunction
+
+#endif // BOOST_DETAIL_METAFUNCTION_IS_MUTABLE_HEAP_HPP_INCLUDED
+

Added: sandbox/container_gen/boost/detail/preprocessor/binary_seq_inc_for_param.hpp
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ sandbox/container_gen/boost/detail/preprocessor/binary_seq_inc_for_param.hpp 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84957)
@@ -0,0 +1,57 @@
+// 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)
+
+#ifndef BOOST_DETAIL_PREPROCESSOR_BINARY_SEQ_INC_FOR_PARAM_HPP_INCLUDED
+#define BOOST_DETAIL_PREPROCESSOR_BINARY_SEQ_INC_FOR_PARAM_HPP_INCLUDED
+
+#include <boost/preprocessor/control/iif.hpp>
+#include <boost/preprocessor/seq/seq.hpp>
+#include <boost/preprocessor/seq/push_back.hpp>
+#include <boost/preprocessor/seq/fold_left.hpp>
+#include <boost/preprocessor/tuple/elem.hpp>
+
+#define BOOST_DETAIL_PP_BINARY_SEQ_INC_FOR_PARAM_OP(s, result_tuple, element) \
+( \
+ BOOST_PP_SEQ_PUSH_BACK( \
+ BOOST_PP_TUPLE_ELEM(2, 0, result_tuple) \
+ , BOOST_PP_IIF( \
+ BOOST_PP_TUPLE_ELEM(2, 1, result_tuple) \
+ , BOOST_PP_IIF(element, 0, 1) \
+ , element \
+ ) \
+ ) \
+ , BOOST_PP_IIF(BOOST_PP_TUPLE_ELEM(2, 1, result_tuple), element, 0) \
+) \
+//!
+
+#define BOOST_DETAIL_PP_BINARY_SEQ_INC_FOR_PARAM_IMPL(seq_and_flag) \
+BOOST_PP_IIF( \
+ BOOST_PP_TUPLE_ELEM(2, 1, seq_and_flag) \
+ , BOOST_PP_SEQ_PUSH_BACK(BOOST_PP_TUPLE_ELEM(2, 0, seq_and_flag), 0) \
+ , BOOST_PP_TUPLE_ELEM(2, 0, seq_and_flag) \
+) \
+//!
+
+// This macro treats the specified Boost.Preprocessor sequence of 1s and 0s
+// like a binary number in reverse and returns a Boost.Preprocessor sequence
+// representing the next value up. However, if the input sequence contains
+// all 1s, then the output sequence will contain one more element but all 0s.
+//
+// Examples:
+// seq = (1)(0)(1)(0) --> return (0)(1)(1)(0)
+// seq = (1)(1)(1)(0) --> return (0)(0)(0)(1)
+// seq = (1)(1)(1)(1) --> return (0)(0)(0)(0)(0)
+#define BOOST_DETAIL_PP_BINARY_SEQ_INC_FOR_PARAM(seq) \
+BOOST_DETAIL_PP_BINARY_SEQ_INC_FOR_PARAM_IMPL( \
+ BOOST_PP_SEQ_FOLD_LEFT( \
+ BOOST_DETAIL_PP_BINARY_SEQ_INC_FOR_PARAM_OP \
+ , (BOOST_PP_SEQ_NIL, 1) \
+ , seq \
+ ) \
+) \
+//!
+
+#endif // BOOST_DETAIL_PREPROCESSOR_BINARY_SEQ_INC_FOR_PARAM_HPP_INCLUDED
+

Added: sandbox/container_gen/boost/detail/preprocessor/binary_seq_to_params.hpp
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ sandbox/container_gen/boost/detail/preprocessor/binary_seq_to_params.hpp 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84957)
@@ -0,0 +1,74 @@
+// 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)
+
+#ifndef BOOST_DETAIL_PREPROCESSOR_BINARY_SEQ_TO_PARAMS_HPP_INCLUDED
+#define BOOST_DETAIL_PREPROCESSOR_BINARY_SEQ_TO_PARAMS_HPP_INCLUDED
+
+#include <boost/preprocessor/cat.hpp>
+#include <boost/preprocessor/facilities/empty.hpp>
+#include <boost/preprocessor/punctuation/comma.hpp>
+#include <boost/preprocessor/comparison/less.hpp>
+#include <boost/preprocessor/control/iif.hpp>
+#include <boost/preprocessor/repetition/for.hpp>
+#include <boost/preprocessor/seq/seq.hpp>
+#include <boost/preprocessor/seq/elem.hpp>
+#include <boost/preprocessor/seq/size.hpp>
+#include <boost/preprocessor/seq/push_back.hpp>
+#include <boost/preprocessor/seq/fold_left.hpp>
+#include <boost/preprocessor/seq/enum.hpp>
+#include <boost/preprocessor/tuple/elem.hpp>
+
+#define BOOST_DETAIL_PP_BINARY_SEQ_AUGMENT_INDEX_FOLD_OP(s, out_seq, in_elem) \
+BOOST_PP_SEQ_PUSH_BACK(out_seq, (in_elem, BOOST_PP_SEQ_SIZE(out_seq))) \
+//!
+
+#define BOOST_DETAIL_PP_BINARY_SEQ_TO_PARAM_SEQ_FOLD_OP(s, io_seq, seq_elem) \
+( \
+ BOOST_PP_SEQ_PUSH_BACK( \
+ BOOST_PP_SEQ_ELEM(0, io_seq) \
+ , BOOST_PP_CAT( \
+ BOOST_PP_SEQ_ELEM(1, io_seq) \
+ , BOOST_PP_TUPLE_ELEM(2, 1, seq_elem) \
+ ) BOOST_PP_IIF( \
+ BOOST_PP_TUPLE_ELEM(2, 0, seq_elem) \
+ , BOOST_PP_SEQ_ELEM(2, io_seq) \
+ , BOOST_PP_SEQ_ELEM(3, io_seq) \
+ ) BOOST_PP_CAT( \
+ BOOST_PP_SEQ_ELEM(4, io_seq) \
+ , BOOST_PP_TUPLE_ELEM(2, 1, seq_elem) \
+ ) \
+ ) \
+)(BOOST_PP_SEQ_ELEM(1, io_seq))(BOOST_PP_SEQ_ELEM(2, io_seq)) \
+(BOOST_PP_SEQ_ELEM(3, io_seq))(BOOST_PP_SEQ_ELEM(4, io_seq)) \
+//!
+
+// This macro converts the specified Boost.Preprocessor sequence of 1s and 0s
+// into a formal function parameter list.
+//
+// Example:
+//
+// BOOST_DETAIL_PP_BINARY_SEQ_TO_PARAMS((1)(0)(1)(0), P, &, const&, p)
+// expands to
+// P0 & p0, P1 const& p1, P2 & p2, P3 const& p3
+
+#define BOOST_DETAIL_PP_BINARY_SEQ_TO_PARAMS(seq, P, i1, i0, p) \
+BOOST_PP_SEQ_ENUM( \
+ BOOST_PP_SEQ_ELEM( \
+ 0 \
+ , BOOST_PP_SEQ_FOLD_LEFT( \
+ BOOST_DETAIL_PP_BINARY_SEQ_TO_PARAM_SEQ_FOLD_OP \
+ , (BOOST_PP_SEQ_NIL)(P)(i1)(i0)(p) \
+ , BOOST_PP_SEQ_FOLD_LEFT( \
+ BOOST_DETAIL_PP_BINARY_SEQ_AUGMENT_INDEX_FOLD_OP \
+ , BOOST_PP_EMPTY() \
+ , seq \
+ ) \
+ ) \
+ ) \
+) \
+//!
+
+#endif // BOOST_DETAIL_PREPROCESSOR_BINARY_SEQ_TO_PARAMS_HPP_INCLUDED
+

Added: sandbox/container_gen/boost/utility/equivalence_function.hpp
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ sandbox/container_gen/boost/utility/equivalence_function.hpp 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84957)
@@ -0,0 +1,168 @@
+// 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)
+
+#ifndef BOOST_UTILITY_EQUIVALENCE_FUNCTION_HPP_INCLUDED
+#define BOOST_UTILITY_EQUIVALENCE_FUNCTION_HPP_INCLUDED
+
+//[reference__equivalence_function_gen
+namespace boost {
+
+ template <typename StrictWeakOrdering>
+ struct equivalence_function_gen;
+} // namespace boost
+//]
+
+//[reference__make_equivalence_function
+namespace boost {
+
+ template <typename StrictWeakOrdering>
+ typename equivalence_function_gen<StrictWeakOrdering>::type
+ make_equivalence_function(StrictWeakOrdering const& predicate);
+} // namespace boost
+//]
+
+namespace boost { namespace detail {
+
+ template <typename StrictWeakOrdering>
+ class adaptable_equivalence_function
+ {
+ StrictWeakOrdering _predicate;
+
+ public:
+ typedef bool
+ result_type;
+ typedef typename StrictWeakOrdering::first_argument_type
+ first_argument_type;
+ typedef typename StrictWeakOrdering::second_argument_type
+ second_argument_type;
+
+ adaptable_equivalence_function();
+
+ template <typename Predicate>
+ adaptable_equivalence_function(Predicate const& predicate);
+
+ result_type
+ operator()(
+ first_argument_type const& arg1
+ , second_argument_type const& arg2
+ ) const;
+ };
+
+ template <typename StrictWeakOrdering>
+ adaptable_equivalence_function<
+ StrictWeakOrdering
+ >::adaptable_equivalence_function() : _predicate()
+ {
+ }
+
+ template <typename StrictWeakOrdering>
+ template <typename Predicate>
+ adaptable_equivalence_function<
+ StrictWeakOrdering
+ >::adaptable_equivalence_function(Predicate const& predicate)
+ : _predicate(predicate)
+ {
+ }
+
+ template <typename StrictWeakOrdering>
+ inline typename adaptable_equivalence_function<
+ StrictWeakOrdering
+ >::result_type
+ adaptable_equivalence_function<StrictWeakOrdering>::operator()(
+ first_argument_type const& arg1
+ , second_argument_type const& arg2
+ ) const
+ {
+ return !this->_predicate(arg1, arg2) && !this->_predicate(arg2, arg1);
+ }
+
+ template <typename StrictWeakOrdering>
+ class plain_equivalence_function
+ {
+ StrictWeakOrdering _predicate;
+
+ public:
+ typedef bool result_type;
+
+ plain_equivalence_function();
+
+ template <typename Predicate>
+ plain_equivalence_function(Predicate const& predicate);
+
+ template <typename T1, typename T2>
+ result_type operator()(T1 const& t1, T2 const& t2) const;
+ };
+
+ template <typename StrictWeakOrdering>
+ plain_equivalence_function<
+ StrictWeakOrdering
+ >::plain_equivalence_function() : _predicate()
+ {
+ }
+
+ template <typename StrictWeakOrdering>
+ template <typename Predicate>
+ plain_equivalence_function<StrictWeakOrdering>::plain_equivalence_function(
+ Predicate const& predicate
+ ) : _predicate(predicate)
+ {
+ }
+
+ template <typename StrictWeakOrdering>
+ template <typename T1, typename T2>
+ inline typename plain_equivalence_function<StrictWeakOrdering>::result_type
+ plain_equivalence_function<StrictWeakOrdering>::operator()(
+ T1 const& t1
+ , T2 const& t2
+ ) const
+ {
+ return !this->_predicate(t1, t2) && !this->_predicate(t2, t1);
+ }
+}} // namespace boost::detail
+
+#include <boost/mpl/bool.hpp>
+#include <boost/mpl/if.hpp>
+#include <boost/mpl/aux_/lambda_support.hpp>
+#include <boost/detail/metafunction/is_adaptable_binary_func.hpp>
+#include <boost/detail/metafunction/is_function_wrt.hpp>
+
+namespace boost {
+
+ template <typename StrictWeakOrdering>
+ struct equivalence_function_gen
+ : ::boost::mpl::if_<
+ typename ::boost::mpl::if_<
+ ::boost::detail::metafunction::is_function_with_result_type<
+ StrictWeakOrdering
+ , bool
+ >
+ , ::boost::detail::metafunction::is_adaptable_binary_function<
+ StrictWeakOrdering
+ >
+ , ::boost::mpl::false_
+ >::type
+ , detail::adaptable_equivalence_function<StrictWeakOrdering>
+ , detail::plain_equivalence_function<StrictWeakOrdering>
+ >
+ {
+ BOOST_MPL_AUX_LAMBDA_SUPPORT(
+ 1
+ , equivalence_function_gen
+ , (StrictWeakOrdering)
+ )
+ };
+
+ template <typename StrictWeakOrdering>
+ inline typename equivalence_function_gen<StrictWeakOrdering>::type
+ make_equivalence_function(StrictWeakOrdering const& predicate)
+ {
+ return typename equivalence_function_gen<StrictWeakOrdering>::type(
+ predicate
+ );
+ }
+} // namespace boost
+
+#endif // BOOST_UTILITY_EQUIVALENCE_FUNCTION_HPP_INCLUDED
+

Added: sandbox/container_gen/libs/container_gen/doc/changelog.qbk
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ sandbox/container_gen/libs/container_gen/doc/changelog.qbk 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84957)
@@ -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 Changelog]
+
+[heading From 0.8 to 0.9]
+
+ * Added __is_mergeable_heap_selector__ introspection metafunction.
+ * Added `equivalence_selector` template.
+ * Added `binary_predicate_selector`, `tr1_binary_predicate_selector`, and
+ `equivalenceS` types.
+
+[heading From 0.7 to 0.8]
+
+ * Added __is_compare_selector__, __is_hasher_selector__,
+ __is_allocator_selector__, __is_container_selector__,
+ __is_queue_selector__, __is_stack_selector__, __is_std_heap_selector__,
+ __is_heap_selector__, __is_iteratable_heap_selector__,
+ __is_order_iteratable_heap_selector__, and __is_mutable_heap_selector__
+ introspection metafunctions.
+ * Added `c_str_greater_than_selector` type.
+ * Renamed `c_str_equivalence_selector` to `c_str_equal_to_selector`.
+ * Renamed `c_str_ordering_selector` to `c_str_less_than_selector`.
+ * Selector template arguments are now __Boost_Parameter__-enabled and
+ (mostly) deducible.
+ * Removed `has_front_not_top_member_function_selector` introspection
+ metafunction.
+ * Modified __is_tr1_selector__ to return __mpl_true__ when passed in
+ `tr1_hash_selector`.
+
+[heading From 0.6 to 0.7]
+
+ * Added `stack_selector`, `queue_selector`, `std_heap_selector`,
+ `priority_queue_selector`, `d_ary_heap_selector`, `binomial_heap_selector`,
+ `fibonacci_heap_selector`, `pairing_heap_selector`, and
+ `skew_heap_selector` templates.
+ * Added `greater_than_selector`, `stackS`, `queueS`, `std_heapS`,
+ `priority_queueS`, `binomial_heapS`, `fibonacci_heapS`, `pairing_heapS`,
+ and `skew_heapS` selector types.
+ * Renamed `default_eqivalance_selector` to `equal_to_selector`.
+ * Renamed `default_ordering_selector` to `less_than_selector`.
+ * Added `has_front_not_top_member_function_selector` introspection
+ metafunction.
+
+[heading From 0.5 to 0.6]
+
+ * Added __push_range_function_gen__, __insert_range_function_gen__,
+ __splice_function_gen__, and __insert_range_function_gen__ type-generating
+ metafunctions.
+
+[heading From 0.4 to 0.5]
+
+ * Added __is_reversible_selector__ introspection metafunction.
+ * Moved __Boost_Typeof__ registration header files for selectors.
+
+[heading From 0.3 to 0.4]
+
+ * Added `c_str_equivalence_selector` and `c_str_ordering_selector` types.
+
+[heading From 0.2 to 0.3]
+
+ * Moved from __Boost_Utility__ to top level.
+ * Removed `ptr_container_gen` metafunction and `associative_container_gen`
+ and `ptr_associative_container_gen` metafunction classes.
+ * Added selector templates. See __Selectors__.
+ * Added __emplace_function_gen__ and __emplace_associative_function_gen__
+ type-generating metafunctions.
+ * Added __is_flat_associative_selector__, __is_ptr_selector__,
+ __is_recursive_selector__, __is_tr1_selector__, and
+ __has_emplace_member_function_selector__ introspection metafunctions.
+ * Renamed `is_unordered_selector` to __is_hashed_associative_selector__.
+ * Removed `boost_vecS`, `boost_dequeS`, `boost_listS`, `boost_slistS`,
+ `boost_setS`, `boost_mapS`, `boost_multisetS`, and `boost_multimapS`
+ selector type definitions.
+ * Modified __graph_adjacency_list__ so that it also recognizes new selector
+ types (except when __is_ptr_selector__ returns __mpl_true__).
+
+[heading From 0.1 to 0.2]
+
+ * Added `boost_vecS`, `stable_vecS`, `boost_dequeS`, `boost_listS`,
+ `boost_slistS`, `boost_setS`, `boost_mapS`, `boost_multisetS`,
+ `boost_multimapS`, `flat_setS`, `flat_mapS`, `flat_multisetS`, and
+ `flat_multimapS` selector types.
+ * Added __is_associative_selector__, __is_multiple_associative_selector__,
+ `is_unordered_selector`, and __has_stable_iterators_selector__
+ introspection metafunctions.
+
+[endsect] [/ Changelog]
+

Added: sandbox/container_gen/libs/container_gen/doc/container_gen.qbk
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ sandbox/container_gen/libs/container_gen/doc/container_gen.qbk 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84957)
@@ -0,0 +1,278 @@
+[library container_gen
+ [quickbook 1.5]
+ [version 0.9]
+ [authors [Lumsdaine, Andrew][Lee, Lie-Quan][Claveirole, Thomas][Siek, Jeremy G.][Enage, Cromwell D.]]
+ [copyright 1997-2013 Andrew Lumsdaine, Lie-Quan Lee, Thomas Claveirole, Jeremy G. Siek, Cromwell D. Enage]
+ [purpose Collection of container-generating and selector-introspecting metafunctions]
+ [license
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENSE_1_0.txt or copy at
+ [@http://www.boost.org/LICENSE_1_0.txt])
+ ]
+]
+
+[/ General links.]
+[def __recursive_data_types__ [@http://en.wikipedia.org/wiki/Recursive_data_type recursive data types]]
+
+[/ General concept links.]
+[def __Default_Constructible__ [@http://www.sgi.com/tech/stl/DefaultConstructible.html [*Default Constructible]]]
+[def __STL_Container__ [@http://www.sgi.com/tech/stl/Container.html [*STL Container]]]
+[def __Input_Iterator__ [@http://www.sgi.com/tech/stl/InputIterator.html [*Input Iterator]]]
+[def __Bidirectional_Iterator__ [@http://www.sgi.com/tech/stl/BidirectionalIterator.html [*Bidirectional Iterator]]]
+[def __Reversible_Container__ [@http://www.sgi.com/tech/stl/ReversibleContainer.html [*Reversible Container]]]
+[def __Random_Access_Iterator__ [@http://www.sgi.com/tech/stl/RandomAccessIterator.html [*Random Access Iterator]]]
+[def __Random_Access_Container__ [@http://www.sgi.com/tech/stl/RandomAccessContainer.html [*Random Access Container]]]
+[def __Associative_Container__ [@http://www.sgi.com/tech/stl/AssociativeContainer.html [*Associative Container]]]
+[def __Sorted_Associative_Container__ [@http://www.sgi.com/tech/stl/SortedAssociativeContainer.html [*Sorted Associative Container]]]
+[def __Hashed_Associative_Container__ [@http://www.sgi.com/tech/stl/HashAssociativeContainer.html [*Hashed Associative Container]]]
+[def __Unique_Associative_Container__ [@http://www.sgi.com/tech/stl/UniqueAssociativeContainer.html [*Unique Associative Container]]]
+[def __Multiple_Associative_Container__ [@http://www.sgi.com/tech/stl/MultipleAssociativeContainer.html [*Multiple 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 __Binary_Predicate__ [@http://www.sgi.com/tech/stl/BinaryPredicate.html [*Binary Predicate]]]
+[def __Strict_Weak_Ordering__ [@http://www.sgi.com/tech/stl/StrictWeakOrdering.html [*Strict Weak Ordering]]]
+[def __Hash_Function__ [@http://www.sgi.com/tech/stl/HashFunction.html [*Hash Function]]]
+
+[/ STL reference links.]
+[def __std_list__ [@http://www.sgi.com/tech/stl/List.html `std::list`]]
+[def __std_queue__ [@http://www.sgi.com/tech/stl/queue.html `std::queue`]]
+[def __std_stack__ [@http://www.sgi.com/tech/stl/stack.html `std::stack`]]
+[def __std_priority_queue__ [@http://www.sgi.com/tech/stl/priority_queue.html `std::priority_queue`]]
+[def __std_pair__ [@http://www.sgi.com/tech/stl/pair.html `std::pair`]]
+[def _std_string_ [@http://www.sgi.com/tech/stl/basic_string.html std::string]]
+
+[/ Boost library links.]
+[def __Boost_Typeof__ [@boost:doc/html/typeof.html [*Boost.Typeof]]]
+[def __Boost_Parameter__ [@boost:libs/parameter/doc/html/index.html [*Boost.Parameter]]]
+[def __Boost_Utility__ [@boost:libs/utility/index.html [*Boost.Utility]]]
+[def __Boost_Assign__ [@boost:libs/assign/doc/index.html [*Boost.Assign]]]
+[def __Boost_Range__ [@boost:libs/range/doc/html/index.html [*Boost.Range]]]
+[def __Boost_Container__ [@boost:doc/html/container.html [*Boost.Container]]]
+[def __Boost_Unordered__ [@boost:doc/html/unordered.html [*Boost.Unordered]]]
+[def __Boost_TR1__ [@boost:doc/html/boost_tr1.html [*Boost.TR1]]]
+[def __Boost_Pointer_Container__ [@boost:libs/ptr_container/doc/index.html [*Boost.PointerContainer]]]
+[def __Boost_Heap__ [@boost:doc/html/heap.html [*Boost.Heap]]]
+[def __BGL__ [@boost:libs/graph/doc/index.html BGL]]
+
+[/ Boost concept links.]
+[def __Integral_Constant__ [@boost:libs/mpl/doc/refmanual/integral-constant.html [*Integral Constant]]]
+[def __Boolean_Integral_Constant__ [@boost:libs/mpl/doc/refmanual/integral-constant.html [*Boolean Integral Constant]]]
+[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 __Single_Pass_Range__ [@boost:libs/range/doc/html/range/concepts/single_pass_range.html [*Single Pass Range]]]
+[def __Clone_Allocator__ [@boost:libs/ptr_container/doc/reference.html#the-clone-allocator-concept [*Clone Allocator]]]
+[def __Recursive_Container__ [@boost:doc/html/container/containers_of_incomplete_types.html [*Recursive Container]]]
+[def __Flat_Associative_Container__ [@boost:doc/html/container/non_standard_containers.html#container.non_standard_containers.flat_xxx [*Flat Associative Container]]]
+
+[/ Boost reference links.]
+[def _ASSERT_ [@boost:libs/utility/assert.html BOOST_ASSERT]]
+[def _AUTO_TPL_ [@boost:doc/html/typeof/refe.html#typeof.auto BOOST_AUTO_TPL]]
+[def __TYPEOF_EMULATION__ [@boost:doc/html/typeof/refe.html#typeof.compl `BOOST_TYPEOF_EMULATION`]]
+[def __MPL_CFG_NO_HAS_XXX__ [@boost:libs/mpl/doc/refmanual/cfg-no-has-xxx.html `BOOST_MPL_CFG_NO_HAS_XXX`]]
+[def __MPL_CFG_NO_HAS_XXX_TEMPLATE__ [@boost:libs/mpl/doc/refmanual/cfg-no-has-xxx-template.html `BOOST_MPL_CFG_NO_HAS_XXX_TEMPLATE`]]
+[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 __heap_compare__ [@boost:doc/html/heap/data_structures.html#heap.data_structures.data_structure_configuration `boost::heap::compare`]]
+[def __heap_allocator__ [@boost:doc/html/heap/data_structures.html#heap.data_structures.data_structure_configuration `boost::heap::allocator`]]
+[def __heap_stable__ [@boost:doc/html/heap/data_structures.html#heap.data_structures.data_structure_configuration `boost::heap::stable`]]
+[def __heap_mutable__ [@boost:doc/html/heap/data_structures.html#heap.data_structures.data_structure_configuration `boost::heap::mutable_`]]
+[def __heap_stability_counter_type__ [@boost:doc/html/heap/data_structures.html#heap.data_structures.data_structure_configuration `boost::heap::stability_counter_type`]]
+[def __heap_constant_time_size__ [@boost:doc/html/heap/data_structures.html#heap.data_structures.data_structure_configuration `boost::heap::constant_time_size`]]
+[def __heap_arity__ [@boost:doc/html/heap/data_structures.html#heap.data_structures.data_structure_configuration `boost::heap::arity`]]
+[def __heap_store_parent_pointer__ [@boost:doc/html/heap/data_structures.html#heap.data_structures.data_structure_configuration `boost::heap::store_parent_pointer`]]
+[def __heap_merge__ [@boost:doc/html/boost/heap/heap_merge.html `boost::heap::heap_merge()`]]
+[def __range_equal__ [@boost:libs/range/doc/html/range/reference/algorithms/non_mutating/equal.html `boost::range::equal()`]]
+[def _range_equal_ [@boost:libs/range/doc/html/range/reference/algorithms/non_mutating/equal.html boost::range::equal]]
+[def __range_adaptors_indirect__ [@boost:libs/range/doc/html/range/reference/adaptors/reference/indirected.html `boost::adaptors::indirect()`]]
+[def __array__ [@boost:doc/html/array.html `boost::array`]]
+[def __container_stable_vector__ [@boost:doc/html/boost/container/stable_vector.html `boost::container::stable_vector`]]
+[def __graph_adjacency_list__ [@boost:libs/graph/doc/adjacency_list.html `boost::adjacency_list`]]
+[def __graph_parallel_edge_traits__ [@boost:libs/graph/doc/using_adjacency_list.html#SECTION00834200000000000000 `boost::parallel_edge_traits`]]
+[def __tr1_array__ [@boost:doc/html/boost_tr1/subject_list.html#boost_tr1.subject_list.array `std::tr1::array`]]
+[def __tr1_unordered_set__ [@boost:doc/html/boost_tr1/subject_list.html#boost_tr1.subject_list.unordered_set `std::tr1::unordered_set`]]
+[def __tr1_unordered_multiset__ [@boost:doc/html/boost_tr1/subject_list.html#boost_tr1.subject_list.unordered_set `std::tr1::unordered_multiset`]]
+[def __tr1_unordered_map__ [@boost:doc/html/boost_tr1/subject_list.html#boost_tr1.subject_list.unordered_map `std::tr1::unordered_map`]]
+[def __tr1_unordered_multimap__ [@boost:doc/html/boost_tr1/subject_list.html#boost_tr1.subject_list.unordered_map `std::tr1::unordered_multimap`]]
+
+[/ Boost.ContainerGen reference header file links.]
+[def __boost_container_gen_selectors_hpp__ [@../../../../boost/container_gen/selectors.hpp boost/container_gen/selectors.hpp]]
+[def __boost_container_gen_selectors_fwd_hpp__ [@../../../../boost/container_gen/selectors_fwd.hpp boost/container_gen/selectors_fwd.hpp]]
+[def __boost_typeof_boost_container_gen_selectors_hpp__ [@../../../../boost/typeof/boost/container_gen/selectors.hpp boost/typeof/boost/container_gen/selectors.hpp]]
+[def __boost_container_gen_c_str_cmp_selectors_hpp__ [@../../../../boost/container_gen/c_str_cmp_selectors.hpp boost/container_gen/c_str_cmp_selectors.hpp]]
+[def __boost_container_gen_c_str_cmp_selectors_fwd_hpp__ [@../../../../boost/container_gen/c_str_cmp_selectors_fwd.hpp boost/container_gen/c_str_cmp_selectors_fwd.hpp]]
+[def __boost_typeof_boost_container_gen_c_str_cmp_selectors_hpp__ [@../../../../boost/typeof/boost/container_gen/c_str_cmp_selectors.hpp boost/typeof/boost/container_gen/c_str_cmp_selectors.hpp]]
+[def __boost_container_gen_container_gen_hpp__ [@../../../../boost/container_gen/container_gen.hpp boost/container_gen/container_gen.hpp]]
+[def __boost_container_gen_container_gen_fwd_hpp__ [@../../../../boost/container_gen/container_gen_fwd.hpp boost/container_gen/container_gen_fwd.hpp]]
+[def __boost_container_gen_emplace_function_gen_hpp__ [@../../../../boost/container_gen/emplace_function_gen.hpp boost/container_gen/emplace_function_gen.hpp]]
+[def __boost_container_gen_emplace_assoc_function_gen_hpp__ [@../../../../boost/container_gen/emplace_assoc_function_gen.hpp boost/container_gen/emplace_assoc_function_gen.hpp]]
+[def __boost_container_gen_push_range_function_gen_hpp__ [@../../../../boost/container_gen/push_range_function_gen.hpp boost/container_gen/push_range_function_gen.hpp]]
+[def __boost_container_gen_insert_range_function_gen_hpp__ [@../../../../boost/container_gen/insert_range_function_gen.hpp boost/container_gen/insert_range_function_gen.hpp]]
+[def __boost_container_gen_splice_function_gen_hpp__ [@../../../../boost/container_gen/splice_function_gen.hpp boost/container_gen/splice_function_gen.hpp]]
+[def __boost_container_gen_insert_range_result_gen_hpp__ [@../../../../boost/container_gen/insert_range_result_gen.hpp boost/container_gen/insert_range_result_gen.hpp]]
+[def __boost_container_gen_is_compare_selector_hpp__ [@../../../../boost/container_gen/is_compare_selector.hpp boost/container_gen/is_compare_selector.hpp]]
+[def __boost_container_gen_is_hasher_selector_hpp__ [@../../../../boost/container_gen/is_hasher_selector.hpp boost/container_gen/is_hasher_selector.hpp]]
+[def __boost_container_gen_is_allocator_selector_hpp__ [@../../../../boost/container_gen/is_allocator_selector.hpp boost/container_gen/is_allocator_selector.hpp]]
+[def __boost_container_gen_is_container_selector_hpp__ [@../../../../boost/container_gen/is_container_selector.hpp boost/container_gen/is_container_selector.hpp]]
+[def __boost_container_gen_is_reversible_selector_hpp__ [@../../../../boost/container_gen/is_reversible_selector.hpp boost/container_gen/is_reversible_selector.hpp]]
+[def __boost_container_gen_is_random_access_selector_hpp__ [@../../../../boost/container_gen/is_random_access_selector.hpp boost/container_gen/is_random_access_selector.hpp]]
+[def __boost_container_gen_is_associative_selector_hpp__ [@../../../../boost/container_gen/is_associative_selector.hpp boost/container_gen/is_associative_selector.hpp]]
+[def __boost_container_gen_is_unique_assoc_selector_hpp__ [@../../../../boost/container_gen/is_unique_assoc_selector.hpp boost/container_gen/is_unique_assoc_selector.hpp]]
+[def __boost_container_gen_is_multiple_assoc_selector_hpp__ [@../../../../boost/container_gen/is_multiple_assoc_selector.hpp boost/container_gen/is_multiple_assoc_selector.hpp]]
+[def __boost_container_gen_is_flat_assoc_selector_hpp__ [@../../../../boost/container_gen/is_flat_assoc_selector.hpp boost/container_gen/is_flat_assoc_selector.hpp]]
+[def __boost_container_gen_is_hashed_assoc_selector_hpp__ [@../../../../boost/container_gen/is_hashed_assoc_selector.hpp boost/container_gen/is_hashed_assoc_selector.hpp]]
+[def __boost_container_gen_is_tr1_selector_hpp__ [@../../../../boost/container_gen/is_tr1_selector.hpp boost/container_gen/is_tr1_selector.hpp]]
+[def __boost_container_gen_is_ptr_selector_hpp__ [@../../../../boost/container_gen/is_ptr_selector.hpp boost/container_gen/is_ptr_selector.hpp]]
+[def __boost_container_gen_is_queue_selector_hpp__ [@../../../../boost/container_gen/is_queue_selector.hpp boost/container_gen/is_queue_selector.hpp]]
+[def __boost_container_gen_is_stack_selector_hpp__ [@../../../../boost/container_gen/is_stack_selector.hpp boost/container_gen/is_stack_selector.hpp]]
+[def __boost_container_gen_is_std_heap_selector_hpp__ [@../../../../boost/container_gen/is_std_heap_selector.hpp boost/container_gen/is_std_heap_selector.hpp]]
+[def __boost_container_gen_is_heap_selector_hpp__ [@../../../../boost/container_gen/is_heap_selector.hpp boost/container_gen/is_heap_selector.hpp]]
+[def __boost_container_gen_is_iteratable_heap_selector_hpp__ [@../../../../boost/container_gen/is_iteratable_heap_selector.hpp boost/container_gen/is_iteratable_heap_selector.hpp]]
+[def __boost_container_gen_is_order_iter_heap_selector_hpp__ [@../../../../boost/container_gen/is_order_iter_heap_selector.hpp boost/container_gen/is_order_iter_heap_selector.hpp]]
+[def __boost_container_gen_is_mutable_heap_selector_hpp__ [@../../../../boost/container_gen/is_mutable_heap_selector.hpp boost/container_gen/is_mutable_heap_selector.hpp]]
+[def __boost_container_gen_is_mergeable_heap_selector_hpp__ [@../../../../boost/container_gen/is_mergeable_heap_selector.hpp boost/container_gen/is_mergeable_heap_selector.hpp]]
+[def __boost_container_gen_is_recursive_selector_hpp__ [@../../../../boost/container_gen/is_recursive_selector.hpp boost/container_gen/is_recursive_selector.hpp]]
+[def __boost_container_gen_has_stable_iters_selector_hpp__ [@../../../../boost/container_gen/has_stable_iters_selector.hpp boost/container_gen/has_stable_iters_selector.hpp]]
+[def __boost_container_gen_has_emplace_mfunc_selector_hpp__ [@../../../../boost/container_gen/has_emplace_mfunc_selector.hpp boost/container_gen/has_emplace_mfunc_selector.hpp]]
+[def __libs_container_gen_test_result_range_hpp__ [@../../../../libs/container_gen/test/result_range.hpp `<test/result_range.hpp>`]]
+[def __libs_container_gen_test_push_range_function_gen_cpp__ [@../../../../libs/container_gen/test/push_range_function_gen.cpp `<test/push_range_function_gen.cpp>`]]
+[def __libs_container_gen_test_insert_range_function_gen_cpp__ [@../../../../libs/container_gen/test/insert_range_function_gen.cpp `<test/insert_range_function_gen.cpp>`]]
+[def __libs_container_gen_test_splice_function_gen_cpp__ [@../../../../libs/container_gen/test/splice_function_gen.cpp `<test/splice_function_gen.cpp>`]]
+
+[/ Boost.ContainerGen reference links.]
+[def __Selectors__ [link container_gen.reference.selectors *Selectors*]]
+[def _vector_selector_ [link container_gen.reference.selectors boost::vector_selector]]
+[def _map_selector_ [link container_gen.reference.selectors boost::map_selector]]
+[def __Selectors_synopsis__ [link container_gen.reference.selectors.synopsis synopsis]]
+[def __Selectors_table__ [link container_gen.reference.selectors.description table]]
+[def __container_gen__ [link container_gen.reference.container_gen `container_gen`]]
+[def _container_gen_ [link container_gen.reference.container_gen container_gen]]
+[def __emplace_function_gen__ [link container_gen.reference.emplace_function_gen `emplace_function_gen`]]
+[def _emplace_function_gen_ [link container_gen.reference.emplace_function_gen emplace_function_gen]]
+[def __emplace_associative_function_gen__ [link container_gen.reference.emplace_assoc_function_gen `emplace_associative_function_gen`]]
+[def _emplace_associative_function_gen_ [link container_gen.reference.emplace_assoc_function_gen emplace_associative_function_gen]]
+[def __push_range_function_gen__ [link container_gen.reference.push_range_function_gen `push_range_function_gen`]]
+[def _push_range_function_gen_ [link container_gen.reference.push_range_function_gen push_range_function_gen]]
+[def __insert_range_function_gen__ [link container_gen.reference.insert_range_function_gen `insert_range_function_gen`]]
+[def _insert_range_function_gen_ [link container_gen.reference.insert_range_function_gen insert_range_function_gen]]
+[def __splice_function_gen__ [link container_gen.reference.splice_function_gen `splice_function_gen`]]
+[def _splice_function_gen_ [link container_gen.reference.splice_function_gen splice_function_gen]]
+[def __insert_range_result_gen__ [link container_gen.reference.insert_range_result_gen `insert_range_result_gen`]]
+[def _insert_range_result_gen_ [link container_gen.reference.insert_range_result_gen insert_range_result_gen]]
+[def __is_compare_selector__ [link container_gen.reference.is_compare_selector `is_compare_selector`]]
+[def _is_compare_selector_ [link container_gen.reference.is_compare_selector is_compare_selector]]
+[def __is_hasher_selector__ [link container_gen.reference.is_hasher_selector `is_hasher_selector`]]
+[def _is_hasher_selector_ [link container_gen.reference.is_hasher_selector is_hasher_selector]]
+[def __is_allocator_selector__ [link container_gen.reference.is_allocator_selector `is_allocator_selector`]]
+[def _is_allocator_selector_ [link container_gen.reference.is_allocator_selector is_allocator_selector]]
+[def __is_container_selector__ [link container_gen.reference.is_container_selector `is_container_selector`]]
+[def _is_container_selector_ [link container_gen.reference.is_container_selector is_container_selector]]
+[def __is_reversible_selector__ [link container_gen.reference.is_reversible_selector `is_reversible_selector`]]
+[def _is_reversible_selector_ [link container_gen.reference.is_reversible_selector is_reversible_selector]]
+[def __is_random_access_selector__ [link container_gen.reference.is_random_access_selector `is_random_access_selector`]]
+[def _is_random_access_selector_ [link container_gen.reference.is_random_access_selector is_random_access_selector]]
+[def __is_associative_selector__ [link container_gen.reference.is_associative_selector `is_associative_selector`]]
+[def _is_associative_selector_ [link container_gen.reference.is_associative_selector is_associative_selector]]
+[def __is_unique_associative_selector__ [link container_gen.reference.is_unique_assoc_selector `is_unique_associative_selector`]]
+[def _is_unique_associative_selector_ [link container_gen.reference.is_unique_assoc_selector is_unique_associative_selector]]
+[def __is_multiple_associative_selector__ [link container_gen.reference.is_multiple_assoc_selector `is_multiple_associative_selector`]]
+[def _is_multiple_associative_selector_ [link container_gen.reference.is_multiple_assoc_selector is_multiple_associative_selector]]
+[def __is_flat_associative_selector__ [link container_gen.reference.is_flat_assoc_selector `is_flat_associative_selector`]]
+[def _is_flat_associative_selector_ [link container_gen.reference.is_flat_assoc_selector is_flat_associative_selector]]
+[def __is_hashed_associative_selector__ [link container_gen.reference.is_hashed_assoc_selector `is_hashed_associative_selector`]]
+[def _is_hashed_associative_selector_ [link container_gen.reference.is_hashed_assoc_selector is_hashed_associative_selector]]
+[def __is_tr1_selector__ [link container_gen.reference.is_tr1_selector `is_tr1_selector`]]
+[def _is_tr1_selector_ [link container_gen.reference.is_tr1_selector is_tr1_selector]]
+[def __is_ptr_selector__ [link container_gen.reference.is_ptr_selector `is_ptr_selector`]]
+[def _is_ptr_selector_ [link container_gen.reference.is_ptr_selector is_ptr_selector]]
+[def __is_queue_selector__ [link container_gen.reference.is_queue_selector `is_queue_selector`]]
+[def _is_queue_selector_ [link container_gen.reference.is_queue_selector is_queue_selector]]
+[def __is_stack_selector__ [link container_gen.reference.is_stack_selector `is_stack_selector`]]
+[def _is_stack_selector_ [link container_gen.reference.is_stack_selector is_stack_selector]]
+[def __is_std_heap_selector__ [link container_gen.reference.is_std_heap_selector `is_std_heap_selector`]]
+[def _is_std_heap_selector_ [link container_gen.reference.is_std_heap_selector is_std_heap_selector]]
+[def __is_heap_selector__ [link container_gen.reference.is_heap_selector `is_heap_selector`]]
+[def _is_heap_selector_ [link container_gen.reference.is_heap_selector is_heap_selector]]
+[def __is_iteratable_heap_selector__ [link container_gen.reference.is_iter_heap_selector `is_iteratable_heap_selector`]]
+[def _is_iteratable_heap_selector_ [link container_gen.reference.is_iter_heap_selector is_iteratable_heap_selector]]
+[def __is_order_iteratable_heap_selector__ [link container_gen.reference.is_ord_iter_heap_selector `is_order_iteratable_heap_selector`]]
+[def _is_order_iteratable_heap_selector_ [link container_gen.reference.is_ord_iter_heap_selector is_order_iteratable_heap_selector]]
+[def __is_mutable_heap_selector__ [link container_gen.reference.is_mutable_heap_selector `is_mutable_heap_selector`]]
+[def _is_mutable_heap_selector_ [link container_gen.reference.is_mutable_heap_selector is_mutable_heap_selector]]
+[def __is_mergeable_heap_selector__ [link container_gen.reference.is_mergeable_heap_selector `is_mergeable_heap_selector`]]
+[def _is_mergeable_heap_selector_ [link container_gen.reference.is_mergeable_heap_selector is_mergeable_heap_selector]]
+[def __is_recursive_selector__ [link container_gen.reference.is_recursive_selector `is_recursive_selector`]]
+[def _is_recursive_selector_ [link container_gen.reference.is_recursive_selector is_recursive_selector]]
+[def __has_stable_iterators_selector__ [link container_gen.reference.has_stable_iters_selector `has_stable_iterators_selector`]]
+[def _has_stable_iterators_selector_ [link container_gen.reference.has_stable_iters_selector has_stable_iterators_selector]]
+[def __has_emplace_member_function_selector__ [link container_gen.reference.has_emplace_mfunc_selector `has_emplace_member_function_selector`]]
+[def _has_emplace_member_function_selector_ [link container_gen.reference.has_emplace_mfunc_selector has_emplace_member_function_selector]]
+
+[/ Boost.ContainerGen utility reference links.]
+[def __is_mpl_boolean_constant__ [@../../../../libs/utility/doc/html/is_mpl_boolean_constant.html `boost::is_mpl_boolean_constant`]]
+[def __is_mpl_integral_constant__ [@../../../../libs/utility/doc/html/is_mpl_integral_constant.html `boost::is_mpl_integral_constant`]]
+[def __equivalence_function_gen__ [@../../../../libs/utility/doc/html/equivalence_function.html `boost::equivalence_function_gen`]]
+
+[/ Autogenerate reference documentation directly from code.]
+[/ Bypass Doxygen.]
+[import ../../../boost/container_gen/selectors_fwd.hpp]
+[import ../../../boost/container_gen/selectors.hpp]
+[import ../../../boost/container_gen/c_str_cmp_selectors_fwd.hpp]
+[import ../../../boost/container_gen/c_str_cmp_selectors.hpp]
+[import ../../../boost/container_gen/container_gen_fwd.hpp]
+[import ../../../boost/container_gen/container_gen.hpp]
+[import ../../../boost/container_gen/emplace_function_gen.hpp]
+[import ../../../boost/container_gen/emplace_assoc_function_gen.hpp]
+[import ../../../boost/container_gen/push_range_function_gen.hpp]
+[import ../../../boost/container_gen/insert_range_function_gen.hpp]
+[import ../../../boost/container_gen/splice_function_gen.hpp]
+[import ../../../boost/container_gen/insert_range_result_gen.hpp]
+[import ../../../boost/container_gen/is_compare_selector.hpp]
+[import ../../../boost/container_gen/is_hasher_selector.hpp]
+[import ../../../boost/container_gen/is_allocator_selector.hpp]
+[import ../../../boost/container_gen/is_container_selector.hpp]
+[import ../../../boost/container_gen/is_reversible_selector.hpp]
+[import ../../../boost/container_gen/is_random_access_selector.hpp]
+[import ../../../boost/container_gen/is_associative_selector.hpp]
+[import ../../../boost/container_gen/is_unique_assoc_selector.hpp]
+[import ../../../boost/container_gen/is_multiple_assoc_selector.hpp]
+[import ../../../boost/container_gen/is_flat_assoc_selector.hpp]
+[import ../../../boost/container_gen/is_hashed_assoc_selector.hpp]
+[import ../../../boost/container_gen/is_tr1_selector.hpp]
+[import ../../../boost/container_gen/is_ptr_selector.hpp]
+[import ../../../boost/container_gen/is_queue_selector.hpp]
+[import ../../../boost/container_gen/is_stack_selector.hpp]
+[import ../../../boost/container_gen/is_std_heap_selector.hpp]
+[import ../../../boost/container_gen/is_heap_selector.hpp]
+[import ../../../boost/container_gen/is_iteratable_heap_selector.hpp]
+[import ../../../boost/container_gen/is_order_iter_heap_selector.hpp]
+[import ../../../boost/container_gen/is_mutable_heap_selector.hpp]
+[import ../../../boost/container_gen/is_mergeable_heap_selector.hpp]
+[import ../../../boost/container_gen/is_recursive_selector.hpp]
+[import ../../../boost/container_gen/has_stable_iters_selector.hpp]
+[import ../../../boost/container_gen/has_emplace_mfunc_selector.hpp]
+[import ../../../libs/graph/example/container_gen.cpp]
+[import ../../../libs/container_gen/example/output_shape_stats.cpp]
+[import ../../../libs/container_gen/example/output_char_tallies.cpp]
+[import ../../../libs/container_gen/example/output_rearrangements.cpp]
+[import ../../../libs/container_gen/test/selectors.cpp]
+[import ../../../libs/container_gen/test/emplace_function_gen.cpp]
+[import ../../../libs/container_gen/test/result_range.hpp]
+[import ../../../libs/container_gen/test/push_range_function_gen.cpp]
+[import ../../../libs/container_gen/test/insert_range_function_gen.cpp]
+[import ../../../libs/container_gen/test/splice_function_gen.cpp]
+
+[/ index.html Start]
+
+[heading Rationale]
+Significant interest was expressed in moving the `container_gen` metafunction
+from its current place in the __BGL__ to a more general or first-class
+residence. The relevant discussion is archived here:
+[@http://lists.boost.org/Archives/boost/2011/05/181573.php].
+
+[/ index.html End]
+
+[include reference.qbk]
+[include changelog.qbk]
+

Added: sandbox/container_gen/libs/container_gen/doc/html/container_gen/changelog.html
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ sandbox/container_gen/libs/container_gen/doc/html/container_gen/changelog.html 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84957)
@@ -0,0 +1,142 @@
+<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&#160;1.&#160;container_gen 0.9">
+<link rel="up" href="../index.html" title="Chapter&#160;1.&#160;container_gen 0.9">
+<link rel="prev" href="reference/has_emplace_mfunc_selector.html" title="has_emplace_member_function_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="reference/has_emplace_mfunc_selector.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="container_gen.changelog"></a><a class="link" href="changelog.html" title="Changelog">Changelog</a>
+</h2></div></div></div>
+<h4>
+<a name="container_gen.changelog.h0"></a>
+ <span class="phrase"><a name="container_gen.changelog.from_0_8_to_0_9"></a></span><a class="link" href="changelog.html#container_gen.changelog.from_0_8_to_0_9">From
+ 0.8 to 0.9</a>
+ </h4>
+<pre class="programlisting"><span class="special">*</span> <span class="identifier">Added</span> <a class="link" href="reference/is_mergeable_heap_selector.html" title="is_mergeable_heap_selector"><code class="computeroutput"><span class="identifier">is_mergeable_heap_selector</span></code></a> <span class="identifier">introspection</span> <span class="identifier">metafunction</span><span class="special">.</span>
+<span class="special">*</span> <span class="identifier">Added</span> <span class="error">`</span><span class="identifier">equivalence_selector</span><span class="error">`</span> <span class="keyword">template</span><span class="special">.</span>
+<span class="special">*</span> <span class="identifier">Added</span> <span class="error">`</span><span class="identifier">binary_predicate_selector</span><span class="error">`</span><span class="special">,</span> <span class="error">`</span><span class="identifier">tr1_binary_predicate_selector</span><span class="error">`</span><span class="special">,</span> <span class="keyword">and</span>
+ <span class="error">`</span><span class="identifier">equivalenceS</span><span class="error">`</span> <span class="identifier">types</span><span class="special">.</span>
+</pre>
+<h4>
+<a name="container_gen.changelog.h1"></a>
+ <span class="phrase"><a name="container_gen.changelog.from_0_7_to_0_8"></a></span><a class="link" href="changelog.html#container_gen.changelog.from_0_7_to_0_8">From
+ 0.7 to 0.8</a>
+ </h4>
+<pre class="programlisting"><span class="special">*</span> <span class="identifier">Added</span> <a class="link" href="reference/is_compare_selector.html" title="is_compare_selector"><code class="computeroutput"><span class="identifier">is_compare_selector</span></code></a><span class="special">,</span> <a class="link" href="reference/is_hasher_selector.html" title="is_hasher_selector"><code class="computeroutput"><span class="identifier">is_hasher_selector</span></code></a><span class="special">,</span>
+ <a class="link" href="reference/is_allocator_selector.html" title="is_allocator_selector"><code class="computeroutput"><span class="identifier">is_allocator_selector</span></code></a><span class="special">,</span> <a class="link" href="reference/is_container_selector.html" title="is_container_selector"><code class="computeroutput"><span class="identifier">is_container_selector</span></code></a><span class="special">,</span>
+ <a class="link" href="reference/is_queue_selector.html" title="is_queue_selector"><code class="computeroutput"><span class="identifier">is_queue_selector</span></code></a><span class="special">,</span> <a class="link" href="reference/is_stack_selector.html" title="is_stack_selector"><code class="computeroutput"><span class="identifier">is_stack_selector</span></code></a><span class="special">,</span> <a class="link" href="reference/is_std_heap_selector.html" title="is_std_heap_selector"><code class="computeroutput"><span class="identifier">is_std_heap_selector</span></code></a><span class="special">,</span>
+ <a class="link" href="reference/is_heap_selector.html" title="is_heap_selector"><code class="computeroutput"><span class="identifier">is_heap_selector</span></code></a><span class="special">,</span> <a class="link" href="reference/is_iter_heap_selector.html" title="is_iteratable_heap_selector"><code class="computeroutput"><span class="identifier">is_iteratable_heap_selector</span></code></a><span class="special">,</span>
+ <a class="link" href="reference/is_ord_iter_heap_selector.html" title="is_order_iteratable_heap_selector"><code class="computeroutput"><span class="identifier">is_order_iteratable_heap_selector</span></code></a><span class="special">,</span> <span class="keyword">and</span> <a class="link" href="reference/is_mutable_heap_selector.html" title="is_mutable_heap_selector"><code class="computeroutput"><span class="identifier">is_mutable_heap_selector</span></code></a>
+ <span class="identifier">introspection</span> <span class="identifier">metafunctions</span><span class="special">.</span>
+<span class="special">*</span> <span class="identifier">Added</span> <span class="error">`</span><span class="identifier">c_str_greater_than_selector</span><span class="error">`</span> <span class="identifier">type</span><span class="special">.</span>
+<span class="special">*</span> <span class="identifier">Renamed</span> <span class="error">`</span><span class="identifier">c_str_equivalence_selector</span><span class="error">`</span> <span class="identifier">to</span> <span class="error">`</span><span class="identifier">c_str_equal_to_selector</span><span class="error">`</span><span class="special">.</span>
+<span class="special">*</span> <span class="identifier">Renamed</span> <span class="error">`</span><span class="identifier">c_str_ordering_selector</span><span class="error">`</span> <span class="identifier">to</span> <span class="error">`</span><span class="identifier">c_str_less_than_selector</span><span class="error">`</span><span class="special">.</span>
+<span class="special">*</span> <span class="identifier">Selector</span> <span class="keyword">template</span> <span class="identifier">arguments</span> <span class="identifier">are</span> <span class="identifier">now</span> Boost.Parameter<span class="special">-</span><span class="identifier">enabled</span> <span class="keyword">and</span>
+ <span class="special">(</span><span class="identifier">mostly</span><span class="special">)</span> <span class="identifier">deducible</span><span class="special">.</span>
+<span class="special">*</span> <span class="identifier">Removed</span> <span class="error">`</span><span class="identifier">has_front_not_top_member_function_selector</span><span class="error">`</span> <span class="identifier">introspection</span>
+ <span class="identifier">metafunction</span><span class="special">.</span>
+<span class="special">*</span> <span class="identifier">Modified</span> <a class="link" href="reference/is_tr1_selector.html" title="is_tr1_selector"><code class="computeroutput"><span class="identifier">is_tr1_selector</span></code></a> <span class="identifier">to</span> <span class="keyword">return</span> boost::mpl::true_ <span class="identifier">when</span> <span class="identifier">passed</span> <span class="identifier">in</span>
+ <span class="error">`</span><span class="identifier">tr1_hash_selector</span><span class="error">`</span><span class="special">.</span>
+</pre>
+<h4>
+<a name="container_gen.changelog.h2"></a>
+ <span class="phrase"><a name="container_gen.changelog.from_0_6_to_0_7"></a></span><a class="link" href="changelog.html#container_gen.changelog.from_0_6_to_0_7">From
+ 0.6 to 0.7</a>
+ </h4>
+<pre class="programlisting"><span class="special">*</span> <span class="identifier">Added</span> <span class="error">`</span><span class="identifier">stack_selector</span><span class="error">`</span><span class="special">,</span> <span class="error">`</span><span class="identifier">queue_selector</span><span class="error">`</span><span class="special">,</span> <span class="error">`</span><span class="identifier">std_heap_selector</span><span class="error">`</span><span class="special">,</span>
+ <span class="error">`</span><span class="identifier">priority_queue_selector</span><span class="error">`</span><span class="special">,</span> <span class="error">`</span><span class="identifier">d_ary_heap_selector</span><span class="error">`</span><span class="special">,</span> <span class="error">`</span><span class="identifier">binomial_heap_selector</span><span class="error">`</span><span class="special">,</span>
+ <span class="error">`</span><span class="identifier">fibonacci_heap_selector</span><span class="error">`</span><span class="special">,</span> <span class="error">`</span><span class="identifier">pairing_heap_selector</span><span class="error">`</span><span class="special">,</span> <span class="keyword">and</span>
+ <span class="error">`</span><span class="identifier">skew_heap_selector</span><span class="error">`</span> <span class="identifier">templates</span><span class="special">.</span>
+<span class="special">*</span> <span class="identifier">Added</span> <span class="error">`</span><span class="identifier">greater_than_selector</span><span class="error">`</span><span class="special">,</span> <span class="error">`</span><span class="identifier">stackS</span><span class="error">`</span><span class="special">,</span> <span class="error">`</span><span class="identifier">queueS</span><span class="error">`</span><span class="special">,</span> <span class="error">`</span><span class="identifier">std_heapS</span><span class="error">`</span><span class="special">,</span>
+ <span class="error">`</span><span class="identifier">priority_queueS</span><span class="error">`</span><span class="special">,</span> <span class="error">`</span><span class="identifier">binomial_heapS</span><span class="error">`</span><span class="special">,</span> <span class="error">`</span><span class="identifier">fibonacci_heapS</span><span class="error">`</span><span class="special">,</span> <span class="error">`</span><span class="identifier">pairing_heapS</span><span class="error">`</span><span class="special">,</span>
+ <span class="keyword">and</span> <span class="error">`</span><span class="identifier">skew_heapS</span><span class="error">`</span> <span class="identifier">selector</span> <span class="identifier">types</span><span class="special">.</span>
+<span class="special">*</span> <span class="identifier">Renamed</span> <span class="error">`</span><span class="identifier">default_eqivalance_selector</span><span class="error">`</span> <span class="identifier">to</span> <span class="error">`</span><span class="identifier">equal_to_selector</span><span class="error">`</span><span class="special">.</span>
+<span class="special">*</span> <span class="identifier">Renamed</span> <span class="error">`</span><span class="identifier">default_ordering_selector</span><span class="error">`</span> <span class="identifier">to</span> <span class="error">`</span><span class="identifier">less_than_selector</span><span class="error">`</span><span class="special">.</span>
+<span class="special">*</span> <span class="identifier">Added</span> <span class="error">`</span><span class="identifier">has_front_not_top_member_function_selector</span><span class="error">`</span> <span class="identifier">introspection</span>
+ <span class="identifier">metafunction</span><span class="special">.</span>
+</pre>
+<h4>
+<a name="container_gen.changelog.h3"></a>
+ <span class="phrase"><a name="container_gen.changelog.from_0_5_to_0_6"></a></span><a class="link" href="changelog.html#container_gen.changelog.from_0_5_to_0_6">From
+ 0.5 to 0.6</a>
+ </h4>
+<pre class="programlisting"><span class="special">*</span> <span class="identifier">Added</span> <a class="link" href="reference/push_range_function_gen.html" title="push_range_function_gen"><code class="computeroutput"><span class="identifier">push_range_function_gen</span></code></a><span class="special">,</span> <a class="link" href="reference/insert_range_function_gen.html" title="insert_range_function_gen"><code class="computeroutput"><span class="identifier">insert_range_function_gen</span></code></a><span class="special">,</span>
+ <a class="link" href="reference/splice_function_gen.html" title="splice_function_gen"><code class="computeroutput"><span class="identifier">splice_function_gen</span></code></a><span class="special">,</span> <span class="keyword">and</span> <a class="link" href="reference/insert_range_function_gen.html" title="insert_range_function_gen"><code class="computeroutput"><span class="identifier">insert_range_function_gen</span></code></a> <span class="identifier">type</span><span class="special">-</span><span class="identifier">generating</span>
+ <span class="identifier">metafunctions</span><span class="special">.</span>
+</pre>
+<h4>
+<a name="container_gen.changelog.h4"></a>
+ <span class="phrase"><a name="container_gen.changelog.from_0_4_to_0_5"></a></span><a class="link" href="changelog.html#container_gen.changelog.from_0_4_to_0_5">From
+ 0.4 to 0.5</a>
+ </h4>
+<pre class="programlisting"><span class="special">*</span> <span class="identifier">Added</span> <a class="link" href="reference/is_reversible_selector.html" title="is_reversible_selector"><code class="computeroutput"><span class="identifier">is_reversible_selector</span></code></a> <span class="identifier">introspection</span> <span class="identifier">metafunction</span><span class="special">.</span>
+<span class="special">*</span> <span class="identifier">Moved</span> Boost.Typeof <span class="identifier">registration</span> <span class="identifier">header</span> <span class="identifier">files</span> <span class="keyword">for</span> <span class="identifier">selectors</span><span class="special">.</span>
+</pre>
+<h4>
+<a name="container_gen.changelog.h5"></a>
+ <span class="phrase"><a name="container_gen.changelog.from_0_3_to_0_4"></a></span><a class="link" href="changelog.html#container_gen.changelog.from_0_3_to_0_4">From
+ 0.3 to 0.4</a>
+ </h4>
+<pre class="programlisting"><span class="special">*</span> <span class="identifier">Added</span> <span class="error">`</span><span class="identifier">c_str_equivalence_selector</span><span class="error">`</span> <span class="keyword">and</span> <span class="error">`</span><span class="identifier">c_str_ordering_selector</span><span class="error">`</span> <span class="identifier">types</span><span class="special">.</span>
+</pre>
+<h4>
+<a name="container_gen.changelog.h6"></a>
+ <span class="phrase"><a name="container_gen.changelog.from_0_2_to_0_3"></a></span><a class="link" href="changelog.html#container_gen.changelog.from_0_2_to_0_3">From
+ 0.2 to 0.3</a>
+ </h4>
+<pre class="programlisting"><span class="special">*</span> <span class="identifier">Moved</span> <span class="identifier">from</span> Boost.Utility <span class="identifier">to</span> <span class="identifier">top</span> <span class="identifier">level</span><span class="special">.</span>
+<span class="special">*</span> <span class="identifier">Removed</span> <span class="error">`</span><span class="identifier">ptr_container_gen</span><span class="error">`</span> <span class="identifier">metafunction</span> <span class="keyword">and</span> <span class="error">`</span><span class="identifier">associative_container_gen</span><span class="error">`</span>
+ <span class="keyword">and</span> <span class="error">`</span><span class="identifier">ptr_associative_container_gen</span><span class="error">`</span> <span class="identifier">metafunction</span> <span class="identifier">classes</span><span class="special">.</span>
+<span class="special">*</span> <span class="identifier">Added</span> <span class="identifier">selector</span> <span class="identifier">templates</span><span class="special">.</span> <span class="identifier">See</span> <a class="link" href="reference/selectors.html" title="Selectors"><span class="bold"><strong>Selectors</strong></span></a><span class="special">.</span>
+<span class="special">*</span> <span class="identifier">Added</span> <a class="link" href="reference/emplace_function_gen.html" title="emplace_function_gen"><code class="computeroutput"><span class="identifier">emplace_function_gen</span></code></a> <span class="keyword">and</span> <a class="link" href="reference/emplace_assoc_function_gen.html" title="emplace_associative_function_gen"><code class="computeroutput"><span class="identifier">emplace_associative_function_gen</span></code></a>
+ <span class="identifier">type</span><span class="special">-</span><span class="identifier">generating</span> <span class="identifier">metafunctions</span><span class="special">.</span>
+<span class="special">*</span> <span class="identifier">Added</span> <a class="link" href="reference/is_flat_assoc_selector.html" title="is_flat_associative_selector"><code class="computeroutput"><span class="identifier">is_flat_associative_selector</span></code></a><span class="special">,</span> <a class="link" href="reference/is_ptr_selector.html" title="is_ptr_selector"><code class="computeroutput"><span class="identifier">is_ptr_selector</span></code></a><span class="special">,</span>
+ <a class="link" href="reference/is_recursive_selector.html" title="is_recursive_selector"><code class="computeroutput"><span class="identifier">is_recursive_selector</span></code></a><span class="special">,</span> <a class="link" href="reference/is_tr1_selector.html" title="is_tr1_selector"><code class="computeroutput"><span class="identifier">is_tr1_selector</span></code></a><span class="special">,</span> <span class="keyword">and</span>
+ <a class="link" href="reference/has_emplace_mfunc_selector.html" title="has_emplace_member_function_selector"><code class="computeroutput"><span class="identifier">has_emplace_member_function_selector</span></code></a> <span class="identifier">introspection</span> <span class="identifier">metafunctions</span><span class="special">.</span>
+<span class="special">*</span> <span class="identifier">Renamed</span> <span class="error">`</span><span class="identifier">is_unordered_selector</span><span class="error">`</span> <span class="identifier">to</span> <a class="link" href="reference/is_hashed_assoc_selector.html" title="is_hashed_associative_selector"><code class="computeroutput"><span class="identifier">is_hashed_associative_selector</span></code></a><span class="special">.</span>
+<span class="special">*</span> <span class="identifier">Removed</span> <span class="error">`</span><span class="identifier">boost_vecS</span><span class="error">`</span><span class="special">,</span> <span class="error">`</span><span class="identifier">boost_dequeS</span><span class="error">`</span><span class="special">,</span> <span class="error">`</span><span class="identifier">boost_listS</span><span class="error">`</span><span class="special">,</span> <span class="error">`</span><span class="identifier">boost_slistS</span><span class="error">`</span><span class="special">,</span>
+ <span class="error">`</span><span class="identifier">boost_setS</span><span class="error">`</span><span class="special">,</span> <span class="error">`</span><span class="identifier">boost_mapS</span><span class="error">`</span><span class="special">,</span> <span class="error">`</span><span class="identifier">boost_multisetS</span><span class="error">`</span><span class="special">,</span> <span class="keyword">and</span> <span class="error">`</span><span class="identifier">boost_multimapS</span><span class="error">`</span>
+ <span class="identifier">selector</span> <span class="identifier">type</span> <span class="identifier">definitions</span><span class="special">.</span>
+<span class="special">*</span> <span class="identifier">Modified</span> boost::adjacency_list <span class="identifier">so</span> <span class="identifier">that</span> <span class="identifier">it</span> <span class="identifier">also</span> <span class="identifier">recognizes</span> <span class="keyword">new</span> <span class="identifier">selector</span>
+ <span class="identifier">types</span> <span class="special">(</span><span class="identifier">except</span> <span class="identifier">when</span> <a class="link" href="reference/is_ptr_selector.html" title="is_ptr_selector"><code class="computeroutput"><span class="identifier">is_ptr_selector</span></code></a> <span class="identifier">returns</span> boost::mpl::true_<span class="special">).</span>
+</pre>
+<h4>
+<a name="container_gen.changelog.h7"></a>
+ <span class="phrase"><a name="container_gen.changelog.from_0_1_to_0_2"></a></span><a class="link" href="changelog.html#container_gen.changelog.from_0_1_to_0_2">From
+ 0.1 to 0.2</a>
+ </h4>
+<pre class="programlisting"><span class="special">*</span> <span class="identifier">Added</span> <span class="error">`</span><span class="identifier">boost_vecS</span><span class="error">`</span><span class="special">,</span> <span class="error">`</span><span class="identifier">stable_vecS</span><span class="error">`</span><span class="special">,</span> <span class="error">`</span><span class="identifier">boost_dequeS</span><span class="error">`</span><span class="special">,</span> <span class="error">`</span><span class="identifier">boost_listS</span><span class="error">`</span><span class="special">,</span>
+ <span class="error">`</span><span class="identifier">boost_slistS</span><span class="error">`</span><span class="special">,</span> <span class="error">`</span><span class="identifier">boost_setS</span><span class="error">`</span><span class="special">,</span> <span class="error">`</span><span class="identifier">boost_mapS</span><span class="error">`</span><span class="special">,</span> <span class="error">`</span><span class="identifier">boost_multisetS</span><span class="error">`</span><span class="special">,</span>
+ <span class="error">`</span><span class="identifier">boost_multimapS</span><span class="error">`</span><span class="special">,</span> <span class="error">`</span><span class="identifier">flat_setS</span><span class="error">`</span><span class="special">,</span> <span class="error">`</span><span class="identifier">flat_mapS</span><span class="error">`</span><span class="special">,</span> <span class="error">`</span><span class="identifier">flat_multisetS</span><span class="error">`</span><span class="special">,</span> <span class="keyword">and</span>
+ <span class="error">`</span><span class="identifier">flat_multimapS</span><span class="error">`</span> <span class="identifier">selector</span> <span class="identifier">types</span><span class="special">.</span>
+<span class="special">*</span> <span class="identifier">Added</span> <a class="link" href="reference/is_associative_selector.html" title="is_associative_selector"><code class="computeroutput"><span class="identifier">is_associative_selector</span></code></a><span class="special">,</span> <a class="link" href="reference/is_multiple_assoc_selector.html" title="is_multiple_associative_selector"><code class="computeroutput"><span class="identifier">is_multiple_associative_selector</span></code></a><span class="special">,</span>
+ <span class="error">`</span><span class="identifier">is_unordered_selector</span><span class="error">`</span><span class="special">,</span> <span class="keyword">and</span> <a class="link" href="reference/has_stable_iters_selector.html" title="has_stable_iterators_selector"><code class="computeroutput"><span class="identifier">has_stable_iterators_selector</span></code></a>
+ <span class="identifier">introspection</span> <span class="identifier">metafunctions</span><span class="special">.</span>
+</pre>
+</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 &#169; 1997-2013 Andrew Lumsdaine, Lie-Quan Lee,
+ Thomas Claveirole, Jeremy G. Siek, Cromwell D. Enage<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="reference/has_emplace_mfunc_selector.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/container_gen/libs/container_gen/doc/html/container_gen/reference.html
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ sandbox/container_gen/libs/container_gen/doc/html/container_gen/reference.html 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84957)
@@ -0,0 +1,82 @@
+<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&#160;1.&#160;container_gen 0.9">
+<link rel="up" href="../index.html" title="Chapter&#160;1.&#160;container_gen 0.9">
+<link rel="prev" href="../index.html" title="Chapter&#160;1.&#160;container_gen 0.9">
+<link rel="next" href="reference/selectors.html" title="Selectors">
+</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="reference/selectors.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="container_gen.reference"></a><a class="link" href="reference.html" title="Reference">Reference</a>
+</h2></div></div></div>
+<pre class="programlisting"><span class="special">*</span> <a class="link" href="reference/selectors.html" title="Selectors"><span class="bold"><strong>Selectors</strong></span></a>
+</pre>
+<h4>
+<a name="container_gen.reference.h0"></a>
+ <span class="phrase"><a name="container_gen.reference.type_generation_metafunctions"></a></span><a class="link" href="reference.html#container_gen.reference.type_generation_metafunctions">Type
+ Generation Metafunctions</a>
+ </h4>
+<pre class="programlisting"><span class="special">*</span> <a class="link" href="reference/container_gen.html" title="container_gen"><code class="computeroutput"><span class="identifier">container_gen</span></code></a>
+<span class="special">*</span> <a class="link" href="reference/emplace_function_gen.html" title="emplace_function_gen"><code class="computeroutput"><span class="identifier">emplace_function_gen</span></code></a>
+<span class="special">*</span> <a class="link" href="reference/emplace_assoc_function_gen.html" title="emplace_associative_function_gen"><code class="computeroutput"><span class="identifier">emplace_associative_function_gen</span></code></a>
+<span class="special">*</span> <a class="link" href="reference/push_range_function_gen.html" title="push_range_function_gen"><code class="computeroutput"><span class="identifier">push_range_function_gen</span></code></a>
+<span class="special">*</span> <a class="link" href="reference/insert_range_function_gen.html" title="insert_range_function_gen"><code class="computeroutput"><span class="identifier">insert_range_function_gen</span></code></a>
+<span class="special">*</span> <a class="link" href="reference/splice_function_gen.html" title="splice_function_gen"><code class="computeroutput"><span class="identifier">splice_function_gen</span></code></a>
+<span class="special">*</span> <a class="link" href="reference/insert_range_result_gen.html" title="insert_range_result_gen"><code class="computeroutput"><span class="identifier">insert_range_result_gen</span></code></a>
+</pre>
+<h4>
+<a name="container_gen.reference.h1"></a>
+ <span class="phrase"><a name="container_gen.reference.selector_introspection_metafunctions"></a></span><a class="link" href="reference.html#container_gen.reference.selector_introspection_metafunctions">Selector
+ Introspection Metafunctions</a>
+ </h4>
+<pre class="programlisting"><span class="special">*</span> <a class="link" href="reference/is_container_selector.html" title="is_container_selector"><code class="computeroutput"><span class="identifier">is_container_selector</span></code></a>
+<span class="special">*</span> <a class="link" href="reference/is_compare_selector.html" title="is_compare_selector"><code class="computeroutput"><span class="identifier">is_compare_selector</span></code></a>
+<span class="special">*</span> <a class="link" href="reference/is_hasher_selector.html" title="is_hasher_selector"><code class="computeroutput"><span class="identifier">is_hasher_selector</span></code></a>
+<span class="special">*</span> <a class="link" href="reference/is_allocator_selector.html" title="is_allocator_selector"><code class="computeroutput"><span class="identifier">is_allocator_selector</span></code></a>
+<span class="special">*</span> <a class="link" href="reference/is_reversible_selector.html" title="is_reversible_selector"><code class="computeroutput"><span class="identifier">is_reversible_selector</span></code></a>
+<span class="special">*</span> <a class="link" href="reference/is_random_access_selector.html" title="is_random_access_selector"><code class="computeroutput"><span class="identifier">is_random_access_selector</span></code></a>
+<span class="special">*</span> <a class="link" href="reference/is_associative_selector.html" title="is_associative_selector"><code class="computeroutput"><span class="identifier">is_associative_selector</span></code></a>
+<span class="special">*</span> <a class="link" href="reference/is_unique_assoc_selector.html" title="is_unique_associative_selector"><code class="computeroutput"><span class="identifier">is_unique_associative_selector</span></code></a>
+<span class="special">*</span> <a class="link" href="reference/is_multiple_assoc_selector.html" title="is_multiple_associative_selector"><code class="computeroutput"><span class="identifier">is_multiple_associative_selector</span></code></a>
+<span class="special">*</span> <a class="link" href="reference/is_flat_assoc_selector.html" title="is_flat_associative_selector"><code class="computeroutput"><span class="identifier">is_flat_associative_selector</span></code></a>
+<span class="special">*</span> <a class="link" href="reference/is_hashed_assoc_selector.html" title="is_hashed_associative_selector"><code class="computeroutput"><span class="identifier">is_hashed_associative_selector</span></code></a>
+<span class="special">*</span> <a class="link" href="reference/is_tr1_selector.html" title="is_tr1_selector"><code class="computeroutput"><span class="identifier">is_tr1_selector</span></code></a>
+<span class="special">*</span> <a class="link" href="reference/is_ptr_selector.html" title="is_ptr_selector"><code class="computeroutput"><span class="identifier">is_ptr_selector</span></code></a>
+<span class="special">*</span> <a class="link" href="reference/is_queue_selector.html" title="is_queue_selector"><code class="computeroutput"><span class="identifier">is_queue_selector</span></code></a>
+<span class="special">*</span> <a class="link" href="reference/is_stack_selector.html" title="is_stack_selector"><code class="computeroutput"><span class="identifier">is_stack_selector</span></code></a>
+<span class="special">*</span> <a class="link" href="reference/is_std_heap_selector.html" title="is_std_heap_selector"><code class="computeroutput"><span class="identifier">is_std_heap_selector</span></code></a>
+<span class="special">*</span> <a class="link" href="reference/is_heap_selector.html" title="is_heap_selector"><code class="computeroutput"><span class="identifier">is_heap_selector</span></code></a>
+<span class="special">*</span> <a class="link" href="reference/is_iter_heap_selector.html" title="is_iteratable_heap_selector"><code class="computeroutput"><span class="identifier">is_iteratable_heap_selector</span></code></a>
+<span class="special">*</span> <a class="link" href="reference/is_ord_iter_heap_selector.html" title="is_order_iteratable_heap_selector"><code class="computeroutput"><span class="identifier">is_order_iteratable_heap_selector</span></code></a>
+<span class="special">*</span> <a class="link" href="reference/is_mutable_heap_selector.html" title="is_mutable_heap_selector"><code class="computeroutput"><span class="identifier">is_mutable_heap_selector</span></code></a>
+<span class="special">*</span> <a class="link" href="reference/is_mergeable_heap_selector.html" title="is_mergeable_heap_selector"><code class="computeroutput"><span class="identifier">is_mergeable_heap_selector</span></code></a>
+<span class="special">*</span> <a class="link" href="reference/is_recursive_selector.html" title="is_recursive_selector"><code class="computeroutput"><span class="identifier">is_recursive_selector</span></code></a>
+<span class="special">*</span> <a class="link" href="reference/has_stable_iters_selector.html" title="has_stable_iterators_selector"><code class="computeroutput"><span class="identifier">has_stable_iterators_selector</span></code></a>
+<span class="special">*</span> <a class="link" href="reference/has_emplace_mfunc_selector.html" title="has_emplace_member_function_selector"><code class="computeroutput"><span class="identifier">has_emplace_member_function_selector</span></code></a>
+</pre>
+</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 &#169; 1997-2013 Andrew Lumsdaine, Lie-Quan Lee,
+ Thomas Claveirole, Jeremy G. Siek, Cromwell D. Enage<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../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="reference/selectors.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/container_gen/libs/container_gen/doc/html/container_gen/reference/container_gen.html
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ sandbox/container_gen/libs/container_gen/doc/html/container_gen/reference/container_gen.html 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84957)
@@ -0,0 +1,434 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>container_gen</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&#160;1.&#160;container_gen 0.9">
+<link rel="up" href="../reference.html" title="Reference">
+<link rel="prev" href="selectors.html" title="Selectors">
+<link rel="next" href="emplace_function_gen.html" title="emplace_function_gen">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr><td valign="top"><img alt="C++ Boost" width="277" height="86" src="../../../../../../boost.png"></td></tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="selectors.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_function_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="container_gen.reference.container_gen"></a><a class="link" href="container_gen.html" title="container_gen"><code class="computeroutput"><span class="identifier">container_gen</span></code></a>
+</h3></div></div></div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="container_gen.reference.container_gen.synopsis"></a><a class="link" href="container_gen.html#container_gen.reference.container_gen.synopsis" title="Synopsis">Synopsis</a>
+</h4></div></div></div>
+<p>
+</p>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+
+ <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Selector</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">&gt;</span>
+ <span class="keyword">struct</span> <span class="identifier">container_gen</span><span class="special">;</span>
+<span class="special">}</span> <span class="comment">// namespace boost</span>
+</pre>
+<p>
+ </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="container_gen.reference.container_gen.description"></a><a class="link" href="container_gen.html#container_gen.reference.container_gen.description" title="Description">Description</a>
+</h4></div></div></div>
+<p>
+ The boost::adjacency_list class template
+ uses this metafunction to map the <code class="computeroutput"><span class="identifier">OutEdgeList</span></code>
+ and <code class="computeroutput"><span class="identifier">VertexList</span></code> selectors
+ to the actual container types used for the graph storage. You can also
+ use this metafunction to determine the appropriate associative container
+ type given the specified selector. The example routine below uses the
+ <code class="computeroutput"><span class="identifier">container_gen</span></code> return type
+ to associate each distinct string character with the number of times it
+ appears in the string.
+ </p>
+<p>
+</p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Selector</span><span class="special">&gt;</span>
+<span class="keyword">void</span> <span class="identifier">output_char_tallies</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">str</span><span class="special">,</span> <span class="identifier">Selector</span><span class="special">)</span>
+<span class="special">{</span>
+ <span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">container_gen</span><span class="special">&lt;</span><span class="identifier">Selector</span><span class="special">,</span><span class="keyword">char</span><span class="special">,</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span><span class="special">&gt;::</span><span class="identifier">type</span>
+ <span class="identifier">FrequencyTable</span><span class="special">;</span>
+
+ <span class="identifier">FrequencyTable</span> <span class="identifier">freq_table</span><span class="special">;</span>
+
+ <span class="keyword">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">&lt;</span> <span class="identifier">str</span><span class="special">.</span><span class="identifier">size</span><span class="special">();</span> <span class="special">++</span><span class="identifier">i</span><span class="special">)</span>
+ <span class="special">{</span>
+ <span class="keyword">typename</span> <span class="identifier">FrequencyTable</span><span class="special">::</span><span class="identifier">iterator</span> <span class="identifier">ft_itr</span> <span class="special">=</span> <span class="identifier">freq_table</span><span class="special">.</span><span class="identifier">find</span><span class="special">(</span><span class="identifier">str</span><span class="special">[</span><span class="identifier">i</span><span class="special">]);</span>
+
+ <span class="keyword">if</span> <span class="special">(</span><span class="identifier">ft_itr</span> <span class="special">==</span> <span class="identifier">freq_table</span><span class="special">.</span><span class="identifier">end</span><span class="special">())</span>
+ <span class="special">{</span>
+ <span class="identifier">freq_table</span><span class="special">.</span><span class="identifier">insert</span><span class="special">(</span><span class="keyword">typename</span> <span class="identifier">FrequencyTable</span><span class="special">::</span><span class="identifier">value_type</span><span class="special">(</span><span class="identifier">str</span><span class="special">[</span><span class="identifier">i</span><span class="special">],</span> <span class="number">1</span><span class="special">));</span>
+ <span class="special">}</span>
+ <span class="keyword">else</span>
+ <span class="special">{</span>
+ <span class="special">++</span><span class="identifier">ft_itr</span><span class="special">-&gt;</span><span class="identifier">second</span><span class="special">;</span>
+ <span class="special">}</span>
+ <span class="special">}</span>
+
+ <span class="keyword">for</span> <span class="special">(</span>
+ <span class="keyword">typename</span> <span class="identifier">FrequencyTable</span><span class="special">::</span><span class="identifier">const_iterator</span> <span class="identifier">ft_itr</span> <span class="special">=</span> <span class="identifier">freq_table</span><span class="special">.</span><span class="identifier">begin</span><span class="special">();</span>
+ <span class="identifier">ft_itr</span> <span class="special">!=</span> <span class="identifier">freq_table</span><span class="special">.</span><span class="identifier">end</span><span class="special">();</span>
+ <span class="special">++</span><span class="identifier">ft_itr</span>
+ <span class="special">)</span>
+ <span class="special">{</span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="identifier">ft_itr</span><span class="special">-&gt;</span><span class="identifier">first</span> <span class="special">&lt;&lt;</span> <span class="string">": "</span> <span class="special">&lt;&lt;</span> <span class="identifier">ft_itr</span><span class="special">-&gt;</span><span class="identifier">second</span> <span class="special">&lt;&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
+ <span class="special">}</span>
+
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
+<span class="special">}</span>
+</pre>
+<p>
+ </p>
+<p>
+ This library provides specializations of this metafunction class for each
+ selector it provides whose resulting storage type models the STL Container concept. Here, two such selectors
+ are passed in calls to the example routine.
+ </p>
+<p>
+</p>
+<pre class="programlisting"><span class="keyword">int</span> <span class="identifier">main</span><span class="special">(</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">char</span><span class="special">**)</span>
+<span class="special">{</span>
+ <span class="identifier">output_char_tallies</span><span class="special">(</span><span class="string">"abacadabra"</span><span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_mapS</span><span class="special">());</span>
+ <span class="identifier">output_char_tallies</span><span class="special">(</span><span class="string">"loolapalooza"</span><span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">multimapS</span><span class="special">());</span>
+ <span class="keyword">return</span> <span class="number">0</span><span class="special">;</span>
+<span class="special">}</span>
+</pre>
+<p>
+ </p>
+<p>
+ The <code class="computeroutput"><span class="identifier">container_gen</span></code> specialization
+ for the <code class="computeroutput"><span class="identifier">stable_vector_selector</span></code>
+ template is shown here.
+ </p>
+<p>
+</p>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+
+
+ <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">AllocatorSelector</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">ValueType</span><span class="special">&gt;</span>
+ <span class="keyword">struct</span> <span class="identifier">container_gen</span><span class="special">&lt;</span>
+ <span class="identifier">stable_vector_selector</span><span class="special">&lt;</span><span class="identifier">AllocatorSelector</span><span class="special">&gt;</span>
+ <span class="special">,</span> <span class="identifier">ValueType</span>
+ <span class="special">,</span> <span class="keyword">void</span>
+ <span class="special">&gt;</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">container</span><span class="special">::</span><span class="identifier">stable_vector</span><span class="special">&lt;</span>
+ <span class="identifier">ValueType</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">&lt;</span>
+ <span class="identifier">AllocatorSelector</span>
+ <span class="special">,</span> <span class="identifier">ValueType</span>
+ <span class="special">&gt;::</span><span class="identifier">type</span>
+ <span class="special">&gt;</span>
+ <span class="identifier">type</span><span class="special">;</span>
+ <span class="special">};</span>
+
+<span class="special">}</span> <span class="comment">// namespace boost</span>
+</pre>
+<p>
+ </p>
+<p>
+ You can use <code class="computeroutput"><span class="identifier">container_gen</span></code>
+ to easily select an appropriate Boost.PointerContainer type. Pointer containers
+ are ideal for storing heterogeneous items with a common base type, e.g.
+ shapes:
+ </p>
+<p>
+</p>
+<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">my_shape</span>
+<span class="special">{</span>
+ <span class="keyword">virtual</span> <span class="special">~</span><span class="identifier">my_shape</span><span class="special">()</span>
+ <span class="special">{</span>
+ <span class="special">}</span>
+
+ <span class="keyword">virtual</span> <span class="keyword">double</span> <span class="identifier">compute_perimeter</span><span class="special">()</span> <span class="keyword">const</span> <span class="special">=</span> <span class="number">0</span><span class="special">;</span>
+
+ <span class="keyword">virtual</span> <span class="keyword">double</span> <span class="identifier">compute_area</span><span class="special">()</span> <span class="keyword">const</span> <span class="special">=</span> <span class="number">0</span><span class="special">;</span>
+<span class="special">};</span>
+
+<span class="keyword">class</span> <span class="identifier">your_square</span> <span class="special">:</span> <span class="keyword">public</span> <span class="identifier">my_shape</span>
+<span class="special">{</span>
+ <span class="keyword">double</span> <span class="identifier">length</span><span class="special">;</span>
+
+ <span class="keyword">public</span><span class="special">:</span>
+ <span class="keyword">explicit</span> <span class="identifier">your_square</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">s</span> <span class="special">=</span> <span class="number">1.0</span><span class="special">)</span> <span class="special">:</span> <span class="identifier">length</span><span class="special">(</span><span class="identifier">s</span><span class="special">)</span>
+ <span class="special">{</span>
+ <span class="special">}</span>
+
+ <span class="keyword">double</span> <span class="identifier">compute_perimeter</span><span class="special">()</span> <span class="keyword">const</span>
+ <span class="special">{</span>
+ <span class="keyword">return</span> <span class="identifier">length</span> <span class="special">*</span> <span class="number">4.0</span><span class="special">;</span>
+ <span class="special">}</span>
+
+ <span class="keyword">double</span> <span class="identifier">compute_area</span><span class="special">()</span> <span class="keyword">const</span>
+ <span class="special">{</span>
+ <span class="keyword">return</span> <span class="identifier">length</span> <span class="special">*</span> <span class="identifier">length</span><span class="special">;</span>
+ <span class="special">}</span>
+<span class="special">};</span>
+
+<span class="keyword">class</span> <span class="identifier">your_circle</span> <span class="special">:</span> <span class="keyword">public</span> <span class="identifier">my_shape</span>
+<span class="special">{</span>
+ <span class="keyword">double</span> <span class="identifier">radius</span><span class="special">;</span>
+
+ <span class="keyword">public</span><span class="special">:</span>
+ <span class="keyword">explicit</span> <span class="identifier">your_circle</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">r</span> <span class="special">=</span> <span class="number">1.0</span><span class="special">)</span> <span class="special">:</span> <span class="identifier">radius</span><span class="special">(</span><span class="identifier">r</span><span class="special">)</span>
+ <span class="special">{</span>
+ <span class="special">}</span>
+
+ <span class="keyword">double</span> <span class="identifier">compute_perimeter</span><span class="special">()</span> <span class="keyword">const</span>
+ <span class="special">{</span>
+ <span class="keyword">return</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">constants</span><span class="special">::</span><span class="identifier">pi</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">&gt;()</span> <span class="special">*</span> <span class="identifier">radius</span> <span class="special">*</span> <span class="number">2.0</span><span class="special">;</span>
+ <span class="special">}</span>
+
+ <span class="keyword">double</span> <span class="identifier">compute_area</span><span class="special">()</span> <span class="keyword">const</span>
+ <span class="special">{</span>
+ <span class="keyword">return</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">constants</span><span class="special">::</span><span class="identifier">pi</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">&gt;()</span> <span class="special">*</span> <span class="identifier">radius</span> <span class="special">*</span> <span class="identifier">radius</span><span class="special">;</span>
+ <span class="special">}</span>
+<span class="special">};</span>
+
+<span class="keyword">class</span> <span class="identifier">some_right_triangle</span> <span class="special">:</span> <span class="keyword">public</span> <span class="identifier">my_shape</span>
+<span class="special">{</span>
+ <span class="keyword">double</span> <span class="identifier">base</span><span class="special">;</span>
+ <span class="keyword">double</span> <span class="identifier">height</span><span class="special">;</span>
+
+ <span class="keyword">public</span><span class="special">:</span>
+ <span class="identifier">some_right_triangle</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">b</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">h</span><span class="special">)</span> <span class="special">:</span> <span class="identifier">base</span><span class="special">(</span><span class="identifier">b</span><span class="special">),</span> <span class="identifier">height</span><span class="special">(</span><span class="identifier">h</span><span class="special">)</span>
+ <span class="special">{</span>
+ <span class="special">}</span>
+
+ <span class="identifier">some_right_triangle</span><span class="special">()</span> <span class="special">:</span> <span class="identifier">base</span><span class="special">(</span><span class="number">1.0</span><span class="special">),</span> <span class="identifier">height</span><span class="special">(</span><span class="number">1.0</span><span class="special">)</span>
+ <span class="special">{</span>
+ <span class="special">}</span>
+
+ <span class="keyword">double</span> <span class="identifier">compute_perimeter</span><span class="special">()</span> <span class="keyword">const</span>
+ <span class="special">{</span>
+ <span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">std</span><span class="special">;</span>
+ <span class="keyword">return</span> <span class="identifier">sqrt</span><span class="special">(</span><span class="identifier">base</span> <span class="special">*</span> <span class="identifier">base</span> <span class="special">+</span> <span class="identifier">height</span> <span class="special">*</span> <span class="identifier">height</span><span class="special">)</span> <span class="special">+</span> <span class="identifier">base</span> <span class="special">+</span> <span class="identifier">height</span><span class="special">;</span>
+ <span class="special">}</span>
+
+ <span class="keyword">double</span> <span class="identifier">compute_area</span><span class="special">()</span> <span class="keyword">const</span>
+ <span class="special">{</span>
+ <span class="keyword">return</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">constants</span><span class="special">::</span><span class="identifier">half</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">&gt;()</span> <span class="special">*</span> <span class="identifier">base</span> <span class="special">*</span> <span class="identifier">height</span><span class="special">;</span>
+ <span class="special">}</span>
+<span class="special">};</span>
+</pre>
+<p>
+ </p>
+<p>
+ Many algorithms that work on the standard containers also work on pointer
+ containers out of the box.
+ </p>
+<p>
+</p>
+<pre class="programlisting"><span class="keyword">double</span> <span class="identifier">add_perimeter</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">value</span><span class="special">,</span> <span class="identifier">my_shape</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">shape</span><span class="special">)</span>
+<span class="special">{</span>
+ <span class="keyword">return</span> <span class="identifier">shape</span><span class="special">.</span><span class="identifier">compute_perimeter</span><span class="special">()</span> <span class="special">+</span> <span class="identifier">value</span><span class="special">;</span>
+<span class="special">}</span>
+
+<span class="keyword">double</span> <span class="identifier">add_area</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">value</span><span class="special">,</span> <span class="identifier">my_shape</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">shape</span><span class="special">)</span>
+<span class="special">{</span>
+ <span class="keyword">return</span> <span class="identifier">shape</span><span class="special">.</span><span class="identifier">compute_area</span><span class="special">()</span> <span class="special">+</span> <span class="identifier">value</span><span class="special">;</span>
+<span class="special">}</span>
+
+<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Shapes</span><span class="special">&gt;</span>
+<span class="keyword">void</span> <span class="identifier">output_shape_stats</span><span class="special">(</span><span class="identifier">Shapes</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">shapes</span><span class="special">)</span>
+<span class="special">{</span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Total perimeter length = "</span> <span class="special">&lt;&lt;</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">accumulate</span><span class="special">(</span>
+ <span class="identifier">shapes</span>
+ <span class="special">,</span> <span class="number">0.0</span>
+ <span class="special">,</span> <span class="identifier">add_perimeter</span>
+ <span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Total area = "</span> <span class="special">&lt;&lt;</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">accumulate</span><span class="special">(</span>
+ <span class="identifier">shapes</span>
+ <span class="special">,</span> <span class="number">0.0</span>
+ <span class="special">,</span> <span class="identifier">add_area</span>
+ <span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
+<span class="special">}</span>
+</pre>
+<p>
+ </p>
+<p>
+ The <code class="computeroutput"><span class="identifier">container_gen</span></code> metafunction
+ allows you to programmatically swap out different pointer container types
+ using type selectors.
+ </p>
+<p>
+</p>
+<pre class="programlisting"><span class="keyword">int</span> <span class="identifier">main</span><span class="special">(</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">char</span><span class="special">**)</span>
+<span class="special">{</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">container_gen</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_listS</span><span class="special">,</span><span class="identifier">my_shape</span><span class="special">&gt;::</span><span class="identifier">type</span> <span class="identifier">shapes</span><span class="special">;</span>
+
+ <span class="identifier">shapes</span><span class="special">.</span><span class="identifier">push_back</span><span class="special">(</span><span class="keyword">new</span> <span class="identifier">your_square</span><span class="special">());</span>
+ <span class="identifier">shapes</span><span class="special">.</span><span class="identifier">push_back</span><span class="special">(</span><span class="keyword">new</span> <span class="identifier">your_circle</span><span class="special">());</span>
+ <span class="identifier">shapes</span><span class="special">.</span><span class="identifier">push_back</span><span class="special">(</span><span class="keyword">new</span> <span class="identifier">some_right_triangle</span><span class="special">());</span>
+
+ <span class="identifier">output_shape_stats</span><span class="special">(</span><span class="identifier">shapes</span><span class="special">);</span>
+ <span class="keyword">return</span> <span class="number">0</span><span class="special">;</span>
+<span class="special">}</span>
+</pre>
+<p>
+ </p>
+<p>
+ You can also use <code class="computeroutput"><span class="identifier">container_gen</span></code>
+ to select an appropriate STL container adaptor or Boost.Heap data structure. Stacks and priority
+ queues work well for reordering items stored in other containers.
+ </p>
+<p>
+</p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Value</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Buffer</span><span class="special">&gt;</span>
+<span class="identifier">Value</span> <span class="identifier">output_next</span><span class="special">(</span><span class="identifier">Buffer</span><span class="special">&amp;</span> <span class="identifier">buffer</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="keyword">return</span> <span class="identifier">buffer</span><span class="special">.</span><span class="identifier">front</span><span class="special">();</span>
+<span class="special">}</span>
+
+<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Value</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Buffer</span><span class="special">&gt;</span>
+<span class="identifier">Value</span> <span class="identifier">output_next</span><span class="special">(</span><span class="identifier">Buffer</span><span class="special">&amp;</span> <span class="identifier">buffer</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">return</span> <span class="identifier">buffer</span><span class="special">.</span><span class="identifier">top</span><span class="special">();</span>
+<span class="special">}</span>
+
+<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Selector</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Itr</span><span class="special">&gt;</span>
+<span class="keyword">void</span> <span class="identifier">output_rearrangement</span><span class="special">(</span><span class="identifier">Itr</span> <span class="identifier">itr</span><span class="special">,</span> <span class="identifier">Itr</span> <span class="identifier">itr_end</span><span class="special">)</span>
+<span class="special">{</span>
+ <span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">iterator_value</span><span class="special">&lt;</span><span class="identifier">Itr</span><span class="special">&gt;::</span><span class="identifier">type</span> <span class="identifier">Value</span><span class="special">;</span>
+
+ <span class="keyword">typename</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">container_gen</span><span class="special">&lt;</span><span class="identifier">Selector</span><span class="special">,</span><span class="identifier">Value</span><span class="special">&gt;::</span><span class="identifier">type</span> <span class="identifier">buffer</span><span class="special">;</span>
+
+ <span class="keyword">for</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="identifier">itr</span><span class="special">)</span>
+ <span class="special">{</span>
+ <span class="identifier">buffer</span><span class="special">.</span><span class="identifier">push</span><span class="special">(*</span><span class="identifier">itr</span><span class="special">);</span>
+ <span class="special">}</span>
+
+ <span class="keyword">for</span> <span class="special">(;</span> <span class="special">!</span><span class="identifier">buffer</span><span class="special">.</span><span class="identifier">empty</span><span class="special">();</span> <span class="identifier">buffer</span><span class="special">.</span><span class="identifier">pop</span><span class="special">())</span>
+ <span class="special">{</span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">" "</span> <span class="special">&lt;&lt;</span> <span class="identifier">output_next</span><span class="special">&lt;</span><span class="identifier">Value</span><span class="special">&gt;(</span>
+ <span class="identifier">buffer</span>
+ <span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_queue_selector</span><span class="special">&lt;</span><span class="identifier">Selector</span><span class="special">&gt;()</span>
+ <span class="special">);</span>
+ <span class="special">}</span>
+
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
+<span class="special">}</span>
+</pre>
+<p>
+ </p>
+<p>
+ Again, thanks to the <code class="computeroutput"><span class="identifier">container_gen</span></code>
+ metafunction, you can use type selectors to swap out different container
+ adaptor and heap types.
+ </p>
+<p>
+</p>
+<pre class="programlisting"><span class="keyword">int</span> <span class="identifier">main</span><span class="special">(</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">char</span><span class="special">**)</span>
+<span class="special">{</span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">list</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;</span> <span class="identifier">int_list</span><span class="special">;</span>
+
+ <span class="identifier">int_list</span><span class="special">.</span><span class="identifier">push_back</span><span class="special">(</span><span class="number">2</span><span class="special">);</span>
+ <span class="identifier">int_list</span><span class="special">.</span><span class="identifier">push_back</span><span class="special">(</span><span class="number">3</span><span class="special">);</span>
+ <span class="identifier">int_list</span><span class="special">.</span><span class="identifier">push_back</span><span class="special">(</span><span class="number">1</span><span class="special">);</span>
+
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Original list:"</span><span class="special">;</span>
+ <span class="identifier">output_rearrangement</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">queueS</span><span class="special">&gt;(</span><span class="identifier">int_list</span><span class="special">.</span><span class="identifier">begin</span><span class="special">(),</span> <span class="identifier">int_list</span><span class="special">.</span><span class="identifier">end</span><span class="special">());</span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"In reverse:"</span><span class="special">;</span>
+ <span class="identifier">output_rearrangement</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">stackS</span><span class="special">&gt;(</span><span class="identifier">int_list</span><span class="special">.</span><span class="identifier">begin</span><span class="special">(),</span> <span class="identifier">int_list</span><span class="special">.</span><span class="identifier">end</span><span class="special">());</span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"With STL priority_queue:"</span><span class="special">;</span>
+ <span class="identifier">output_rearrangement</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">std_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">greater_than_selector</span><span class="special">&gt;</span>
+ <span class="special">&gt;(</span><span class="identifier">int_list</span><span class="special">.</span><span class="identifier">begin</span><span class="special">(),</span> <span class="identifier">int_list</span><span class="special">.</span><span class="identifier">end</span><span class="special">());</span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"With Boost priority_queue:"</span><span class="special">;</span>
+ <span class="identifier">output_rearrangement</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">priority_queue_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">greater_than_selector</span><span class="special">&gt;</span>
+ <span class="special">&gt;(</span><span class="identifier">int_list</span><span class="special">.</span><span class="identifier">begin</span><span class="special">(),</span> <span class="identifier">int_list</span><span class="special">.</span><span class="identifier">end</span><span class="special">());</span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"With 4-ary heap sort:"</span><span class="special">;</span>
+ <span class="identifier">output_rearrangement</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">d_ary_heap_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">greater_than_selector</span> <span class="comment">// deduced Boost.Parameter tpl-arg</span>
+ <span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">heap</span><span class="special">::</span><span class="identifier">arity</span><span class="special">&lt;</span><span class="number">4</span><span class="special">&gt;</span> <span class="comment">// explicit Boost.Parameter tpl-arg</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;(</span><span class="identifier">int_list</span><span class="special">.</span><span class="identifier">begin</span><span class="special">(),</span> <span class="identifier">int_list</span><span class="special">.</span><span class="identifier">end</span><span class="special">());</span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"With binomial heap sort:"</span><span class="special">;</span>
+ <span class="identifier">output_rearrangement</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">binomial_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">greater_than_selector</span><span class="special">&gt;</span>
+ <span class="special">&gt;(</span><span class="identifier">int_list</span><span class="special">.</span><span class="identifier">begin</span><span class="special">(),</span> <span class="identifier">int_list</span><span class="special">.</span><span class="identifier">end</span><span class="special">());</span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"With Fibonacci heap sort:"</span><span class="special">;</span>
+ <span class="identifier">output_rearrangement</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">fibonacci_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">greater_than_selector</span><span class="special">&gt;</span>
+ <span class="special">&gt;(</span><span class="identifier">int_list</span><span class="special">.</span><span class="identifier">begin</span><span class="special">(),</span> <span class="identifier">int_list</span><span class="special">.</span><span class="identifier">end</span><span class="special">());</span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"With pairing heap sort:"</span><span class="special">;</span>
+ <span class="identifier">output_rearrangement</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">pairing_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">greater_than_selector</span><span class="special">&gt;</span>
+ <span class="special">&gt;(</span><span class="identifier">int_list</span><span class="special">.</span><span class="identifier">begin</span><span class="special">(),</span> <span class="identifier">int_list</span><span class="special">.</span><span class="identifier">end</span><span class="special">());</span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"With skew heap sort:"</span><span class="special">;</span>
+ <span class="identifier">output_rearrangement</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">skew_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">greater_than_selector</span><span class="special">&gt;</span>
+ <span class="special">&gt;(</span><span class="identifier">int_list</span><span class="special">.</span><span class="identifier">begin</span><span class="special">(),</span> <span class="identifier">int_list</span><span class="special">.</span><span class="identifier">end</span><span class="special">());</span>
+
+ <span class="keyword">return</span> <span class="number">0</span><span class="special">;</span>
+<span class="special">}</span>
+</pre>
+<p>
+ </p>
+<p>
+ It is possible to nest associative containers via <code class="computeroutput"><span class="identifier">container_gen</span></code>,
+ e.g.:
+ </p>
+<p>
+</p>
+<pre class="programlisting"><span class="keyword">typedef</span> <span class="identifier">container_gen</span><span class="special">&lt;</span>
+ <span class="identifier">mapS</span>
+ <span class="special">,</span> <span class="identifier">container_gen</span><span class="special">&lt;</span><span class="identifier">setS</span><span class="special">,</span><span class="keyword">char</span><span class="special">&gt;::</span><span class="identifier">type</span>
+ <span class="special">,</span> std::string
+ <span class="special">&gt;::</span><span class="identifier">type</span>
+ <span class="identifier">MapOfCharSets2Strings</span><span class="special">;</span>
+</pre>
+<p>
+ </p>
+<p>
+ Finally, to use some other container of your choice, define a selector
+ class and then specialize this metafunction for your selector.
+ </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="container_gen.reference.container_gen.definition"></a><a class="link" href="container_gen.html#container_gen.reference.container_gen.definition" title="Where defined">Where
+ defined</a>
+</h4></div></div></div>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span>boost/container_gen/container_gen.hpp<span class="special">&gt;</span>
+</pre>
+<p>
+ </p>
+<p>
+ Forward declaration:
+ </p>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span>boost/container_gen/container_gen_fwd.hpp<span class="special">&gt;</span>
+</pre>
+<p>
+ </p>
+</div>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright &#169; 1997-2013 Andrew Lumsdaine, Lie-Quan Lee,
+ Thomas Claveirole, Jeremy G. Siek, Cromwell D. Enage<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="selectors.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_function_gen.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/container_gen/libs/container_gen/doc/html/container_gen/reference/emplace_assoc_function_gen.html
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ sandbox/container_gen/libs/container_gen/doc/html/container_gen/reference/emplace_assoc_function_gen.html 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84957)
@@ -0,0 +1,133 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>emplace_associative_function_gen</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&#160;1.&#160;container_gen 0.9">
+<link rel="up" href="../reference.html" title="Reference">
+<link rel="prev" href="emplace_function_gen.html" title="emplace_function_gen">
+<link rel="next" href="push_range_function_gen.html" title="push_range_function_gen">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr><td valign="top"><img alt="C++ Boost" width="277" height="86" src="../../../../../../boost.png"></td></tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="emplace_function_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="push_range_function_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="container_gen.reference.emplace_assoc_function_gen"></a><a class="link" href="emplace_assoc_function_gen.html" title="emplace_associative_function_gen"><code class="computeroutput"><span class="identifier">emplace_associative_function_gen</span></code></a>
+</h3></div></div></div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="container_gen.reference.emplace_assoc_function_gen.synopsis"></a><a class="link" href="emplace_assoc_function_gen.html#container_gen.reference.emplace_assoc_function_gen.synopsis" title="Synopsis">Synopsis</a>
+</h4></div></div></div>
+<p>
+</p>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+
+ <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Selector</span><span class="special">&gt;</span>
+ <span class="keyword">struct</span> <span class="identifier">emplace_associative_function_gen</span>
+ <span class="special">{</span>
+ <span class="comment">// typedef ... type;</span>
+ <span class="special">};</span>
+<span class="special">}</span> <span class="comment">// namespace boost</span>
+</pre>
+<p>
+ </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="container_gen.reference.emplace_assoc_function_gen.description"></a><a class="link" href="emplace_assoc_function_gen.html#container_gen.reference.emplace_assoc_function_gen.description" title="Description">Description</a>
+</h4></div></div></div>
+<p>
+ Returns a Default Constructible n-ary function object
+ type whose first argument type is a reference to an Associative Container and whose second argument
+ type is convertible to the container's key type. In practice, the type
+ of this container must be produced by <a class="link" href="container_gen.html" title="container_gen"><code class="computeroutput"><span class="identifier">container_gen</span></code></a> when given the same
+ selector template argument. The rest of the function object's arguments,
+ if any, will be forwarded either to the container's emplacement method
+ (if <a class="link" href="has_emplace_mfunc_selector.html" title="has_emplace_member_function_selector"><code class="computeroutput"><span class="identifier">has_emplace_member_function_selector</span></code></a>
+ returns boost::mpl::true_ for the given selector)
+ or to the mapped type's matching constructor. The call operator's return
+ value is a std::pair whose second element evaluates
+ to <code class="computeroutput"><span class="keyword">true</span></code> upon successful insertion
+ and whose first element is an iterator pointing to the key-value pair inserted.
+ </p>
+<p>
+ The return type of this metafunction also defines an indexing operator
+ that accepts a reference to a container and returns a proxy object that
+ allows emplacement function calls to be chained together, much like Boost.Assign.
+ </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="container_gen.reference.emplace_assoc_function_gen.definition"></a><a class="link" href="emplace_assoc_function_gen.html#container_gen.reference.emplace_assoc_function_gen.definition" title="Where defined">Where
+ defined</a>
+</h4></div></div></div>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span>boost/container_gen/emplace_assoc_function_gen.hpp<span class="special">&gt;</span>
+</pre>
+<p>
+ </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="container_gen.reference.emplace_assoc_function_gen.example"></a><a class="link" href="emplace_assoc_function_gen.html#container_gen.reference.emplace_assoc_function_gen.example" title="Example">Example</a>
+</h4></div></div></div>
+<p>
+</p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Selector</span><span class="special">&gt;</span>
+<span class="keyword">void</span> <span class="identifier">example</span><span class="special">()</span>
+<span class="special">{</span>
+ <span class="keyword">typename</span> <a class="link" href="container_gen.html" title="container_gen">container_gen</a><span class="special">&lt;</span><span class="identifier">Selector</span><span class="special">,</span><span class="keyword">int</span><span class="special">,</span>std::string<span class="special">&gt;::</span><span class="identifier">type</span> <span class="identifier">c1</span><span class="special">,</span> <span class="identifier">c2</span><span class="special">,</span> <span class="identifier">c3</span><span class="special">;</span>
+ <span class="keyword">typename</span> <span class="identifier">emplace_associative_function_gen</span><span class="special">&lt;</span><span class="identifier">Selector</span><span class="special">&gt;::</span><span class="identifier">type</span> <span class="identifier">emplacer</span><span class="special">;</span>
+
+ BOOST_AUTO_TPL<span class="special">(</span><span class="identifier">result1</span><span class="special">,</span> <span class="identifier">emplacer</span><span class="special">(</span><span class="identifier">c1</span><span class="special">,</span> <span class="special">-</span><span class="number">1</span><span class="special">,</span> <span class="string">"Hello,"</span><span class="special">));</span>
+ BOOST_AUTO_TPL<span class="special">(</span><span class="identifier">result2</span><span class="special">,</span> <span class="identifier">emplacer</span><span class="special">(</span><span class="identifier">c2</span><span class="special">,</span> <span class="special">-</span><span class="number">1</span><span class="special">,</span> <span class="string">"Hello,"</span><span class="special">));</span>
+ BOOST_ASSERT<span class="special">(</span><span class="identifier">result1</span> <span class="special">==</span> <span class="identifier">result2</span><span class="special">);</span>
+
+ <span class="identifier">result1</span> <span class="special">=</span> <span class="identifier">emplacer</span><span class="special">(</span><span class="identifier">c1</span><span class="special">,</span> <span class="number">42</span><span class="special">,</span> <span class="string">"world!"</span><span class="special">);</span>
+ <span class="identifier">result2</span> <span class="special">=</span> <span class="identifier">emplacer</span><span class="special">(</span><span class="identifier">c2</span><span class="special">,</span> <span class="number">42</span><span class="special">,</span> <span class="string">"world!"</span><span class="special">);</span>
+ BOOST_ASSERT<span class="special">(</span><span class="identifier">result1</span> <span class="special">==</span> <span class="identifier">result2</span><span class="special">);</span>
+ BOOST_ASSERT<span class="special">(</span>boost::range::equal<span class="special">(</span><span class="identifier">c1</span><span class="special">,</span> <span class="identifier">c2</span><span class="special">));</span>
+
+ <span class="identifier">emplacer</span><span class="special">[</span><span class="identifier">c3</span><span class="special">](-</span><span class="number">1</span><span class="special">,</span> <span class="string">"Hello,"</span><span class="special">)(</span><span class="number">42</span><span class="special">,</span> <span class="string">"world!"</span><span class="special">);</span>
+ BOOST_ASSERT<span class="special">(</span>boost::range::equal<span class="special">(</span><span class="identifier">c1</span><span class="special">,</span> <span class="identifier">c3</span><span class="special">));</span>
+<span class="special">}</span>
+
+<span class="keyword">int</span> <span class="identifier">main</span><span class="special">()</span>
+<span class="special">{</span>
+ <span class="identifier">example</span><span class="special">&lt;</span><a class="link" href="selectors.html" title="Selectors">boost::map_selector</a><span class="special">&lt;</span>boost::mpl::true_<span class="special">&gt;</span> <span class="special">&gt;();</span>
+ <span class="keyword">return</span> <span class="number">0</span><span class="special">;</span>
+<span class="special">}</span>
+</pre>
+<p>
+ </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="container_gen.reference.emplace_assoc_function_gen.test"></a><a class="link" href="emplace_assoc_function_gen.html#container_gen.reference.emplace_assoc_function_gen.test" title="Test">Test</a>
+</h4></div></div></div>
+<p>
+ <test/emplace_assoc_function_gen.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 &#169; 1997-2013 Andrew Lumsdaine, Lie-Quan Lee,
+ Thomas Claveirole, Jeremy G. Siek, Cromwell D. Enage<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="emplace_function_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="push_range_function_gen.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/container_gen/libs/container_gen/doc/html/container_gen/reference/emplace_function_gen.html
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ sandbox/container_gen/libs/container_gen/doc/html/container_gen/reference/emplace_function_gen.html 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84957)
@@ -0,0 +1,138 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>emplace_function_gen</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&#160;1.&#160;container_gen 0.9">
+<link rel="up" href="../reference.html" title="Reference">
+<link rel="prev" href="container_gen.html" title="container_gen">
+<link rel="next" href="emplace_assoc_function_gen.html" title="emplace_associative_function_gen">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr><td valign="top"><img alt="C++ Boost" width="277" height="86" src="../../../../../../boost.png"></td></tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="container_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="emplace_assoc_function_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="container_gen.reference.emplace_function_gen"></a><a class="link" href="emplace_function_gen.html" title="emplace_function_gen"><code class="computeroutput"><span class="identifier">emplace_function_gen</span></code></a>
+</h3></div></div></div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="container_gen.reference.emplace_function_gen.synopsis"></a><a class="link" href="emplace_function_gen.html#container_gen.reference.emplace_function_gen.synopsis" title="Synopsis">Synopsis</a>
+</h4></div></div></div>
+<p>
+</p>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+
+ <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Selector</span><span class="special">&gt;</span>
+ <span class="keyword">struct</span> <span class="identifier">emplace_function_gen</span>
+ <span class="special">{</span>
+ <span class="comment">// typedef ... type;</span>
+ <span class="special">};</span>
+<span class="special">}</span> <span class="comment">// namespace boost</span>
+</pre>
+<p>
+ </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="container_gen.reference.emplace_function_gen.description"></a><a class="link" href="emplace_function_gen.html#container_gen.reference.emplace_function_gen.description" title="Description">Description</a>
+</h4></div></div></div>
+<p>
+ Returns a Default Constructible n-ary function object
+ type whose first argument type is a reference to a container. In practice,
+ the type of this container must be produced by <a class="link" href="container_gen.html" title="container_gen"><code class="computeroutput"><span class="identifier">container_gen</span></code></a> when given the same
+ selector template argument. The rest of the function object's arguments,
+ if any, will be forwarded either to the container's emplacement method
+ (if <a class="link" href="has_emplace_mfunc_selector.html" title="has_emplace_member_function_selector"><code class="computeroutput"><span class="identifier">has_emplace_member_function_selector</span></code></a>
+ returns boost::mpl::true_ for the given selector)
+ or to the value type's matching constructor.
+ </p>
+<p>
+ If the container is a mutable Boost.Heap object, then the call operator's
+ return value is the handle returned by the container's emplacement function
+ call. If the container is a Boost.Heap object that is not mutable, then
+ the call operator's return type is <code class="computeroutput"><span class="keyword">void</span></code>.
+ Otherwise, the call operator's return value is a std::pair whose second element evaluates
+ to <code class="computeroutput"><span class="keyword">true</span></code> upon successful insertion
+ and whose first element is an iterator pointing to the element inserted.
+ </p>
+<p>
+ The return type of this metafunction also defines an indexing operator
+ that accepts a reference to a container and returns a proxy object that
+ allows emplacement function calls to be chained together, much like Boost.Assign.
+ </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="container_gen.reference.emplace_function_gen.definition"></a><a class="link" href="emplace_function_gen.html#container_gen.reference.emplace_function_gen.definition" title="Where defined">Where
+ defined</a>
+</h4></div></div></div>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span>boost/container_gen/emplace_function_gen.hpp<span class="special">&gt;</span>
+</pre>
+<p>
+ </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="container_gen.reference.emplace_function_gen.example"></a><a class="link" href="emplace_function_gen.html#container_gen.reference.emplace_function_gen.example" title="Example">Example</a>
+</h4></div></div></div>
+<p>
+</p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Selector</span><span class="special">&gt;</span>
+<span class="keyword">void</span> <span class="identifier">example</span><span class="special">()</span>
+<span class="special">{</span>
+ <span class="keyword">typename</span> <a class="link" href="container_gen.html" title="container_gen">container_gen</a><span class="special">&lt;</span><span class="identifier">Selector</span><span class="special">,</span>std::string<span class="special">&gt;::</span><span class="identifier">type</span> <span class="identifier">c1</span><span class="special">,</span> <span class="identifier">c2</span><span class="special">,</span> <span class="identifier">c3</span><span class="special">;</span>
+ <span class="keyword">typename</span> <span class="identifier">emplace_function_gen</span><span class="special">&lt;</span><span class="identifier">Selector</span><span class="special">&gt;::</span><span class="identifier">type</span> <span class="identifier">emplacer</span><span class="special">;</span>
+
+ BOOST_AUTO_TPL<span class="special">(</span><span class="identifier">result1</span><span class="special">,</span> <span class="identifier">emplacer</span><span class="special">(</span><span class="identifier">c1</span><span class="special">,</span> <span class="string">"Hello,"</span><span class="special">));</span>
+ BOOST_AUTO_TPL<span class="special">(</span><span class="identifier">result2</span><span class="special">,</span> <span class="identifier">emplacer</span><span class="special">(</span><span class="identifier">c2</span><span class="special">,</span> <span class="string">"Hello,"</span><span class="special">));</span>
+ BOOST_ASSERT<span class="special">(</span><span class="identifier">result1</span> <span class="special">==</span> <span class="identifier">result2</span><span class="special">);</span>
+
+ <span class="identifier">result1</span> <span class="special">=</span> <span class="identifier">emplacer</span><span class="special">(</span><span class="identifier">c1</span><span class="special">,</span> <span class="string">"world!"</span><span class="special">);</span>
+ <span class="identifier">result2</span> <span class="special">=</span> <span class="identifier">emplacer</span><span class="special">(</span><span class="identifier">c2</span><span class="special">,</span> <span class="string">"world!"</span><span class="special">);</span>
+ BOOST_ASSERT<span class="special">(</span><span class="identifier">result1</span> <span class="special">==</span> <span class="identifier">result2</span><span class="special">);</span>
+ BOOST_ASSERT<span class="special">(</span>boost::range::equal<span class="special">(</span><span class="identifier">c1</span><span class="special">,</span> <span class="identifier">c2</span><span class="special">));</span>
+
+ <span class="identifier">emplacer</span><span class="special">[</span><span class="identifier">c3</span><span class="special">](</span><span class="string">"Hello,"</span><span class="special">)(</span><span class="string">"world!"</span><span class="special">);</span>
+ BOOST_ASSERT<span class="special">(</span>boost::range::equal<span class="special">(</span><span class="identifier">c1</span><span class="special">,</span> <span class="identifier">c3</span><span class="special">));</span>
+<span class="special">}</span>
+
+<span class="keyword">int</span> <span class="identifier">main</span><span class="special">()</span>
+<span class="special">{</span>
+ <span class="identifier">example</span><span class="special">&lt;</span><a class="link" href="selectors.html" title="Selectors">boost::vector_selector</a><span class="special">&lt;</span>boost::mpl::true_<span class="special">&gt;</span> <span class="special">&gt;();</span>
+ <span class="keyword">return</span> <span class="number">0</span><span class="special">;</span>
+<span class="special">}</span>
+</pre>
+<p>
+ </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="container_gen.reference.emplace_function_gen.test"></a><a class="link" href="emplace_function_gen.html#container_gen.reference.emplace_function_gen.test" title="Test">Test</a>
+</h4></div></div></div>
+<p>
+ <test/emplace_function_gen.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 &#169; 1997-2013 Andrew Lumsdaine, Lie-Quan Lee,
+ Thomas Claveirole, Jeremy G. Siek, Cromwell D. Enage<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="container_gen.html"><img src="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_assoc_function_gen.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/container_gen/libs/container_gen/doc/html/container_gen/reference/has_emplace_mfunc_selector.html
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ sandbox/container_gen/libs/container_gen/doc/html/container_gen/reference/has_emplace_mfunc_selector.html 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84957)
@@ -0,0 +1,87 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>has_emplace_member_function_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&#160;1.&#160;container_gen 0.9">
+<link rel="up" href="../reference.html" title="Reference">
+<link rel="prev" href="has_stable_iters_selector.html" title="has_stable_iterators_selector">
+<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="has_stable_iters_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="../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="container_gen.reference.has_emplace_mfunc_selector"></a><a class="link" href="has_emplace_mfunc_selector.html" title="has_emplace_member_function_selector"><code class="computeroutput"><span class="identifier">has_emplace_member_function_selector</span></code></a>
+</h3></div></div></div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="container_gen.reference.has_emplace_mfunc_selector.synopsis"></a><a class="link" href="has_emplace_mfunc_selector.html#container_gen.reference.has_emplace_mfunc_selector.synopsis" title="Synopsis">Synopsis</a>
+</h4></div></div></div>
+<p>
+</p>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+
+ <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Selector</span><span class="special">&gt;</span>
+ <span class="keyword">struct</span> <span class="identifier">has_emplace_member_function_selector</span>
+ <span class="special">{</span>
+ <span class="comment">// typedef ... type;</span>
+ <span class="special">};</span>
+<span class="special">}</span> <span class="comment">// namespace boost</span>
+</pre>
+<p>
+ </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="container_gen.reference.has_emplace_mfunc_selector.description"></a><a class="link" href="has_emplace_mfunc_selector.html#container_gen.reference.has_emplace_mfunc_selector.description" title="Description">Description</a>
+</h4></div></div></div>
+<p>
+ Returns boost::mpl::true_ if the type to be returned
+ by <a class="link" href="container_gen.html" title="container_gen"><code class="computeroutput"><span class="identifier">container_gen</span></code></a> supports emplacement
+ construction of its elements, boost::mpl::false_ otherwise.
+ </p>
+<p>
+ The current implementation returns boost::mpl::true_ when passed in selectors
+ for which <a class="link" href="container_gen.html" title="container_gen"><code class="computeroutput"><span class="identifier">container_gen</span></code></a> will return a Boost.Container
+ model type, a Boost.Unordered
+ container type, or a Boost.Heap
+ model type; it will return boost::mpl::false_ for all other types of
+ selectors. Specialize this metafunction to return boost::mpl::true_ for your custom selector
+ if and only if the type to be returned by <a class="link" href="container_gen.html" title="container_gen"><code class="computeroutput"><span class="identifier">container_gen</span></code></a> supports emplacement
+ construction of its elements.
+ </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="container_gen.reference.has_emplace_mfunc_selector.definition"></a><a class="link" href="has_emplace_mfunc_selector.html#container_gen.reference.has_emplace_mfunc_selector.definition" title="Where defined">Where
+ defined</a>
+</h4></div></div></div>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span>boost/container_gen/has_emplace_mfunc_selector.hpp<span class="special">&gt;</span>
+</pre>
+<p>
+ </p>
+</div>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright &#169; 1997-2013 Andrew Lumsdaine, Lie-Quan Lee,
+ Thomas Claveirole, Jeremy G. Siek, Cromwell D. Enage<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="has_stable_iters_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="../changelog.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/container_gen/libs/container_gen/doc/html/container_gen/reference/has_stable_iters_selector.html
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ sandbox/container_gen/libs/container_gen/doc/html/container_gen/reference/has_stable_iters_selector.html 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84957)
@@ -0,0 +1,339 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>has_stable_iterators_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&#160;1.&#160;container_gen 0.9">
+<link rel="up" href="../reference.html" title="Reference">
+<link rel="prev" href="is_recursive_selector.html" title="is_recursive_selector">
+<link rel="next" href="has_emplace_mfunc_selector.html" title="has_emplace_member_function_selector">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr><td valign="top"><img alt="C++ Boost" width="277" height="86" src="../../../../../../boost.png"></td></tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="is_recursive_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="has_emplace_mfunc_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="container_gen.reference.has_stable_iters_selector"></a><a class="link" href="has_stable_iters_selector.html" title="has_stable_iterators_selector"><code class="computeroutput"><span class="identifier">has_stable_iterators_selector</span></code></a>
+</h3></div></div></div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="container_gen.reference.has_stable_iters_selector.synopsis"></a><a class="link" href="has_stable_iters_selector.html#container_gen.reference.has_stable_iters_selector.synopsis" title="Synopsis">Synopsis</a>
+</h4></div></div></div>
+<p>
+</p>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+
+ <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Selector</span><span class="special">&gt;</span>
+ <span class="keyword">struct</span> <span class="identifier">has_stable_iterators_selector</span>
+ <span class="special">{</span>
+ <span class="comment">// typedef ... type;</span>
+ <span class="special">};</span>
+<span class="special">}</span> <span class="comment">// namespace boost</span>
+</pre>
+<p>
+ </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="container_gen.reference.has_stable_iters_selector.description"></a><a class="link" href="has_stable_iters_selector.html#container_gen.reference.has_stable_iters_selector.description" title="Description">Description</a>
+</h4></div></div></div>
+<p>
+ Returns boost::mpl::true_ if the type to be returned
+ by <a class="link" href="container_gen.html" title="container_gen"><code class="computeroutput"><span class="identifier">container_gen</span></code></a> does not invalidate
+ any iterators while invoking a member function that structurally modifies
+ an instance of the container type, other than any iterator argument that
+ the member function takes in, boost::mpl::false_ otherwise.
+ </p>
+<p>
+ The current implementation returns boost::mpl::false_ when passed in selectors
+ for which <a class="link" href="container_gen.html" title="container_gen"><code class="computeroutput"><span class="identifier">container_gen</span></code></a> will return a Boost.Heap
+ model type, a Hashed Associative Container model type,
+ a Flat Associative Container model type, or
+ a Random Access Container model type other
+ than boost::array
+ or boost::container::stable_vector; it will return
+ boost::mpl::true_
+ for all other types of selectors. Specialize this metafunction to return
+ boost::mpl::false_
+ for your custom selector if and only if the type to be returned by <a class="link" href="container_gen.html" title="container_gen"><code class="computeroutput"><span class="identifier">container_gen</span></code></a>
+ invalidates iterators other than the argument during a structurally modifying
+ member function call.
+ </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="container_gen.reference.has_stable_iters_selector.definition"></a><a class="link" href="has_stable_iters_selector.html#container_gen.reference.has_stable_iters_selector.definition" title="Where defined">Where
+ defined</a>
+</h4></div></div></div>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span>boost/container_gen/has_stable_iters_selector.hpp<span class="special">&gt;</span>
+</pre>
+<p>
+ </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="container_gen.reference.has_stable_iters_selector.test"></a><a class="link" href="has_stable_iters_selector.html#container_gen.reference.has_stable_iters_selector.test" title="Test">Test</a>
+</h4></div></div></div>
+<p>
+</p>
+<pre class="programlisting"><span class="identifier">MPL_TEST_CASE</span><span class="special">()</span>
+<span class="special">{</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_stable_iterators_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">vecS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_stable_iterators_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">dequeS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_stable_iterators_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">listS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_stable_iterators_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">slistS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_stable_iterators_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">setS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_stable_iterators_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_stable_iterators_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">multisetS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_stable_iterators_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">multimapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_stable_iterators_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_setS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_stable_iterators_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_mapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_stable_iterators_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_multisetS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_stable_iterators_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_multimapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_stable_iterators_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_vecS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_stable_iterators_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_dequeS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_stable_iterators_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_listS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_stable_iterators_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_setS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_stable_iterators_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_mapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_stable_iterators_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_multisetS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_stable_iterators_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_multimapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_stable_iterators_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">stackS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_stable_iterators_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">queueS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_stable_iterators_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">std_heapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_stable_iterators_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_hash_setS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_stable_iterators_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_hash_mapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_stable_iterators_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_hash_multisetS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_stable_iterators_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_hash_multimapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_stable_iterators_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">vector_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_stable_iterators_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">stable_vecS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_stable_iterators_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">deque_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_stable_iterators_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">list_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_stable_iterators_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">set_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_stable_iterators_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">map_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_stable_iterators_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">multiset_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_stable_iterators_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">multimap_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_stable_iterators_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_set_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_stable_iterators_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_map_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_stable_iterators_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_multiset_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_stable_iterators_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_multimap_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_stable_iterators_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">flat_setS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_stable_iterators_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">flat_mapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_stable_iterators_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">flat_multisetS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_stable_iterators_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">flat_multimapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_stable_iterators_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">priority_queueS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_stable_iterators_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">d_ary_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">heap</span><span class="special">::</span><span class="identifier">arity</span><span class="special">&lt;</span><span class="number">4</span><span class="special">&gt;</span> <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_stable_iterators_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">binomial_heapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_stable_iterators_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">fibonacci_heapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_stable_iterators_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">pairing_heapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_stable_iterators_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">skew_heapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_stable_iterators_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">tr1_binary_predicate_selector</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_stable_iterators_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">equal_to_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_stable_iterators_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">less_than_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_stable_iterators_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">greater_than_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_stable_iterators_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">binary_predicate_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_stable_iterators_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">equivalenceS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_stable_iterators_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">c_str_less_than_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_stable_iterators_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">c_str_greater_than_selector</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_stable_iterators_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">boost_hash_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_stable_iterators_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">tr1_hash_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_stable_iterators_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">std_allocator_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_stable_iterators_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">std_flat_allocator_selector</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+<span class="special">}</span>
+</pre>
+<p>
+ </p>
+</div>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright &#169; 1997-2013 Andrew Lumsdaine, Lie-Quan Lee,
+ Thomas Claveirole, Jeremy G. Siek, Cromwell D. Enage<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="is_recursive_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="has_emplace_mfunc_selector.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/container_gen/libs/container_gen/doc/html/container_gen/reference/insert_range_function_gen.html
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ sandbox/container_gen/libs/container_gen/doc/html/container_gen/reference/insert_range_function_gen.html 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84957)
@@ -0,0 +1,210 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>insert_range_function_gen</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&#160;1.&#160;container_gen 0.9">
+<link rel="up" href="../reference.html" title="Reference">
+<link rel="prev" href="push_range_function_gen.html" title="push_range_function_gen">
+<link rel="next" href="splice_function_gen.html" title="splice_function_gen">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr><td valign="top"><img alt="C++ Boost" width="277" height="86" src="../../../../../../boost.png"></td></tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="push_range_function_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="splice_function_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="container_gen.reference.insert_range_function_gen"></a><a class="link" href="insert_range_function_gen.html" title="insert_range_function_gen"><code class="computeroutput"><span class="identifier">insert_range_function_gen</span></code></a>
+</h3></div></div></div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="container_gen.reference.insert_range_function_gen.synopsis"></a><a class="link" href="insert_range_function_gen.html#container_gen.reference.insert_range_function_gen.synopsis" title="Synopsis">Synopsis</a>
+</h4></div></div></div>
+<p>
+</p>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+
+ <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Selector</span><span class="special">&gt;</span>
+ <span class="keyword">struct</span> <span class="identifier">insert_range_function_gen</span>
+ <span class="special">{</span>
+ <span class="comment">// typedef ... type;</span>
+ <span class="special">};</span>
+<span class="special">}</span> <span class="comment">// namespace boost</span>
+</pre>
+<p>
+ </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="container_gen.reference.insert_range_function_gen.description"></a><a class="link" href="insert_range_function_gen.html#container_gen.reference.insert_range_function_gen.description" title="Description">Description</a>
+</h4></div></div></div>
+<p>
+ Returns a Default Constructible function object type
+ whose call operator will take in a reference to a container, a valid iterator
+ representing the point of insertion, and either two Input Iterator arguments or a Single Pass Range argument. In practice,
+ the container type must be produced by <a class="link" href="container_gen.html" title="container_gen"><code class="computeroutput"><span class="identifier">container_gen</span></code></a> when given the same
+ selector template argument.
+ </p>
+<p>
+ If the container type models the Sequence concept, then the function object
+ will forward the other argument(s) to the container's range insertion method;
+ the call operator's return value will be a Single Pass Range over the elements inserted
+ in the container.
+ </p>
+<p>
+ If the container type models the Associative Container concept, then the
+ function object will forward each element in the specified range to the
+ container's insertion method. If <a class="link" href="has_stable_iters_selector.html" title="has_stable_iterators_selector"><code class="computeroutput"><span class="identifier">has_stable_iterators_selector</span></code></a>
+ evaluates to boost::mpl::true_ for the specified selector,
+ then the call operator's return value will be a Single Pass Range of iterators pointing
+ to each of the elements that were successfully inserted in the container.
+ </p>
+<p>
+ The return type of this metafunction also defines an indexing operator
+ that accepts a reference to a container and returns a proxy object that
+ allows range insertion function calls to be chained together, much like
+ Boost.Assign.
+ </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="container_gen.reference.insert_range_function_gen.definition"></a><a class="link" href="insert_range_function_gen.html#container_gen.reference.insert_range_function_gen.definition" title="Where defined">Where
+ defined</a>
+</h4></div></div></div>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span>boost/container_gen/insert_range_function_gen.hpp<span class="special">&gt;</span>
+</pre>
+<p>
+ </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="container_gen.reference.insert_range_function_gen.example"></a><a class="link" href="insert_range_function_gen.html#container_gen.reference.insert_range_function_gen.example" title="Example">Example</a>
+</h4></div></div></div>
+<p>
+ Use the boost::range::equal()
+ algorithm to test two ranges for equality. To handle the case where the
+ range returned from a call to the <code class="computeroutput"><span class="identifier">insert_range_function_gen</span></code>
+ return function type is a Single Pass Range of iterators, use boost::adaptors::indirect().
+ </p>
+<p>
+</p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">ResultRange</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">AddedContainer</span><span class="special">&gt;</span>
+<span class="keyword">bool</span>
+ <span class="identifier">test_result_range</span><span class="special">(</span>
+ <span class="identifier">ResultRange</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">r</span>
+ <span class="special">,</span> <span class="identifier">AddedContainer</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">c</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="keyword">return</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">boost</span><span class="special">::</span><span class="identifier">adaptors</span><span class="special">::</span><span class="identifier">indirect</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span> <span class="identifier">c</span><span class="special">);</span>
+<span class="special">}</span>
+
+<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">ResultRange</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">AddedContainer</span><span class="special">&gt;</span>
+<span class="keyword">bool</span>
+ <span class="identifier">test_result_range</span><span class="special">(</span>
+ <span class="identifier">ResultRange</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">r</span>
+ <span class="special">,</span> <span class="identifier">AddedContainer</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">c</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">return</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">r</span><span class="special">,</span> <span class="identifier">c</span><span class="special">);</span>
+<span class="special">}</span>
+</pre>
+<p>
+ </p>
+<p>
+ Use the <a class="link" href="emplace_function_gen.html" title="emplace_function_gen"><code class="computeroutput"><span class="identifier">emplace_function_gen</span></code></a> metafunction
+ to construct containers using individual elements, then use this metafunction
+ to append the elements of one container to another in a single step. Use
+ the <a class="link" href="insert_range_result_gen.html" title="insert_range_result_gen"><code class="computeroutput"><span class="identifier">insert_range_result_gen</span></code></a> metafunction
+ to store the result of the operation.
+ </p>
+<p>
+</p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Selector</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">AddedContainer</span><span class="special">&gt;</span>
+<span class="keyword">void</span> <span class="identifier">test_insert_range_function_gen</span><span class="special">(</span><span class="identifier">AddedContainer</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">added_container</span><span class="special">)</span>
+<span class="special">{</span>
+ <span class="keyword">typename</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">container_gen</span><span class="special">&lt;</span><span class="identifier">Selector</span><span class="special">,</span><span class="identifier">test_string</span><span class="special">&gt;::</span><span class="identifier">type</span>
+ <span class="identifier">example_container</span><span class="special">,</span> <span class="identifier">test_container</span><span class="special">,</span> <span class="identifier">input_container</span><span class="special">;</span>
+ <span class="keyword">typename</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">emplace_function_gen</span><span class="special">&lt;</span><span class="identifier">Selector</span><span class="special">&gt;::</span><span class="identifier">type</span> <span class="identifier">emplacer</span><span class="special">;</span>
+ <span class="keyword">typename</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">insert_range_function_gen</span><span class="special">&lt;</span><span class="identifier">Selector</span><span class="special">&gt;::</span><span class="identifier">type</span> <span class="identifier">range_inserter</span><span class="special">;</span>
+
+ <span class="identifier">emplacer</span><span class="special">[</span><span class="identifier">example_container</span><span class="special">]</span>
+ <span class="special">(</span><span class="string">"able"</span><span class="special">)(</span><span class="string">"fox"</span><span class="special">)(</span><span class="string">"easy"</span><span class="special">)</span>
+ <span class="special">(</span><span class="string">"able"</span><span class="special">)(</span><span class="string">"fox"</span><span class="special">)(</span><span class="string">"iota"</span><span class="special">)(</span><span class="string">"hotel"</span><span class="special">)(</span><span class="string">"jupiter"</span><span class="special">)(</span><span class="string">"dog"</span><span class="special">)</span>
+ <span class="special">(</span><span class="string">"baker"</span><span class="special">)(</span><span class="string">"charlie"</span><span class="special">)(</span><span class="string">"dog"</span><span class="special">);</span>
+ <span class="identifier">emplacer</span><span class="special">[</span><span class="identifier">test_container</span><span class="special">]</span>
+ <span class="special">(</span><span class="string">"able"</span><span class="special">)(</span><span class="string">"fox"</span><span class="special">)(</span><span class="string">"easy"</span><span class="special">)(</span><span class="string">"baker"</span><span class="special">)(</span><span class="string">"charlie"</span><span class="special">)(</span><span class="string">"dog"</span><span class="special">);</span>
+ <span class="identifier">emplacer</span><span class="special">[</span><span class="identifier">input_container</span><span class="special">]</span>
+ <span class="special">(</span><span class="string">"able"</span><span class="special">)(</span><span class="string">"fox"</span><span class="special">)(</span><span class="string">"iota"</span><span class="special">)(</span><span class="string">"hotel"</span><span class="special">)(</span><span class="string">"jupiter"</span><span class="special">)(</span><span class="string">"dog"</span><span class="special">);</span>
+
+ <span class="keyword">typename</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">insert_range_result_gen</span><span class="special">&lt;</span><span class="identifier">Selector</span><span class="special">,</span><span class="identifier">test_string</span><span class="special">&gt;::</span><span class="identifier">type</span>
+ <span class="identifier">insert_range_result</span> <span class="special">=</span> <span class="identifier">range_inserter</span><span class="special">(</span>
+ <span class="identifier">test_container</span>
+ <span class="special">,</span> <span class="special">++++++</span><span class="identifier">test_container</span><span class="special">.</span><span class="identifier">begin</span><span class="special">()</span>
+ <span class="special">,</span> <span class="identifier">input_container</span>
+ <span class="special">);</span>
+
+ <span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+ <span class="identifier">test_result_range</span><span class="special">(</span>
+ <span class="identifier">insert_range_result</span>
+ <span class="special">,</span> <span class="identifier">added_container</span>
+ <span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_associative_selector</span><span class="special">&lt;</span><span class="identifier">Selector</span><span class="special">&gt;()</span>
+ <span class="special">)</span>
+ <span class="special">);</span>
+ <span class="identifier">BOOST_CHECK</span><span class="special">(</span><span class="number">6</span> <span class="special">==</span> <span class="identifier">input_container</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="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">test_container</span><span class="special">,</span> <span class="identifier">example_container</span><span class="special">));</span>
+<span class="special">}</span>
+</pre>
+<p>
+ </p>
+<p>
+ Test this metafunction across a wide variety of selector types.
+ </p>
+<p>
+</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">boost</span><span class="special">::</span><span class="identifier">container_gen</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">dequeS</span><span class="special">,</span><span class="identifier">test_string</span><span class="special">&gt;::</span><span class="identifier">type</span> <span class="identifier">added_container</span><span class="special">;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">emplace_function_gen</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">dequeS</span><span class="special">&gt;::</span><span class="identifier">type</span> <span class="identifier">emplacer</span><span class="special">;</span>
+
+ <span class="identifier">emplacer</span><span class="special">[</span><span class="identifier">added_container</span><span class="special">]</span>
+ <span class="special">(</span><span class="string">"able"</span><span class="special">)(</span><span class="string">"fox"</span><span class="special">)(</span><span class="string">"iota"</span><span class="special">)(</span><span class="string">"hotel"</span><span class="special">)(</span><span class="string">"jupiter"</span><span class="special">)(</span><span class="string">"dog"</span><span class="special">);</span>
+ <span class="identifier">test_insert_range_function_gen</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">vecS</span><span class="special">&gt;(</span><span class="identifier">added_container</span><span class="special">);</span>
+ <span class="identifier">test_insert_range_function_gen</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">dequeS</span><span class="special">&gt;(</span><span class="identifier">added_container</span><span class="special">);</span>
+ <span class="identifier">test_insert_range_function_gen</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">listS</span><span class="special">&gt;(</span><span class="identifier">added_container</span><span class="special">);</span>
+ <span class="comment">// ...</span>
+
+ <span class="keyword">return</span> <span class="number">0</span><span class="special">;</span>
+<span class="special">}</span>
+</pre>
+<p>
+ </p>
+<p>
+ The complete test program spans the following source files:
+ </p>
+<pre class="programlisting"><span class="special">*</span> <test/result_range.hpp>
+<span class="special">*</span> <test/insert_range_function_gen.cpp>
+</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 &#169; 1997-2013 Andrew Lumsdaine, Lie-Quan Lee,
+ Thomas Claveirole, Jeremy G. Siek, Cromwell D. Enage<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="push_range_function_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="splice_function_gen.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/container_gen/libs/container_gen/doc/html/container_gen/reference/insert_range_result_gen.html
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ sandbox/container_gen/libs/container_gen/doc/html/container_gen/reference/insert_range_result_gen.html 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84957)
@@ -0,0 +1,83 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>insert_range_result_gen</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&#160;1.&#160;container_gen 0.9">
+<link rel="up" href="../reference.html" title="Reference">
+<link rel="prev" href="splice_function_gen.html" title="splice_function_gen">
+<link rel="next" href="is_compare_selector.html" title="is_compare_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="splice_function_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="is_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="container_gen.reference.insert_range_result_gen"></a><a class="link" href="insert_range_result_gen.html" title="insert_range_result_gen"><code class="computeroutput"><span class="identifier">insert_range_result_gen</span></code></a>
+</h3></div></div></div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="container_gen.reference.insert_range_result_gen.synopsis"></a><a class="link" href="insert_range_result_gen.html#container_gen.reference.insert_range_result_gen.synopsis" title="Synopsis">Synopsis</a>
+</h4></div></div></div>
+<p>
+</p>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+
+ <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Selector</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span>
+ <span class="keyword">struct</span> <span class="identifier">insert_range_result_gen</span>
+ <span class="special">{</span>
+ <span class="keyword">typedef</span> <span class="special">...</span> <span class="identifier">type</span><span class="special">;</span>
+ <span class="special">};</span>
+<span class="special">}</span> <span class="comment">// namespace boost</span>
+</pre>
+<p>
+ </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="container_gen.reference.insert_range_result_gen.description"></a><a class="link" href="insert_range_result_gen.html#container_gen.reference.insert_range_result_gen.description" title="Description">Description</a>
+</h4></div></div></div>
+<p>
+ Determines the result type of the function object type returned by either
+ <a class="link" href="push_range_function_gen.html" title="push_range_function_gen"><code class="computeroutput"><span class="identifier">push_range_function_gen</span></code></a> or <a class="link" href="insert_range_function_gen.html" title="insert_range_function_gen"><code class="computeroutput"><span class="identifier">insert_range_function_gen</span></code></a>, using
+ the return type of <a class="link" href="container_gen.html" title="container_gen"><code class="computeroutput"><span class="identifier">container_gen</span></code></a> as the function
+ object's container argument type. If the container type models the Sequence
+ concept, then the result type will be a Single Pass Range whose element type is
+ <code class="computeroutput"><span class="identifier">T</span></code>. If the container type
+ models the Associative Container concept, then the
+ result type will be a Single Pass Range whose element type is
+ the container's iterator type.
+ </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="container_gen.reference.insert_range_result_gen.definition"></a><a class="link" href="insert_range_result_gen.html#container_gen.reference.insert_range_result_gen.definition" title="Where defined">Where
+ defined</a>
+</h4></div></div></div>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span>boost/container_gen/insert_range_result_gen.hpp<span class="special">&gt;</span>
+</pre>
+<p>
+ </p>
+</div>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright &#169; 1997-2013 Andrew Lumsdaine, Lie-Quan Lee,
+ Thomas Claveirole, Jeremy G. Siek, Cromwell D. Enage<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="splice_function_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="is_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/container_gen/libs/container_gen/doc/html/container_gen/reference/is_allocator_selector.html
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ sandbox/container_gen/libs/container_gen/doc/html/container_gen/reference/is_allocator_selector.html 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84957)
@@ -0,0 +1,292 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>is_allocator_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&#160;1.&#160;container_gen 0.9">
+<link rel="up" href="../reference.html" title="Reference">
+<link rel="prev" href="is_hasher_selector.html" title="is_hasher_selector">
+<link rel="next" href="is_container_selector.html" title="is_container_selector">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr><td valign="top"><img alt="C++ Boost" width="277" height="86" src="../../../../../../boost.png"></td></tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="is_hasher_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="is_container_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="container_gen.reference.is_allocator_selector"></a><a class="link" href="is_allocator_selector.html" title="is_allocator_selector"><code class="computeroutput"><span class="identifier">is_allocator_selector</span></code></a>
+</h3></div></div></div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="container_gen.reference.is_allocator_selector.synopsis"></a><a class="link" href="is_allocator_selector.html#container_gen.reference.is_allocator_selector.synopsis" title="Synopsis">Synopsis</a>
+</h4></div></div></div>
+<p>
+</p>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+
+ <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span>
+ <span class="keyword">struct</span> <span class="identifier">is_allocator_selector</span>
+ <span class="special">:</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">eval_if</span><span class="special">&lt;</span>
+ <span class="keyword">typename</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">detail</span><span class="special">::</span><span class="identifier">metafunction</span><span class="special">::</span><span class="identifier">has_apply_template</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;::</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">detail</span><span class="special">::</span><span class="identifier">metafunction</span>
+ <span class="special">::</span><span class="identifier">is_allocator_selector_metafunction_class</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</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">&gt;::</span><span class="identifier">type</span>
+ <span class="special">{</span>
+ <span class="identifier">BOOST_MPL_AUX_LAMBDA_SUPPORT</span><span class="special">(</span><span class="number">1</span><span class="special">,</span> <span class="identifier">is_allocator_selector</span><span class="special">,</span> <span class="special">(</span><span class="identifier">T</span><span class="special">))</span>
+ <span class="special">};</span>
+<span class="special">}</span> <span class="comment">// namespace boost</span>
+</pre>
+<p>
+ </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="container_gen.reference.is_allocator_selector.description"></a><a class="link" href="is_allocator_selector.html#container_gen.reference.is_allocator_selector.description" title="Description">Description</a>
+</h4></div></div></div>
+<p>
+ Returns boost::mpl::true_ if the specified selector
+ is a metafunction class that takes in a value type and returns an allocator
+ model, boost::mpl::false_ otherwise.
+ </p>
+<p>
+ If either BOOST_MPL_CFG_NO_HAS_XXX or
+ BOOST_MPL_CFG_NO_HAS_XXX_TEMPLATE
+ are defined, then you must specialize this metafunction to return boost::mpl::true_
+ for your custom selector.
+ </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="container_gen.reference.is_allocator_selector.definition"></a><a class="link" href="is_allocator_selector.html#container_gen.reference.is_allocator_selector.definition" title="Where defined">Where
+ defined</a>
+</h4></div></div></div>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span>boost/container_gen/is_allocator_selector.hpp<span class="special">&gt;</span>
+</pre>
+<p>
+ </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="container_gen.reference.is_allocator_selector.test"></a><a class="link" href="is_allocator_selector.html#container_gen.reference.is_allocator_selector.test" title="Test">Test</a>
+</h4></div></div></div>
+<p>
+</p>
+<pre class="programlisting"><span class="identifier">MPL_TEST_CASE</span><span class="special">()</span>
+<span class="special">{</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_allocator_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">vecS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_allocator_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">dequeS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_allocator_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">listS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_allocator_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">slistS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_allocator_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">setS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_allocator_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mapS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_allocator_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">multisetS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_allocator_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">multimapS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_allocator_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_setS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_allocator_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_mapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_allocator_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_multisetS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_allocator_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_multimapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_allocator_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_vecS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_allocator_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_dequeS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_allocator_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_listS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_allocator_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_setS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_allocator_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_mapS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_allocator_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_multisetS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_allocator_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_multimapS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_allocator_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">stackS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_allocator_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">queueS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_allocator_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">std_heapS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_allocator_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_hash_setS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_allocator_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_hash_mapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_allocator_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_hash_multisetS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_allocator_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_hash_multimapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_allocator_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">vector_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_allocator_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">stable_vecS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_allocator_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">deque_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_allocator_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">list_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_allocator_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">set_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_allocator_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">map_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_allocator_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">multiset_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_allocator_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">multimap_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_allocator_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_set_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_allocator_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_map_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_allocator_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_multiset_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_allocator_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_multimap_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_allocator_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">flat_setS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_allocator_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">flat_mapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_allocator_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">flat_multisetS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_allocator_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">flat_multimapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_allocator_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">priority_queueS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_allocator_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">d_ary_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">heap</span><span class="special">::</span><span class="identifier">arity</span><span class="special">&lt;</span><span class="number">4</span><span class="special">&gt;</span> <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_allocator_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">binomial_heapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_allocator_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">fibonacci_heapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_allocator_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">pairing_heapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_allocator_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">skew_heapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_allocator_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">tr1_binary_predicate_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_allocator_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">equal_to_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_allocator_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">less_than_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_allocator_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">greater_than_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_allocator_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">binary_predicate_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_allocator_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">equivalenceS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_allocator_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">c_str_less_than_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_allocator_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">c_str_greater_than_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_allocator_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">boost_hash_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_allocator_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">tr1_hash_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_allocator_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">std_allocator_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_allocator_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">std_flat_allocator_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+<span class="special">}</span>
+</pre>
+<p>
+ </p>
+</div>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright &#169; 1997-2013 Andrew Lumsdaine, Lie-Quan Lee,
+ Thomas Claveirole, Jeremy G. Siek, Cromwell D. Enage<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="is_hasher_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="is_container_selector.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/container_gen/libs/container_gen/doc/html/container_gen/reference/is_associative_selector.html
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ sandbox/container_gen/libs/container_gen/doc/html/container_gen/reference/is_associative_selector.html 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84957)
@@ -0,0 +1,280 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>is_associative_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&#160;1.&#160;container_gen 0.9">
+<link rel="up" href="../reference.html" title="Reference">
+<link rel="prev" href="is_random_access_selector.html" title="is_random_access_selector">
+<link rel="next" href="is_unique_assoc_selector.html" title="is_unique_associative_selector">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr><td valign="top"><img alt="C++ Boost" width="277" height="86" src="../../../../../../boost.png"></td></tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="is_random_access_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="is_unique_assoc_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="container_gen.reference.is_associative_selector"></a><a class="link" href="is_associative_selector.html" title="is_associative_selector"><code class="computeroutput"><span class="identifier">is_associative_selector</span></code></a>
+</h3></div></div></div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="container_gen.reference.is_associative_selector.synopsis"></a><a class="link" href="is_associative_selector.html#container_gen.reference.is_associative_selector.synopsis" title="Synopsis">Synopsis</a>
+</h4></div></div></div>
+<p>
+</p>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+
+ <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Selector</span><span class="special">&gt;</span>
+ <span class="keyword">struct</span> <span class="identifier">is_associative_selector</span>
+ <span class="special">{</span>
+ <span class="comment">// typedef ... type;</span>
+ <span class="special">};</span>
+<span class="special">}</span> <span class="comment">// namespace boost</span>
+</pre>
+<p>
+ </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="container_gen.reference.is_associative_selector.description"></a><a class="link" href="is_associative_selector.html#container_gen.reference.is_associative_selector.description" title="Description">Description</a>
+</h4></div></div></div>
+<p>
+ Returns boost::mpl::true_ if the type to be returned
+ by <a class="link" href="container_gen.html" title="container_gen"><code class="computeroutput"><span class="identifier">container_gen</span></code></a> will model the
+ Associative Container concept, boost::mpl::false_ otherwise.
+ </p>
+<p>
+ If both BOOST_TYPEOF_EMULATION and BOOST_MPL_CFG_NO_HAS_XXX
+ are defined, then you must specialize either the <a class="link" href="is_unique_assoc_selector.html" title="is_unique_associative_selector"><code class="computeroutput"><span class="identifier">is_unique_associative_selector</span></code></a>
+ metafunction or the <a class="link" href="is_multiple_assoc_selector.html" title="is_multiple_associative_selector"><code class="computeroutput"><span class="identifier">is_multiple_associative_selector</span></code></a>
+ metafunction to return boost::mpl::true_ for your custom selector
+ if and only if the <a class="link" href="container_gen.html" title="container_gen"><code class="computeroutput"><span class="identifier">container_gen</span></code></a> return type models
+ the respective concept.
+ </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="container_gen.reference.is_associative_selector.definition"></a><a class="link" href="is_associative_selector.html#container_gen.reference.is_associative_selector.definition" title="Where defined">Where
+ defined</a>
+</h4></div></div></div>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span>boost/container_gen/is_associative_selector.hpp<span class="special">&gt;</span>
+</pre>
+<p>
+ </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="container_gen.reference.is_associative_selector.test"></a><a class="link" href="is_associative_selector.html#container_gen.reference.is_associative_selector.test" title="Test">Test</a>
+</h4></div></div></div>
+<p>
+</p>
+<pre class="programlisting"><span class="identifier">MPL_TEST_CASE</span><span class="special">()</span>
+<span class="special">{</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">vecS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">dequeS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">listS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">slistS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">setS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mapS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">multisetS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">multimapS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_setS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_mapS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_multisetS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_multimapS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_vecS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_dequeS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_listS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_setS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_mapS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_multisetS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_multimapS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">stackS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">queueS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">std_heapS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_hash_setS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_hash_mapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_hash_multisetS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_hash_multimapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_associative_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">vector_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">stable_vecS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_associative_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">deque_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_associative_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">list_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_associative_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">set_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_associative_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">map_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_associative_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">multiset_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_associative_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">multimap_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_associative_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_set_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_associative_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_map_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_associative_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_multiset_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_associative_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_multimap_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">flat_setS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">flat_mapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">flat_multisetS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">flat_multimapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">priority_queueS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_associative_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">d_ary_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">heap</span><span class="special">::</span><span class="identifier">arity</span><span class="special">&lt;</span><span class="number">4</span><span class="special">&gt;</span> <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">binomial_heapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">fibonacci_heapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">pairing_heapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">skew_heapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">tr1_binary_predicate_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">equal_to_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">less_than_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">greater_than_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">binary_predicate_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">equivalenceS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">c_str_less_than_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">c_str_greater_than_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">boost_hash_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">tr1_hash_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">std_allocator_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">std_flat_allocator_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+<span class="special">}</span>
+</pre>
+<p>
+ </p>
+</div>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright &#169; 1997-2013 Andrew Lumsdaine, Lie-Quan Lee,
+ Thomas Claveirole, Jeremy G. Siek, Cromwell D. Enage<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="is_random_access_selector.html"><img src="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="is_unique_assoc_selector.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/container_gen/libs/container_gen/doc/html/container_gen/reference/is_compare_selector.html
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ sandbox/container_gen/libs/container_gen/doc/html/container_gen/reference/is_compare_selector.html 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84957)
@@ -0,0 +1,284 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>is_compare_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&#160;1.&#160;container_gen 0.9">
+<link rel="up" href="../reference.html" title="Reference">
+<link rel="prev" href="insert_range_result_gen.html" title="insert_range_result_gen">
+<link rel="next" href="is_hasher_selector.html" title="is_hasher_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="insert_range_result_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="is_hasher_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="container_gen.reference.is_compare_selector"></a><a class="link" href="is_compare_selector.html" title="is_compare_selector"><code class="computeroutput"><span class="identifier">is_compare_selector</span></code></a>
+</h3></div></div></div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="container_gen.reference.is_compare_selector.synopsis"></a><a class="link" href="is_compare_selector.html#container_gen.reference.is_compare_selector.synopsis" title="Synopsis">Synopsis</a>
+</h4></div></div></div>
+<p>
+</p>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+
+ <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span>
+ <span class="keyword">struct</span> <span class="identifier">is_compare_selector</span>
+ <span class="special">:</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">eval_if</span><span class="special">&lt;</span>
+ <span class="keyword">typename</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">detail</span><span class="special">::</span><span class="identifier">metafunction</span><span class="special">::</span><span class="identifier">has_apply_template</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;::</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">detail</span><span class="special">::</span><span class="identifier">metafunction</span>
+ <span class="special">::</span><span class="identifier">is_compare_selector_metafunction_class</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</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">&gt;::</span><span class="identifier">type</span>
+ <span class="special">{</span>
+ <span class="identifier">BOOST_MPL_AUX_LAMBDA_SUPPORT</span><span class="special">(</span><span class="number">1</span><span class="special">,</span> <span class="identifier">is_compare_selector</span><span class="special">,</span> <span class="special">(</span><span class="identifier">T</span><span class="special">))</span>
+ <span class="special">};</span>
+<span class="special">}</span> <span class="comment">// namespace boost</span>
+</pre>
+<p>
+ </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="container_gen.reference.is_compare_selector.description"></a><a class="link" href="is_compare_selector.html#container_gen.reference.is_compare_selector.description" title="Description">Description</a>
+</h4></div></div></div>
+<p>
+ Returns boost::mpl::true_ if the specified selector
+ is a metafunction class that takes in a value type and returns a <a href="http://www.sgi.com/tech/stl/BinaryPredicate.html" target="_top"><span class="bold"><strong>Binary
+ Predicate</strong></span></a> model, boost::mpl::false_ otherwise.
+ </p>
+<p>
+ If either BOOST_MPL_CFG_NO_HAS_XXX or
+ BOOST_MPL_CFG_NO_HAS_XXX_TEMPLATE
+ are defined, then you must specialize this metafunction to return boost::mpl::true_
+ for your custom selector.
+ </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="container_gen.reference.is_compare_selector.definition"></a><a class="link" href="is_compare_selector.html#container_gen.reference.is_compare_selector.definition" title="Where defined">Where
+ defined</a>
+</h4></div></div></div>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span>boost/container_gen/is_compare_selector.hpp<span class="special">&gt;</span>
+</pre>
+<p>
+ </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="container_gen.reference.is_compare_selector.test"></a><a class="link" href="is_compare_selector.html#container_gen.reference.is_compare_selector.test" title="Test">Test</a>
+</h4></div></div></div>
+<p>
+</p>
+<pre class="programlisting"><span class="identifier">MPL_TEST_CASE</span><span class="special">()</span>
+<span class="special">{</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_compare_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">vecS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_compare_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">dequeS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_compare_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">listS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_compare_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">slistS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_compare_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">setS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_compare_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mapS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_compare_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">multisetS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_compare_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">multimapS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_compare_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_setS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_compare_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_mapS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_compare_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_multisetS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_compare_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_multimapS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_compare_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_vecS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_compare_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_dequeS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_compare_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_listS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_compare_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_setS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_compare_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_mapS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_compare_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_multisetS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_compare_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_multimapS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_compare_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">stackS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_compare_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">queueS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_compare_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">std_heapS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_compare_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_hash_setS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_compare_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_hash_mapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_compare_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_hash_multisetS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_compare_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_hash_multimapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_compare_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">vector_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_compare_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">stable_vecS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_compare_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">deque_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_compare_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">list_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_compare_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">set_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_compare_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">map_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_compare_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">multiset_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_compare_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">multimap_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_compare_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_set_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_compare_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_map_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_compare_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_multiset_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_compare_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_multimap_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_compare_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">flat_setS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_compare_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">flat_mapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_compare_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">flat_multisetS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_compare_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">flat_multimapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_compare_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">priority_queueS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_compare_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">d_ary_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">heap</span><span class="special">::</span><span class="identifier">arity</span><span class="special">&lt;</span><span class="number">4</span><span class="special">&gt;</span> <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_compare_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">binomial_heapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_compare_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">fibonacci_heapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_compare_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">pairing_heapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_compare_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">skew_heapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_compare_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">tr1_binary_predicate_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_compare_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">equal_to_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_compare_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">less_than_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_compare_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">greater_than_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_compare_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">binary_predicate_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_compare_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">equivalenceS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_compare_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">c_str_less_than_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_compare_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">c_str_greater_than_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_compare_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">boost_hash_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_compare_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">tr1_hash_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_compare_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">std_allocator_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_compare_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">std_flat_allocator_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+<span class="special">}</span>
+</pre>
+<p>
+ </p>
+</div>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright &#169; 1997-2013 Andrew Lumsdaine, Lie-Quan Lee,
+ Thomas Claveirole, Jeremy G. Siek, Cromwell D. Enage<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="insert_range_result_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="is_hasher_selector.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/container_gen/libs/container_gen/doc/html/container_gen/reference/is_container_selector.html
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ sandbox/container_gen/libs/container_gen/doc/html/container_gen/reference/is_container_selector.html 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84957)
@@ -0,0 +1,280 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>is_container_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&#160;1.&#160;container_gen 0.9">
+<link rel="up" href="../reference.html" title="Reference">
+<link rel="prev" href="is_allocator_selector.html" title="is_allocator_selector">
+<link rel="next" href="is_reversible_selector.html" title="is_reversible_selector">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr><td valign="top"><img alt="C++ Boost" width="277" height="86" src="../../../../../../boost.png"></td></tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="is_allocator_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="is_reversible_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="container_gen.reference.is_container_selector"></a><a class="link" href="is_container_selector.html" title="is_container_selector"><code class="computeroutput"><span class="identifier">is_container_selector</span></code></a>
+</h3></div></div></div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="container_gen.reference.is_container_selector.synopsis"></a><a class="link" href="is_container_selector.html#container_gen.reference.is_container_selector.synopsis" title="Synopsis">Synopsis</a>
+</h4></div></div></div>
+<p>
+</p>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+
+ <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Selector</span><span class="special">&gt;</span>
+ <span class="keyword">struct</span> <span class="identifier">is_container_selector</span>
+ <span class="special">{</span>
+ <span class="comment">// typedef ... type;</span>
+ <span class="special">};</span>
+<span class="special">}</span> <span class="comment">// namespace boost</span>
+</pre>
+<p>
+ </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="container_gen.reference.is_container_selector.description"></a><a class="link" href="is_container_selector.html#container_gen.reference.is_container_selector.description" title="Description">Description</a>
+</h4></div></div></div>
+<p>
+ Returns boost::mpl::true_ if the <a class="link" href="container_gen.html" title="container_gen"><code class="computeroutput"><span class="identifier">container_gen</span></code></a> metafunction has
+ been specialized to return a type given the specified selector type, boost::mpl::false_
+ otherwise.
+ </p>
+<p>
+ If BOOST_MPL_CFG_NO_HAS_XXX is defined,
+ then you must also specialize this metafunction to return boost::mpl::true_ for your custom selector.
+ </p>
+<p>
+ This metafunction is useful for facilitating Boost.Parameter-enabled template argument
+ deduction for types that take in <a class="link" href="selectors.html" title="Selectors"><span class="bold"><strong>Selectors</strong></span></a>.
+ </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="container_gen.reference.is_container_selector.definition"></a><a class="link" href="is_container_selector.html#container_gen.reference.is_container_selector.definition" title="Where defined">Where
+ defined</a>
+</h4></div></div></div>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span>boost/container_gen/is_container_selector.hpp<span class="special">&gt;</span>
+</pre>
+<p>
+ </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="container_gen.reference.is_container_selector.test"></a><a class="link" href="is_container_selector.html#container_gen.reference.is_container_selector.test" title="Test">Test</a>
+</h4></div></div></div>
+<p>
+</p>
+<pre class="programlisting"><span class="identifier">MPL_TEST_CASE</span><span class="special">()</span>
+<span class="special">{</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_container_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">vecS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_container_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">dequeS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_container_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">listS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_container_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">slistS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_container_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">setS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_container_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mapS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_container_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">multisetS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_container_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">multimapS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_container_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_setS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_container_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_mapS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_container_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_multisetS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_container_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_multimapS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_container_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_vecS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_container_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_dequeS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_container_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_listS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_container_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_setS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_container_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_mapS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_container_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_multisetS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_container_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_multimapS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_container_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">stackS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_container_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">queueS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_container_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">std_heapS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_container_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_hash_setS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_container_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_hash_mapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_container_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_hash_multisetS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_container_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_hash_multimapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_container_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">vector_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_container_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">stable_vecS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_container_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">deque_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_container_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">list_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_container_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">set_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_container_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">map_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_container_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">multiset_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_container_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">multimap_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_container_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_set_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_container_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_map_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_container_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_multiset_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_container_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_multimap_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_container_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">flat_setS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_container_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">flat_mapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_container_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">flat_multisetS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_container_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">flat_multimapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_container_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">priority_queueS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_container_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">d_ary_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">heap</span><span class="special">::</span><span class="identifier">arity</span><span class="special">&lt;</span><span class="number">4</span><span class="special">&gt;</span> <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_container_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">binomial_heapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_container_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">fibonacci_heapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_container_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">pairing_heapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_container_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">skew_heapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_container_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">tr1_binary_predicate_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_container_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">equal_to_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_container_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">less_than_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_container_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">greater_than_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_container_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">binary_predicate_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_container_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">equivalenceS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_container_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">c_str_less_than_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_container_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">c_str_greater_than_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_container_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">boost_hash_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_container_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">tr1_hash_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_container_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">std_allocator_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_container_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">std_flat_allocator_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+<span class="special">}</span>
+</pre>
+<p>
+ </p>
+</div>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright &#169; 1997-2013 Andrew Lumsdaine, Lie-Quan Lee,
+ Thomas Claveirole, Jeremy G. Siek, Cromwell D. Enage<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="is_allocator_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="is_reversible_selector.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/container_gen/libs/container_gen/doc/html/container_gen/reference/is_flat_assoc_selector.html
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ sandbox/container_gen/libs/container_gen/doc/html/container_gen/reference/is_flat_assoc_selector.html 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84957)
@@ -0,0 +1,325 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>is_flat_associative_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&#160;1.&#160;container_gen 0.9">
+<link rel="up" href="../reference.html" title="Reference">
+<link rel="prev" href="is_multiple_assoc_selector.html" title="is_multiple_associative_selector">
+<link rel="next" href="is_hashed_assoc_selector.html" title="is_hashed_associative_selector">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr><td valign="top"><img alt="C++ Boost" width="277" height="86" src="../../../../../../boost.png"></td></tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="is_multiple_assoc_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="is_hashed_assoc_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="container_gen.reference.is_flat_assoc_selector"></a><a class="link" href="is_flat_assoc_selector.html" title="is_flat_associative_selector"><code class="computeroutput"><span class="identifier">is_flat_associative_selector</span></code></a>
+</h3></div></div></div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="container_gen.reference.is_flat_assoc_selector.synopsis"></a><a class="link" href="is_flat_assoc_selector.html#container_gen.reference.is_flat_assoc_selector.synopsis" title="Synopsis">Synopsis</a>
+</h4></div></div></div>
+<p>
+</p>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+
+ <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Selector</span><span class="special">&gt;</span>
+ <span class="keyword">struct</span> <span class="identifier">is_flat_associative_selector</span>
+ <span class="special">{</span>
+ <span class="comment">// typedef ... type;</span>
+ <span class="special">};</span>
+<span class="special">}</span> <span class="comment">// namespace boost</span>
+</pre>
+<p>
+ </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="container_gen.reference.is_flat_assoc_selector.description"></a><a class="link" href="is_flat_assoc_selector.html#container_gen.reference.is_flat_assoc_selector.description" title="Description">Description</a>
+</h4></div></div></div>
+<p>
+ Returns boost::mpl::true_ if the type to be returned
+ by <a class="link" href="container_gen.html" title="container_gen"><code class="computeroutput"><span class="identifier">container_gen</span></code></a> will be a Flat Associative Container -- that is, if
+ it will model the Sorted Associative Container concept and
+ its iterator type will model the Random Access Iterator concept -- boost::mpl::false_
+ otherwise.
+ </p>
+<p>
+ If BOOST_MPL_CFG_NO_HAS_XXX is defined,
+ then you must specialize this metafunction to return boost::mpl::true_ for your custom selector
+ if and only if the type to be returned by <a class="link" href="container_gen.html" title="container_gen"><code class="computeroutput"><span class="identifier">container_gen</span></code></a> is a Flat Associative Container.
+ </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="container_gen.reference.is_flat_assoc_selector.definition"></a><a class="link" href="is_flat_assoc_selector.html#container_gen.reference.is_flat_assoc_selector.definition" title="Where defined">Where
+ defined</a>
+</h4></div></div></div>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span>boost/container_gen/is_flat_assoc_selector.hpp<span class="special">&gt;</span>
+</pre>
+<p>
+ </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="container_gen.reference.is_flat_assoc_selector.test"></a><a class="link" href="is_flat_assoc_selector.html#container_gen.reference.is_flat_assoc_selector.test" title="Test">Test</a>
+</h4></div></div></div>
+<p>
+</p>
+<pre class="programlisting"><span class="identifier">MPL_TEST_CASE</span><span class="special">()</span>
+<span class="special">{</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_flat_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">vecS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_flat_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">dequeS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_flat_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">listS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_flat_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">slistS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_flat_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">setS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_flat_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_flat_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">multisetS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_flat_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">multimapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_flat_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_setS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_flat_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_mapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_flat_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_multisetS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_flat_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_multimapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_flat_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_vecS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_flat_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_dequeS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_flat_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_listS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_flat_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_setS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_flat_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_mapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_flat_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_multisetS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_flat_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_multimapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_flat_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">stackS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_flat_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">queueS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_flat_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">std_heapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_flat_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_hash_setS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_flat_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_hash_mapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_flat_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_hash_multisetS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_flat_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_hash_multimapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_flat_associative_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">vector_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_flat_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">stable_vecS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_flat_associative_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">deque_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_flat_associative_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">list_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_flat_associative_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">set_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_flat_associative_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">map_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_flat_associative_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">multiset_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_flat_associative_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">multimap_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_flat_associative_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_set_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_flat_associative_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_map_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_flat_associative_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_multiset_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_flat_associative_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_multimap_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_flat_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">flat_setS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_flat_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">flat_mapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_flat_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">flat_multisetS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_flat_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">flat_multimapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_flat_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">priority_queueS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_flat_associative_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">d_ary_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">heap</span><span class="special">::</span><span class="identifier">arity</span><span class="special">&lt;</span><span class="number">4</span><span class="special">&gt;</span> <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_flat_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">binomial_heapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_flat_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">fibonacci_heapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_flat_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">pairing_heapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_flat_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">skew_heapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_flat_associative_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">tr1_binary_predicate_selector</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_flat_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">equal_to_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_flat_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">less_than_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_flat_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">greater_than_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_flat_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">binary_predicate_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_flat_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">equivalenceS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_flat_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">c_str_less_than_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_flat_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">c_str_greater_than_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_flat_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">boost_hash_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_flat_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">tr1_hash_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_flat_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">std_allocator_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_flat_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">std_flat_allocator_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+<span class="special">}</span>
+</pre>
+<p>
+ </p>
+</div>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright &#169; 1997-2013 Andrew Lumsdaine, Lie-Quan Lee,
+ Thomas Claveirole, Jeremy G. Siek, Cromwell D. Enage<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="is_multiple_assoc_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="is_hashed_assoc_selector.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/container_gen/libs/container_gen/doc/html/container_gen/reference/is_hashed_assoc_selector.html
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ sandbox/container_gen/libs/container_gen/doc/html/container_gen/reference/is_hashed_assoc_selector.html 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84957)
@@ -0,0 +1,328 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>is_hashed_associative_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&#160;1.&#160;container_gen 0.9">
+<link rel="up" href="../reference.html" title="Reference">
+<link rel="prev" href="is_flat_assoc_selector.html" title="is_flat_associative_selector">
+<link rel="next" href="is_tr1_selector.html" title="is_tr1_selector">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr><td valign="top"><img alt="C++ Boost" width="277" height="86" src="../../../../../../boost.png"></td></tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="is_flat_assoc_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="is_tr1_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="container_gen.reference.is_hashed_assoc_selector"></a><a class="link" href="is_hashed_assoc_selector.html" title="is_hashed_associative_selector"><code class="computeroutput"><span class="identifier">is_hashed_associative_selector</span></code></a>
+</h3></div></div></div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="container_gen.reference.is_hashed_assoc_selector.synopsis"></a><a class="link" href="is_hashed_assoc_selector.html#container_gen.reference.is_hashed_assoc_selector.synopsis" title="Synopsis">Synopsis</a>
+</h4></div></div></div>
+<p>
+</p>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+
+ <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Selector</span><span class="special">&gt;</span>
+ <span class="keyword">struct</span> <span class="identifier">is_hashed_associative_selector</span>
+ <span class="special">{</span>
+ <span class="comment">// typedef ... type;</span>
+ <span class="special">};</span>
+<span class="special">}</span> <span class="comment">// namespace boost</span>
+</pre>
+<p>
+ </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="container_gen.reference.is_hashed_assoc_selector.description"></a><a class="link" href="is_hashed_assoc_selector.html#container_gen.reference.is_hashed_assoc_selector.description" title="Description">Description</a>
+</h4></div></div></div>
+<p>
+ Returns boost::mpl::true_ if the type to be returned
+ by <a class="link" href="container_gen.html" title="container_gen"><code class="computeroutput"><span class="identifier">container_gen</span></code></a> will model the
+ Hashed Associative Container concept, boost::mpl::false_
+ otherwise.
+ </p>
+<p>
+ If BOOST_MPL_CFG_NO_HAS_XXX is defined,
+ then you must specialize this metafunction to return boost::mpl::true_ for your custom selector
+ if and only if the type to be returned by <a class="link" href="container_gen.html" title="container_gen"><code class="computeroutput"><span class="identifier">container_gen</span></code></a> models the Hashed Associative Container concept.
+ </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="container_gen.reference.is_hashed_assoc_selector.definition"></a><a class="link" href="is_hashed_assoc_selector.html#container_gen.reference.is_hashed_assoc_selector.definition" title="Where defined">Where
+ defined</a>
+</h4></div></div></div>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span>boost/container_gen/is_hashed_assoc_selector.hpp<span class="special">&gt;</span>
+</pre>
+<p>
+ </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="container_gen.reference.is_hashed_assoc_selector.test"></a><a class="link" href="is_hashed_assoc_selector.html#container_gen.reference.is_hashed_assoc_selector.test" title="Test">Test</a>
+</h4></div></div></div>
+<p>
+</p>
+<pre class="programlisting"><span class="identifier">MPL_TEST_CASE</span><span class="special">()</span>
+<span class="special">{</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_hashed_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">vecS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_hashed_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">dequeS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_hashed_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">listS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_hashed_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">slistS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_hashed_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">setS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_hashed_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_hashed_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">multisetS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_hashed_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">multimapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_hashed_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_setS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_hashed_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_mapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_hashed_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_multisetS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_hashed_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_multimapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_hashed_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_vecS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_hashed_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_dequeS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_hashed_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_listS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_hashed_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_setS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_hashed_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_mapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_hashed_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_multisetS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_hashed_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_multimapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_hashed_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">stackS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_hashed_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">queueS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_hashed_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">std_heapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_hashed_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_hash_setS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_hashed_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_hash_mapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_hashed_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_hash_multisetS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_hashed_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_hash_multimapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_hashed_associative_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">vector_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_hashed_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">stable_vecS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_hashed_associative_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">deque_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_hashed_associative_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">list_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_hashed_associative_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">set_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_hashed_associative_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">map_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_hashed_associative_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">multiset_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_hashed_associative_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">multimap_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_hashed_associative_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_set_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_hashed_associative_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_map_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_hashed_associative_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_multiset_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_hashed_associative_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_multimap_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_hashed_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">flat_setS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_hashed_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">flat_mapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_hashed_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">flat_multisetS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_hashed_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">flat_multimapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_hashed_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">priority_queueS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_hashed_associative_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">d_ary_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">heap</span><span class="special">::</span><span class="identifier">arity</span><span class="special">&lt;</span><span class="number">4</span><span class="special">&gt;</span> <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_hashed_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">binomial_heapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_hashed_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">fibonacci_heapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_hashed_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">pairing_heapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_hashed_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">skew_heapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_hashed_associative_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">tr1_binary_predicate_selector</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_hashed_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">equal_to_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_hashed_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">less_than_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_hashed_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">greater_than_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_hashed_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">binary_predicate_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_hashed_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">equivalenceS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_hashed_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">c_str_less_than_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_hashed_associative_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">c_str_greater_than_selector</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_hashed_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">boost_hash_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_hashed_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">tr1_hash_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_hashed_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">std_allocator_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_hashed_associative_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">std_flat_allocator_selector</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+<span class="special">}</span>
+</pre>
+<p>
+ </p>
+</div>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright &#169; 1997-2013 Andrew Lumsdaine, Lie-Quan Lee,
+ Thomas Claveirole, Jeremy G. Siek, Cromwell D. Enage<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="is_flat_assoc_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="is_tr1_selector.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/container_gen/libs/container_gen/doc/html/container_gen/reference/is_hasher_selector.html
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ sandbox/container_gen/libs/container_gen/doc/html/container_gen/reference/is_hasher_selector.html 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84957)
@@ -0,0 +1,278 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>is_hasher_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&#160;1.&#160;container_gen 0.9">
+<link rel="up" href="../reference.html" title="Reference">
+<link rel="prev" href="is_compare_selector.html" title="is_compare_selector">
+<link rel="next" href="is_allocator_selector.html" title="is_allocator_selector">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr><td valign="top"><img alt="C++ Boost" width="277" height="86" src="../../../../../../boost.png"></td></tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="is_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="is_allocator_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="container_gen.reference.is_hasher_selector"></a><a class="link" href="is_hasher_selector.html" title="is_hasher_selector"><code class="computeroutput"><span class="identifier">is_hasher_selector</span></code></a>
+</h3></div></div></div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="container_gen.reference.is_hasher_selector.synopsis"></a><a class="link" href="is_hasher_selector.html#container_gen.reference.is_hasher_selector.synopsis" title="Synopsis">Synopsis</a>
+</h4></div></div></div>
+<p>
+</p>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+
+ <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span>
+ <span class="keyword">struct</span> <span class="identifier">is_hasher_selector</span>
+ <span class="special">{</span>
+ <span class="comment">// typedef ... type;</span>
+ <span class="special">};</span>
+<span class="special">}</span> <span class="comment">// namespace boost</span>
+</pre>
+<p>
+ </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="container_gen.reference.is_hasher_selector.description"></a><a class="link" href="is_hasher_selector.html#container_gen.reference.is_hasher_selector.description" title="Description">Description</a>
+</h4></div></div></div>
+<p>
+ Returns boost::mpl::true_ if the specified selector
+ is a Unary Metafunction Class that takes in a
+ value type and returns a Hash Function model, boost::mpl::false_ otherwise.
+ </p>
+<p>
+ If either BOOST_MPL_CFG_NO_HAS_XXX or
+ BOOST_MPL_CFG_NO_HAS_XXX_TEMPLATE
+ are defined, then you must specialize this metafunction to return boost::mpl::true_
+ for your custom selector.
+ </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="container_gen.reference.is_hasher_selector.definition"></a><a class="link" href="is_hasher_selector.html#container_gen.reference.is_hasher_selector.definition" title="Where defined">Where
+ defined</a>
+</h4></div></div></div>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span>boost/container_gen/is_hasher_selector.hpp<span class="special">&gt;</span>
+</pre>
+<p>
+ </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="container_gen.reference.is_hasher_selector.test"></a><a class="link" href="is_hasher_selector.html#container_gen.reference.is_hasher_selector.test" title="Test">Test</a>
+</h4></div></div></div>
+<p>
+</p>
+<pre class="programlisting"><span class="identifier">MPL_TEST_CASE</span><span class="special">()</span>
+<span class="special">{</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_hasher_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">vecS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_hasher_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">dequeS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_hasher_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">listS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_hasher_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">slistS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_hasher_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">setS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_hasher_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mapS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_hasher_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">multisetS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_hasher_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">multimapS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_hasher_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_setS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_hasher_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_mapS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_hasher_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_multisetS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_hasher_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_multimapS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_hasher_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_vecS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_hasher_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_dequeS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_hasher_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_listS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_hasher_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_setS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_hasher_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_mapS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_hasher_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_multisetS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_hasher_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_multimapS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_hasher_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">stackS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_hasher_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">queueS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_hasher_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">std_heapS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_hasher_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_hash_setS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_hasher_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_hash_mapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_hasher_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_hash_multisetS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_hasher_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_hash_multimapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_hasher_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">vector_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_hasher_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">stable_vecS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_hasher_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">deque_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_hasher_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">list_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_hasher_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">set_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_hasher_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">map_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_hasher_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">multiset_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_hasher_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">multimap_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_hasher_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_set_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_hasher_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_map_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_hasher_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_multiset_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_hasher_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_multimap_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_hasher_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">flat_setS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_hasher_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">flat_mapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_hasher_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">flat_multisetS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_hasher_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">flat_multimapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_hasher_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">priority_queueS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_hasher_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">d_ary_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">heap</span><span class="special">::</span><span class="identifier">arity</span><span class="special">&lt;</span><span class="number">4</span><span class="special">&gt;</span> <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_hasher_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">binomial_heapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_hasher_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">fibonacci_heapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_hasher_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">pairing_heapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_hasher_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">skew_heapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_hasher_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">tr1_binary_predicate_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_hasher_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">equal_to_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_hasher_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">less_than_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_hasher_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">greater_than_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_hasher_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">binary_predicate_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_hasher_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">equivalenceS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_hasher_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">c_str_less_than_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_hasher_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">c_str_greater_than_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_hasher_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">boost_hash_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_hasher_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">tr1_hash_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_hasher_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">std_allocator_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_hasher_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">std_flat_allocator_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+<span class="special">}</span>
+</pre>
+<p>
+ </p>
+</div>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright &#169; 1997-2013 Andrew Lumsdaine, Lie-Quan Lee,
+ Thomas Claveirole, Jeremy G. Siek, Cromwell D. Enage<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="is_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="is_allocator_selector.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/container_gen/libs/container_gen/doc/html/container_gen/reference/is_heap_selector.html
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ sandbox/container_gen/libs/container_gen/doc/html/container_gen/reference/is_heap_selector.html 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84957)
@@ -0,0 +1,277 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>is_heap_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&#160;1.&#160;container_gen 0.9">
+<link rel="up" href="../reference.html" title="Reference">
+<link rel="prev" href="is_std_heap_selector.html" title="is_std_heap_selector">
+<link rel="next" href="is_iter_heap_selector.html" title="is_iteratable_heap_selector">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr><td valign="top"><img alt="C++ Boost" width="277" height="86" src="../../../../../../boost.png"></td></tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="is_std_heap_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="is_iter_heap_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="container_gen.reference.is_heap_selector"></a><a class="link" href="is_heap_selector.html" title="is_heap_selector"><code class="computeroutput"><span class="identifier">is_heap_selector</span></code></a>
+</h3></div></div></div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="container_gen.reference.is_heap_selector.synopsis"></a><a class="link" href="is_heap_selector.html#container_gen.reference.is_heap_selector.synopsis" title="Synopsis">Synopsis</a>
+</h4></div></div></div>
+<p>
+</p>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+
+ <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Selector</span><span class="special">&gt;</span>
+ <span class="keyword">struct</span> <span class="identifier">is_heap_selector</span>
+ <span class="special">{</span>
+ <span class="comment">// typedef ... type;</span>
+ <span class="special">};</span>
+<span class="special">}</span> <span class="comment">// namespace boost</span>
+</pre>
+<p>
+ </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="container_gen.reference.is_heap_selector.description"></a><a class="link" href="is_heap_selector.html#container_gen.reference.is_heap_selector.description" title="Description">Description</a>
+</h4></div></div></div>
+<p>
+ Returns boost::mpl::true_ if the specified selector
+ will cause <a class="link" href="container_gen.html" title="container_gen"><code class="computeroutput"><span class="identifier">container_gen</span></code></a> to return a Boost.Heap
+ model type, boost::mpl::false_ otherwise.
+ </p>
+<p>
+ If BOOST_MPL_CFG_NO_HAS_XXX is defined,
+ then you must specialize this metafunction to return boost::mpl::true_ for your custom selector
+ if and only if the type to be returned by <a class="link" href="container_gen.html" title="container_gen"><code class="computeroutput"><span class="identifier">container_gen</span></code></a> is a Boost.Heap model type.
+ </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="container_gen.reference.is_heap_selector.definition"></a><a class="link" href="is_heap_selector.html#container_gen.reference.is_heap_selector.definition" title="Where defined">Where
+ defined</a>
+</h4></div></div></div>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span>boost/container_gen/is_heap_selector.hpp<span class="special">&gt;</span>
+</pre>
+<p>
+ </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="container_gen.reference.is_heap_selector.test"></a><a class="link" href="is_heap_selector.html#container_gen.reference.is_heap_selector.test" title="Test">Test</a>
+</h4></div></div></div>
+<p>
+</p>
+<pre class="programlisting"><span class="identifier">MPL_TEST_CASE</span><span class="special">()</span>
+<span class="special">{</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">vecS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">dequeS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">listS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">slistS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">setS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mapS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">multisetS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">multimapS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_setS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_mapS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_multisetS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_multimapS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_vecS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_dequeS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_listS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_setS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_mapS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_multisetS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_multimapS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">stackS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">queueS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">std_heapS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_hash_setS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_hash_mapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_hash_multisetS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_hash_multimapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_heap_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">vector_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">stable_vecS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_heap_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">deque_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_heap_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">list_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_heap_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">set_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_heap_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">map_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_heap_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">multiset_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_heap_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">multimap_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_heap_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_set_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_heap_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_map_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_heap_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_multiset_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_heap_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_multimap_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">flat_setS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">flat_mapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">flat_multisetS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">flat_multimapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">priority_queueS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_heap_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">d_ary_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">heap</span><span class="special">::</span><span class="identifier">arity</span><span class="special">&lt;</span><span class="number">4</span><span class="special">&gt;</span> <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">binomial_heapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">fibonacci_heapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">pairing_heapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">skew_heapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">tr1_binary_predicate_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">equal_to_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">less_than_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">greater_than_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">binary_predicate_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">equivalenceS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">c_str_less_than_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">c_str_greater_than_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">boost_hash_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">tr1_hash_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">std_allocator_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">std_flat_allocator_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+<span class="special">}</span>
+</pre>
+<p>
+ </p>
+</div>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright &#169; 1997-2013 Andrew Lumsdaine, Lie-Quan Lee,
+ Thomas Claveirole, Jeremy G. Siek, Cromwell D. Enage<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="is_std_heap_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="is_iter_heap_selector.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/container_gen/libs/container_gen/doc/html/container_gen/reference/is_iter_heap_selector.html
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ sandbox/container_gen/libs/container_gen/doc/html/container_gen/reference/is_iter_heap_selector.html 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84957)
@@ -0,0 +1,326 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>is_iteratable_heap_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&#160;1.&#160;container_gen 0.9">
+<link rel="up" href="../reference.html" title="Reference">
+<link rel="prev" href="is_heap_selector.html" title="is_heap_selector">
+<link rel="next" href="is_ord_iter_heap_selector.html" title="is_order_iteratable_heap_selector">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr><td valign="top"><img alt="C++ Boost" width="277" height="86" src="../../../../../../boost.png"></td></tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="is_heap_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="is_ord_iter_heap_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="container_gen.reference.is_iter_heap_selector"></a><a class="link" href="is_iter_heap_selector.html" title="is_iteratable_heap_selector"><code class="computeroutput"><span class="identifier">is_iteratable_heap_selector</span></code></a>
+</h3></div></div></div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="container_gen.reference.is_iter_heap_selector.synopsis"></a><a class="link" href="is_iter_heap_selector.html#container_gen.reference.is_iter_heap_selector.synopsis" title="Synopsis">Synopsis</a>
+</h4></div></div></div>
+<p>
+</p>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+
+ <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Selector</span><span class="special">&gt;</span>
+ <span class="keyword">struct</span> <span class="identifier">is_iteratable_heap_selector</span>
+ <span class="special">{</span>
+ <span class="comment">// typedef ... type;</span>
+ <span class="special">};</span>
+<span class="special">}</span> <span class="comment">// namespace boost</span>
+</pre>
+<p>
+ </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="container_gen.reference.is_iter_heap_selector.description"></a><a class="link" href="is_iter_heap_selector.html#container_gen.reference.is_iter_heap_selector.description" title="Description">Description</a>
+</h4></div></div></div>
+<p>
+ Returns boost::mpl::true_ if the specified selector
+ will cause <a class="link" href="container_gen.html" title="container_gen"><code class="computeroutput"><span class="identifier">container_gen</span></code></a> to return an iteratable
+ Boost.Heap
+ model type, boost::mpl::false_ otherwise.
+ </p>
+<p>
+ If BOOST_MPL_CFG_NO_HAS_XXX is defined,
+ then you must specialize this metafunction to return boost::mpl::true_ for your custom selector
+ if and only if the type to be returned by <a class="link" href="container_gen.html" title="container_gen"><code class="computeroutput"><span class="identifier">container_gen</span></code></a> is an iteratable
+ Boost.Heap
+ model type.
+ </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="container_gen.reference.is_iter_heap_selector.definition"></a><a class="link" href="is_iter_heap_selector.html#container_gen.reference.is_iter_heap_selector.definition" title="Where defined">Where
+ defined</a>
+</h4></div></div></div>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span>boost/container_gen/is_iteratable_heap_selector.hpp<span class="special">&gt;</span>
+</pre>
+<p>
+ </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="container_gen.reference.is_iter_heap_selector.test"></a><a class="link" href="is_iter_heap_selector.html#container_gen.reference.is_iter_heap_selector.test" title="Test">Test</a>
+</h4></div></div></div>
+<p>
+</p>
+<pre class="programlisting"><span class="identifier">MPL_TEST_CASE</span><span class="special">()</span>
+<span class="special">{</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_iteratable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">vecS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_iteratable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">dequeS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_iteratable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">listS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_iteratable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">slistS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_iteratable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">setS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_iteratable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_iteratable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">multisetS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_iteratable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">multimapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_iteratable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_setS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_iteratable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_mapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_iteratable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_multisetS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_iteratable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_multimapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_iteratable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_vecS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_iteratable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_dequeS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_iteratable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_listS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_iteratable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_setS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_iteratable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_mapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_iteratable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_multisetS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_iteratable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_multimapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_iteratable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">stackS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_iteratable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">queueS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_iteratable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">std_heapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_iteratable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_hash_setS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_iteratable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_hash_mapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_iteratable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_hash_multisetS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_iteratable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_hash_multimapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_iteratable_heap_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">vector_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_iteratable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">stable_vecS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_iteratable_heap_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">deque_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_iteratable_heap_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">list_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_iteratable_heap_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">set_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_iteratable_heap_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">map_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_iteratable_heap_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">multiset_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_iteratable_heap_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">multimap_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_iteratable_heap_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_set_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_iteratable_heap_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_map_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_iteratable_heap_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_multiset_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_iteratable_heap_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_multimap_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_iteratable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">flat_setS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_iteratable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">flat_mapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_iteratable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">flat_multisetS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_iteratable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">flat_multimapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_iteratable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">priority_queueS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_iteratable_heap_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">d_ary_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">heap</span><span class="special">::</span><span class="identifier">arity</span><span class="special">&lt;</span><span class="number">4</span><span class="special">&gt;</span> <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_iteratable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">binomial_heapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_iteratable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">fibonacci_heapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_iteratable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">pairing_heapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_iteratable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">skew_heapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_iteratable_heap_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">tr1_binary_predicate_selector</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_iteratable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">equal_to_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_iteratable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">less_than_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_iteratable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">greater_than_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_iteratable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">binary_predicate_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_iteratable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">equivalenceS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_iteratable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">c_str_less_than_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_iteratable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">c_str_greater_than_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_iteratable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">boost_hash_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_iteratable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">tr1_hash_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_iteratable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">std_allocator_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_iteratable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">std_flat_allocator_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+<span class="special">}</span>
+</pre>
+<p>
+ </p>
+</div>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright &#169; 1997-2013 Andrew Lumsdaine, Lie-Quan Lee,
+ Thomas Claveirole, Jeremy G. Siek, Cromwell D. Enage<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="is_heap_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="is_ord_iter_heap_selector.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/container_gen/libs/container_gen/doc/html/container_gen/reference/is_mergeable_heap_selector.html
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ sandbox/container_gen/libs/container_gen/doc/html/container_gen/reference/is_mergeable_heap_selector.html 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84957)
@@ -0,0 +1,415 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>is_mergeable_heap_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&#160;1.&#160;container_gen 0.9">
+<link rel="up" href="../reference.html" title="Reference">
+<link rel="prev" href="is_mutable_heap_selector.html" title="is_mutable_heap_selector">
+<link rel="next" href="is_recursive_selector.html" title="is_recursive_selector">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr><td valign="top"><img alt="C++ Boost" width="277" height="86" src="../../../../../../boost.png"></td></tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="is_mutable_heap_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="is_recursive_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="container_gen.reference.is_mergeable_heap_selector"></a><a class="link" href="is_mergeable_heap_selector.html" title="is_mergeable_heap_selector"><code class="computeroutput"><span class="identifier">is_mergeable_heap_selector</span></code></a>
+</h3></div></div></div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="container_gen.reference.is_mergeable_heap_selector.synopsis"></a><a class="link" href="is_mergeable_heap_selector.html#container_gen.reference.is_mergeable_heap_selector.synopsis" title="Synopsis">Synopsis</a>
+</h4></div></div></div>
+<p>
+</p>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+
+ <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Selector</span><span class="special">&gt;</span>
+ <span class="keyword">struct</span> <span class="identifier">is_mergeable_heap_selector</span>
+ <span class="special">{</span>
+ <span class="comment">// typedef ... type;</span>
+ <span class="special">};</span>
+<span class="special">}</span> <span class="comment">// namespace boost</span>
+</pre>
+<p>
+ </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="container_gen.reference.is_mergeable_heap_selector.description"></a><a class="link" href="is_mergeable_heap_selector.html#container_gen.reference.is_mergeable_heap_selector.description" title="Description">Description</a>
+</h4></div></div></div>
+<p>
+ A Boost.Heap
+ model type is <span class="bold"><strong>mergeable</strong></span> if and only if
+ it defines a member function <code class="computeroutput"><span class="identifier">merge</span><span class="special">()</span></code> that takes in a reference-to-non-<code class="computeroutput"><span class="keyword">const</span></code> object of its own type and returns
+ <code class="computeroutput"><span class="keyword">void</span></code>. This metafunction returns
+ boost::mpl::true_
+ if the specified selector will cause <a class="link" href="container_gen.html" title="container_gen"><code class="computeroutput"><span class="identifier">container_gen</span></code></a> to return a mergeable
+ Boost.Heap
+ model type, boost::mpl::false_ otherwise.
+ </p>
+<p>
+ If BOOST_MPL_CFG_NO_HAS_XXX is defined,
+ then you must specialize this metafunction to return boost::mpl::true_ for your custom selector
+ if and only if the type to be returned by <a class="link" href="container_gen.html" title="container_gen"><code class="computeroutput"><span class="identifier">container_gen</span></code></a> is a mergeable
+ Boost.Heap
+ model type.
+ </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="container_gen.reference.is_mergeable_heap_selector.definition"></a><a class="link" href="is_mergeable_heap_selector.html#container_gen.reference.is_mergeable_heap_selector.definition" title="Where defined">Where
+ defined</a>
+</h4></div></div></div>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span>boost/container_gen/is_mergeable_heap_selector.hpp<span class="special">&gt;</span>
+</pre>
+<p>
+ </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="container_gen.reference.is_mergeable_heap_selector.example"></a><a class="link" href="is_mergeable_heap_selector.html#container_gen.reference.is_mergeable_heap_selector.example" title="Example">Example</a>
+</h4></div></div></div>
+<p>
+ The boost::heap::heap_merge()
+ function is the only way to merge two objects of different Boost.Heap model types or of the same Boost.Heap
+ model type that is otherwise not mergeable.
+ </p>
+<p>
+</p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Heap</span><span class="special">&gt;</span>
+<span class="keyword">void</span> <span class="identifier">test_heap_merge</span><span class="special">(</span><span class="identifier">Heap</span><span class="special">&amp;</span> <span class="identifier">heap1</span><span class="special">,</span> <span class="identifier">Heap</span><span class="special">&amp;</span> <span class="identifier">heap2</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">heap</span><span class="special">::</span><span class="identifier">heap_merge</span><span class="special">(</span><span class="identifier">heap1</span><span class="special">,</span> <span class="identifier">heap2</span><span class="special">);</span>
+<span class="special">}</span>
+</pre>
+<p>
+ </p>
+<p>
+ However, the boost::heap::heap_merge()
+ function may be less efficient than the <code class="computeroutput"><span class="identifier">merge</span><span class="special">()</span></code> member function of mergeable Boost.Heap model types.
+ </p>
+<p>
+</p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Heap</span><span class="special">&gt;</span>
+<span class="keyword">void</span> <span class="identifier">test_heap_merge</span><span class="special">(</span><span class="identifier">Heap</span><span class="special">&amp;</span> <span class="identifier">heap1</span><span class="special">,</span> <span class="identifier">Heap</span><span class="special">&amp;</span> <span class="identifier">heap2</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">heap1</span><span class="special">.</span><span class="identifier">merge</span><span class="special">(</span><span class="identifier">heap2</span><span class="special">);</span>
+<span class="special">}</span>
+</pre>
+<p>
+ </p>
+<p>
+ Use this metafunction to choose the correct and most efficient merge implementation.
+ </p>
+<p>
+</p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Selector</span><span class="special">&gt;</span>
+<span class="keyword">void</span> <span class="identifier">test_heap_merge</span><span class="special">()</span>
+<span class="special">{</span>
+ <span class="keyword">typename</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">container_gen</span><span class="special">&lt;</span><span class="identifier">Selector</span><span class="special">,</span><span class="keyword">int</span><span class="special">&gt;::</span><span class="identifier">type</span> <span class="identifier">heap_1</span><span class="special">,</span> <span class="identifier">heap_2</span><span class="special">;</span>
+ <span class="keyword">typename</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">emplace_function_gen</span><span class="special">&lt;</span><span class="identifier">Selector</span><span class="special">&gt;::</span><span class="identifier">type</span> <span class="identifier">pusher</span><span class="special">;</span>
+
+ <span class="identifier">pusher</span><span class="special">[</span><span class="identifier">heap_1</span><span class="special">](</span><span class="number">3</span><span class="special">)(</span><span class="number">5</span><span class="special">)(</span><span class="number">1</span><span class="special">);</span>
+ <span class="identifier">pusher</span><span class="special">[</span><span class="identifier">heap_2</span><span class="special">](</span><span class="number">2</span><span class="special">)(</span><span class="number">4</span><span class="special">)(</span><span class="number">0</span><span class="special">);</span>
+ <span class="identifier">test_heap_merge</span><span class="special">(</span>
+ <span class="identifier">heap_1</span>
+ <span class="special">,</span> <span class="identifier">heap_2</span>
+ <span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mergeable_heap_selector</span><span class="special">&lt;</span><span class="identifier">Selector</span><span class="special">&gt;()</span>
+ <span class="special">);</span>
+
+ <span class="keyword">for</span> <span class="special">(</span><span class="identifier">BOOST_CHECK</span><span class="special">(</span><span class="identifier">heap_2</span><span class="special">.</span><span class="identifier">empty</span><span class="special">());</span> <span class="special">!</span><span class="identifier">heap_2</span><span class="special">.</span><span class="identifier">empty</span><span class="special">();</span> <span class="identifier">heap_2</span><span class="special">.</span><span class="identifier">pop</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">heap_1</span><span class="special">.</span><span class="identifier">top</span><span class="special">());</span>
+ <span class="identifier">heap_1</span><span class="special">.</span><span class="identifier">pop</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">heap_1</span><span class="special">.</span><span class="identifier">top</span><span class="special">());</span>
+ <span class="identifier">heap_1</span><span class="special">.</span><span class="identifier">pop</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">heap_1</span><span class="special">.</span><span class="identifier">top</span><span class="special">());</span>
+ <span class="identifier">heap_1</span><span class="special">.</span><span class="identifier">pop</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="identifier">heap_1</span><span class="special">.</span><span class="identifier">top</span><span class="special">());</span>
+ <span class="identifier">heap_1</span><span class="special">.</span><span class="identifier">pop</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">heap_1</span><span class="special">.</span><span class="identifier">top</span><span class="special">());</span>
+ <span class="identifier">heap_1</span><span class="special">.</span><span class="identifier">pop</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">heap_1</span><span class="special">.</span><span class="identifier">top</span><span class="special">());</span>
+ <span class="identifier">heap_1</span><span class="special">.</span><span class="identifier">pop</span><span class="special">();</span>
+ <span class="identifier">BOOST_CHECK</span><span class="special">(</span><span class="identifier">heap_1</span><span class="special">.</span><span class="identifier">empty</span><span class="special">());</span>
+<span class="special">}</span>
+</pre>
+<p>
+ </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="container_gen.reference.is_mergeable_heap_selector.test"></a><a class="link" href="is_mergeable_heap_selector.html#container_gen.reference.is_mergeable_heap_selector.test" title="Test">Test</a>
+</h4></div></div></div>
+<p>
+</p>
+<pre class="programlisting"><span class="identifier">MPL_TEST_CASE</span><span class="special">()</span>
+<span class="special">{</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mergeable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">vecS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mergeable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">dequeS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mergeable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">listS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mergeable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">slistS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mergeable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">setS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mergeable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mergeable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">multisetS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mergeable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">multimapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mergeable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_setS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mergeable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_mapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mergeable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_multisetS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mergeable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_multimapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mergeable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_vecS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mergeable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_dequeS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mergeable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_listS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mergeable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_setS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mergeable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_mapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mergeable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_multisetS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mergeable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_multimapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mergeable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">stackS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mergeable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">queueS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mergeable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">std_heapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mergeable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_hash_setS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mergeable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_hash_mapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mergeable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_hash_multisetS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mergeable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_hash_multimapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mergeable_heap_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">vector_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mergeable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">stable_vecS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mutable_heap_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">deque_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mergeable_heap_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">list_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mergeable_heap_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">set_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mergeable_heap_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">map_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mergeable_heap_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">multiset_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mergeable_heap_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">multimap_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mergeable_heap_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_set_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mergeable_heap_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_map_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mergeable_heap_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_multiset_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mergeable_heap_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_multimap_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mergeable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">flat_setS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mergeable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">flat_mapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mergeable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">flat_multisetS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mergeable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">flat_multimapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mergeable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">priority_queueS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mergeable_heap_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">d_ary_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">heap</span><span class="special">::</span><span class="identifier">arity</span><span class="special">&lt;</span><span class="number">4</span><span class="special">&gt;</span> <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mergeable_heap_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">d_ary_heap_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">heap</span><span class="special">::</span><span class="identifier">mutable_</span><span class="special">&lt;</span><span class="keyword">true</span><span class="special">&gt;</span>
+ <span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">heap</span><span class="special">::</span><span class="identifier">arity</span><span class="special">&lt;</span><span class="number">4</span><span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mergeable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">binomial_heapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mergeable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">fibonacci_heapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mergeable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">pairing_heapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mergeable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">skew_heapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mergeable_heap_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">skew_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">heap</span><span class="special">::</span><span class="identifier">mutable_</span><span class="special">&lt;</span><span class="keyword">true</span><span class="special">&gt;</span> <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mergeable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">tr1_binary_predicate_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mergeable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">equal_to_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mergeable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">less_than_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mergeable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">greater_than_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mergeable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">binary_predicate_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mergeable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">equivalenceS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mergeable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">c_str_less_than_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mergeable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">c_str_greater_than_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mergeable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">boost_hash_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mergeable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">tr1_hash_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mergeable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">std_allocator_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mergeable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">std_flat_allocator_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+<span class="special">}</span>
+</pre>
+<p>
+ </p>
+</div>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright &#169; 1997-2013 Andrew Lumsdaine, Lie-Quan Lee,
+ Thomas Claveirole, Jeremy G. Siek, Cromwell D. Enage<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="is_mutable_heap_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="is_recursive_selector.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/container_gen/libs/container_gen/doc/html/container_gen/reference/is_multiple_assoc_selector.html
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ sandbox/container_gen/libs/container_gen/doc/html/container_gen/reference/is_multiple_assoc_selector.html 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84957)
@@ -0,0 +1,334 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>is_multiple_associative_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&#160;1.&#160;container_gen 0.9">
+<link rel="up" href="../reference.html" title="Reference">
+<link rel="prev" href="is_unique_assoc_selector.html" title="is_unique_associative_selector">
+<link rel="next" href="is_flat_assoc_selector.html" title="is_flat_associative_selector">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr><td valign="top"><img alt="C++ Boost" width="277" height="86" src="../../../../../../boost.png"></td></tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="is_unique_assoc_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="is_flat_assoc_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="container_gen.reference.is_multiple_assoc_selector"></a><a class="link" href="is_multiple_assoc_selector.html" title="is_multiple_associative_selector"><code class="computeroutput"><span class="identifier">is_multiple_associative_selector</span></code></a>
+</h3></div></div></div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="container_gen.reference.is_multiple_assoc_selector.synopsis"></a><a class="link" href="is_multiple_assoc_selector.html#container_gen.reference.is_multiple_assoc_selector.synopsis" title="Synopsis">Synopsis</a>
+</h4></div></div></div>
+<p>
+</p>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+
+ <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Selector</span><span class="special">&gt;</span>
+ <span class="keyword">struct</span> <span class="identifier">is_multiple_associative_selector</span>
+ <span class="special">{</span>
+ <span class="comment">// typedef ... type;</span>
+ <span class="special">};</span>
+<span class="special">}</span> <span class="comment">// namespace boost</span>
+</pre>
+<p>
+ </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="container_gen.reference.is_multiple_assoc_selector.description"></a><a class="link" href="is_multiple_assoc_selector.html#container_gen.reference.is_multiple_assoc_selector.description" title="Description">Description</a>
+</h4></div></div></div>
+<p>
+ Returns boost::mpl::true_ if the type to be returned
+ by <a class="link" href="container_gen.html" title="container_gen"><code class="computeroutput"><span class="identifier">container_gen</span></code></a> will model the
+ Multiple Associative Container concept,
+ boost::mpl::false_
+ otherwise.
+ </p>
+<p>
+ If both BOOST_TYPEOF_EMULATION and BOOST_MPL_CFG_NO_HAS_XXX
+ are defined, then you must specialize this metafunction to return boost::mpl::true_
+ for your custom selector if and only if the type to be returned by <a class="link" href="container_gen.html" title="container_gen"><code class="computeroutput"><span class="identifier">container_gen</span></code></a>
+ models the Multiple Associative Container concept.
+ </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="container_gen.reference.is_multiple_assoc_selector.definition"></a><a class="link" href="is_multiple_assoc_selector.html#container_gen.reference.is_multiple_assoc_selector.definition" title="Where defined">Where
+ defined</a>
+</h4></div></div></div>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span>boost/container_gen/is_multiple_assoc_selector.hpp<span class="special">&gt;</span>
+</pre>
+<p>
+ </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="container_gen.reference.is_multiple_assoc_selector.test"></a><a class="link" href="is_multiple_assoc_selector.html#container_gen.reference.is_multiple_assoc_selector.test" title="Test">Test</a>
+</h4></div></div></div>
+<p>
+</p>
+<pre class="programlisting"><span class="identifier">MPL_TEST_CASE</span><span class="special">()</span>
+<span class="special">{</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_multiple_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">vecS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_multiple_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">dequeS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_multiple_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">listS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_multiple_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">slistS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_multiple_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">setS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_multiple_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_multiple_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">multisetS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_multiple_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">multimapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_multiple_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_setS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_multiple_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_mapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_multiple_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_multisetS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_multiple_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_multimapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_multiple_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_vecS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_multiple_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_dequeS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_multiple_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_listS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_multiple_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_setS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_multiple_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_mapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_multiple_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_multisetS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_multiple_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_multimapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_multiple_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">stackS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_multiple_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">queueS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_multiple_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">std_heapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_multiple_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_hash_setS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_multiple_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_hash_mapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_multiple_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_hash_multisetS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_multiple_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_hash_multimapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_multiple_associative_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">vector_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_multiple_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">stable_vecS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_multiple_associative_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">deque_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_multiple_associative_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">list_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_multiple_associative_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">set_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_multiple_associative_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">map_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_multiple_associative_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">multiset_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_multiple_associative_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">multimap_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_multiple_associative_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_set_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_multiple_associative_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_map_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_multiple_associative_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_multiset_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_multiple_associative_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_multimap_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_multiple_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">flat_setS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_multiple_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">flat_mapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_multiple_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">flat_multisetS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_multiple_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">flat_multimapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_multiple_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">priority_queueS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_multiple_associative_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">d_ary_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">heap</span><span class="special">::</span><span class="identifier">arity</span><span class="special">&lt;</span><span class="number">4</span><span class="special">&gt;</span> <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_multiple_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">binomial_heapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_multiple_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">fibonacci_heapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_multiple_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">pairing_heapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_multiple_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">skew_heapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_multiple_associative_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">tr1_binary_predicate_selector</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_multiple_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">equal_to_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_multiple_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">less_than_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_multiple_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">greater_than_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_multiple_associative_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">binary_predicate_selector</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_multiple_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">equivalenceS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_multiple_associative_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">c_str_less_than_selector</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_multiple_associative_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">c_str_greater_than_selector</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_multiple_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">boost_hash_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_multiple_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">tr1_hash_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_multiple_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">std_allocator_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_multiple_associative_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">std_flat_allocator_selector</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+<span class="special">}</span>
+</pre>
+<p>
+ </p>
+</div>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright &#169; 1997-2013 Andrew Lumsdaine, Lie-Quan Lee,
+ Thomas Claveirole, Jeremy G. Siek, Cromwell D. Enage<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="is_unique_assoc_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="is_flat_assoc_selector.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Deleted: sandbox/container_gen/libs/container_gen/doc/html/container_gen/reference/is_muta_heap_selector.html
==============================================================================
--- sandbox/container_gen/libs/container_gen/doc/html/container_gen/reference/is_muta_heap_selector.html 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84956)
+++ /dev/null 00:00:00 1970 (deleted)
@@ -1,327 +0,0 @@
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
-<title>is_mutable_heap_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&#160;1.&#160;container_gen 0.8">
-<link rel="up" href="../reference.html" title="Reference">
-<link rel="prev" href="is_ord_iter_heap_selector.html" title="is_order_iteratable_heap_selector">
-<link rel="next" href="is_recursive_selector.html" title="is_recursive_selector">
-</head>
-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table cellpadding="2" width="100%"><tr><td valign="top"><img alt="C++ Boost" width="277" height="86" src="../../../../../../boost.png"></td></tr></table>
-<hr>
-<div class="spirit-nav">
-<a accesskey="p" href="is_ord_iter_heap_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="is_recursive_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="container_gen.reference.is_muta_heap_selector"></a><a class="link" href="is_muta_heap_selector.html" title="is_mutable_heap_selector"><code class="computeroutput"><span class="identifier">is_mutable_heap_selector</span></code></a>
-</h3></div></div></div>
-<div class="section">
-<div class="titlepage"><div><div><h4 class="title">
-<a name="container_gen.reference.is_muta_heap_selector.synopsis"></a><a class="link" href="is_muta_heap_selector.html#container_gen.reference.is_muta_heap_selector.synopsis" title="Synopsis">Synopsis</a>
-</h4></div></div></div>
-<p>
-</p>
-<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
-
- <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Selector</span><span class="special">&gt;</span>
- <span class="keyword">struct</span> <span class="identifier">is_mutable_heap_selector</span>
- <span class="special">{</span>
- <span class="comment">// typedef ... type;</span>
- <span class="special">};</span>
-<span class="special">}</span> <span class="comment">// namespace boost</span>
-</pre>
-<p>
- </p>
-</div>
-<div class="section">
-<div class="titlepage"><div><div><h4 class="title">
-<a name="container_gen.reference.is_muta_heap_selector.description"></a><a class="link" href="is_muta_heap_selector.html#container_gen.reference.is_muta_heap_selector.description" title="Description">Description</a>
-</h4></div></div></div>
-<p>
- Returns boost::mpl::true_ if the specified selector
- will cause <a class="link" href="container_gen.html" title="container_gen"><code class="computeroutput"><span class="identifier">container_gen</span></code></a> to return a mutable
- Boost.Heap
- model type, boost::mpl::false_ otherwise.
- </p>
-<p>
- If BOOST_MPL_CFG_NO_HAS_XXX is defined,
- then you must specialize this metafunction to return boost::mpl::true_ for your custom selector
- if and only if the type to be returned by <a class="link" href="container_gen.html" title="container_gen"><code class="computeroutput"><span class="identifier">container_gen</span></code></a> is a mutable Boost.Heap
- model type.
- </p>
-</div>
-<div class="section">
-<div class="titlepage"><div><div><h4 class="title">
-<a name="container_gen.reference.is_muta_heap_selector.definition"></a><a class="link" href="is_muta_heap_selector.html#container_gen.reference.is_muta_heap_selector.definition" title="Where defined">Where
- defined</a>
-</h4></div></div></div>
-<p>
-</p>
-<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span>boost/container_gen/is_mutable_heap_selector.hpp<span class="special">&gt;</span>
-</pre>
-<p>
- </p>
-</div>
-<div class="section">
-<div class="titlepage"><div><div><h4 class="title">
-<a name="container_gen.reference.is_muta_heap_selector.test"></a><a class="link" href="is_muta_heap_selector.html#container_gen.reference.is_muta_heap_selector.test" title="Test">Test</a>
-</h4></div></div></div>
-<p>
-</p>
-<pre class="programlisting"><span class="identifier">MPL_TEST_CASE</span><span class="special">()</span>
-<span class="special">{</span>
- <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
- <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mutable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">vecS</span><span class="special">&gt;</span>
- <span class="special">));</span>
- <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
- <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mutable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">dequeS</span><span class="special">&gt;</span>
- <span class="special">));</span>
- <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
- <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mutable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">listS</span><span class="special">&gt;</span>
- <span class="special">));</span>
- <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
- <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mutable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">slistS</span><span class="special">&gt;</span>
- <span class="special">));</span>
- <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
- <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mutable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">setS</span><span class="special">&gt;</span>
- <span class="special">));</span>
- <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
- <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mutable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mapS</span><span class="special">&gt;</span>
- <span class="special">));</span>
- <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
- <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mutable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">multisetS</span><span class="special">&gt;</span>
- <span class="special">));</span>
- <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
- <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mutable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">multimapS</span><span class="special">&gt;</span>
- <span class="special">));</span>
- <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
- <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mutable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_setS</span><span class="special">&gt;</span>
- <span class="special">));</span>
- <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
- <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mutable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_mapS</span><span class="special">&gt;</span>
- <span class="special">));</span>
- <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
- <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mutable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_multisetS</span><span class="special">&gt;</span>
- <span class="special">));</span>
- <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
- <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mutable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_multimapS</span><span class="special">&gt;</span>
- <span class="special">));</span>
- <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
- <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mutable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_vecS</span><span class="special">&gt;</span>
- <span class="special">));</span>
- <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
- <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mutable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_dequeS</span><span class="special">&gt;</span>
- <span class="special">));</span>
- <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
- <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mutable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_listS</span><span class="special">&gt;</span>
- <span class="special">));</span>
- <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
- <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mutable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_setS</span><span class="special">&gt;</span>
- <span class="special">));</span>
- <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
- <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mutable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_mapS</span><span class="special">&gt;</span>
- <span class="special">));</span>
- <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
- <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mutable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_multisetS</span><span class="special">&gt;</span>
- <span class="special">));</span>
- <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
- <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mutable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_multimapS</span><span class="special">&gt;</span>
- <span class="special">));</span>
- <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
- <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mutable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">stackS</span><span class="special">&gt;</span>
- <span class="special">));</span>
- <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
- <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mutable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">queueS</span><span class="special">&gt;</span>
- <span class="special">));</span>
- <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
- <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mutable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">std_heapS</span><span class="special">&gt;</span>
- <span class="special">));</span>
- <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
- <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mutable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_hash_setS</span><span class="special">&gt;</span>
- <span class="special">));</span>
- <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
- <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mutable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_hash_mapS</span><span class="special">&gt;</span>
- <span class="special">));</span>
- <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
- <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mutable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_hash_multisetS</span><span class="special">&gt;</span>
- <span class="special">));</span>
- <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
- <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mutable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_hash_multimapS</span><span class="special">&gt;</span>
- <span class="special">));</span>
- <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
- <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mutable_heap_selector</span><span class="special">&lt;</span>
- <span class="identifier">boost</span><span class="special">::</span><span class="identifier">vector_selector</span><span class="special">&lt;</span>
- <span class="identifier">true_</span>
- <span class="special">&gt;</span>
- <span class="special">&gt;</span>
- <span class="special">));</span>
- <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
- <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mutable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">stable_vecS</span><span class="special">&gt;</span>
- <span class="special">));</span>
- <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
- <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mutable_heap_selector</span><span class="special">&lt;</span>
- <span class="identifier">boost</span><span class="special">::</span><span class="identifier">deque_selector</span><span class="special">&lt;</span>
- <span class="identifier">true_</span>
- <span class="special">&gt;</span>
- <span class="special">&gt;</span>
- <span class="special">));</span>
- <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
- <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mutable_heap_selector</span><span class="special">&lt;</span>
- <span class="identifier">boost</span><span class="special">::</span><span class="identifier">list_selector</span><span class="special">&lt;</span>
- <span class="identifier">true_</span>
- <span class="special">&gt;</span>
- <span class="special">&gt;</span>
- <span class="special">));</span>
- <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
- <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mutable_heap_selector</span><span class="special">&lt;</span>
- <span class="identifier">boost</span><span class="special">::</span><span class="identifier">set_selector</span><span class="special">&lt;</span>
- <span class="identifier">true_</span>
- <span class="special">&gt;</span>
- <span class="special">&gt;</span>
- <span class="special">));</span>
- <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
- <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mutable_heap_selector</span><span class="special">&lt;</span>
- <span class="identifier">boost</span><span class="special">::</span><span class="identifier">map_selector</span><span class="special">&lt;</span>
- <span class="identifier">true_</span>
- <span class="special">&gt;</span>
- <span class="special">&gt;</span>
- <span class="special">));</span>
- <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
- <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mutable_heap_selector</span><span class="special">&lt;</span>
- <span class="identifier">boost</span><span class="special">::</span><span class="identifier">multiset_selector</span><span class="special">&lt;</span>
- <span class="identifier">true_</span>
- <span class="special">&gt;</span>
- <span class="special">&gt;</span>
- <span class="special">));</span>
- <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
- <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mutable_heap_selector</span><span class="special">&lt;</span>
- <span class="identifier">boost</span><span class="special">::</span><span class="identifier">multimap_selector</span><span class="special">&lt;</span>
- <span class="identifier">true_</span>
- <span class="special">&gt;</span>
- <span class="special">&gt;</span>
- <span class="special">));</span>
- <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
- <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mutable_heap_selector</span><span class="special">&lt;</span>
- <span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_set_selector</span><span class="special">&lt;</span>
- <span class="identifier">true_</span>
- <span class="special">&gt;</span>
- <span class="special">&gt;</span>
- <span class="special">));</span>
- <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
- <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mutable_heap_selector</span><span class="special">&lt;</span>
- <span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_map_selector</span><span class="special">&lt;</span>
- <span class="identifier">true_</span>
- <span class="special">&gt;</span>
- <span class="special">&gt;</span>
- <span class="special">));</span>
- <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
- <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mutable_heap_selector</span><span class="special">&lt;</span>
- <span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_multiset_selector</span><span class="special">&lt;</span>
- <span class="identifier">true_</span>
- <span class="special">&gt;</span>
- <span class="special">&gt;</span>
- <span class="special">));</span>
- <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
- <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mutable_heap_selector</span><span class="special">&lt;</span>
- <span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_multimap_selector</span><span class="special">&lt;</span>
- <span class="identifier">true_</span>
- <span class="special">&gt;</span>
- <span class="special">&gt;</span>
- <span class="special">));</span>
- <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
- <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mutable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">flat_setS</span><span class="special">&gt;</span>
- <span class="special">));</span>
- <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
- <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mutable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">flat_mapS</span><span class="special">&gt;</span>
- <span class="special">));</span>
- <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
- <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mutable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">flat_multisetS</span><span class="special">&gt;</span>
- <span class="special">));</span>
- <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
- <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mutable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">flat_multimapS</span><span class="special">&gt;</span>
- <span class="special">));</span>
- <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
- <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mutable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">priority_queueS</span><span class="special">&gt;</span>
- <span class="special">));</span>
- <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
- <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mutable_heap_selector</span><span class="special">&lt;</span>
- <span class="identifier">boost</span><span class="special">::</span><span class="identifier">d_ary_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">heap</span><span class="special">::</span><span class="identifier">arity</span><span class="special">&lt;</span><span class="number">4</span><span class="special">&gt;</span> <span class="special">&gt;</span>
- <span class="special">&gt;</span>
- <span class="special">));</span>
- <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
- <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mutable_heap_selector</span><span class="special">&lt;</span>
- <span class="identifier">boost</span><span class="special">::</span><span class="identifier">d_ary_heap_selector</span><span class="special">&lt;</span>
- <span class="identifier">boost</span><span class="special">::</span><span class="identifier">heap</span><span class="special">::</span><span class="identifier">mutable_</span><span class="special">&lt;</span><span class="keyword">true</span><span class="special">&gt;</span>
- <span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">heap</span><span class="special">::</span><span class="identifier">arity</span><span class="special">&lt;</span><span class="number">4</span><span class="special">&gt;</span>
- <span class="special">&gt;</span>
- <span class="special">&gt;</span>
- <span class="special">));</span>
- <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
- <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mutable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">binomial_heapS</span><span class="special">&gt;</span>
- <span class="special">));</span>
- <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
- <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mutable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">fibonacci_heapS</span><span class="special">&gt;</span>
- <span class="special">));</span>
- <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
- <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mutable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">pairing_heapS</span><span class="special">&gt;</span>
- <span class="special">));</span>
- <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
- <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mutable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">skew_heapS</span><span class="special">&gt;</span>
- <span class="special">));</span>
- <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
- <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mutable_heap_selector</span><span class="special">&lt;</span>
- <span class="identifier">boost</span><span class="special">::</span><span class="identifier">skew_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">heap</span><span class="special">::</span><span class="identifier">mutable_</span><span class="special">&lt;</span><span class="keyword">true</span><span class="special">&gt;</span> <span class="special">&gt;</span>
- <span class="special">&gt;</span>
- <span class="special">));</span>
- <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
- <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mutable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">equal_to_selector</span><span class="special">&gt;</span>
- <span class="special">));</span>
- <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
- <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mutable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">less_than_selector</span><span class="special">&gt;</span>
- <span class="special">));</span>
- <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
- <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mutable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">greater_than_selector</span><span class="special">&gt;</span>
- <span class="special">));</span>
- <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
- <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mutable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">c_str_less_than_selector</span><span class="special">&gt;</span>
- <span class="special">));</span>
- <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
- <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mutable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">c_str_greater_than_selector</span><span class="special">&gt;</span>
- <span class="special">));</span>
- <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
- <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mutable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">boost_hash_selector</span><span class="special">&gt;</span>
- <span class="special">));</span>
- <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
- <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mutable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">tr1_hash_selector</span><span class="special">&gt;</span>
- <span class="special">));</span>
- <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
- <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mutable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">std_allocator_selector</span><span class="special">&gt;</span>
- <span class="special">));</span>
- <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
- <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mutable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">std_flat_allocator_selector</span><span class="special">&gt;</span>
- <span class="special">));</span>
-<span class="special">}</span>
-</pre>
-<p>
- </p>
-</div>
-</div>
-<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
-<td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright &#169; 1997-2013 Andrew Lumsdaine, Lie-Quan Lee,
- Thomas Claveirole, Jeremy G. Siek, Cromwell D. Enage<p>
- Distributed under the Boost Software License, Version 1.0. (See accompanying
- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- </p>
-</div></td>
-</tr></table>
-<hr>
-<div class="spirit-nav">
-<a accesskey="p" href="is_ord_iter_heap_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="is_recursive_selector.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
-</div>
-</body>
-</html>

Added: sandbox/container_gen/libs/container_gen/doc/html/container_gen/reference/is_mutable_heap_selector.html
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ sandbox/container_gen/libs/container_gen/doc/html/container_gen/reference/is_mutable_heap_selector.html 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84957)
@@ -0,0 +1,433 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>is_mutable_heap_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&#160;1.&#160;container_gen 0.9">
+<link rel="up" href="../reference.html" title="Reference">
+<link rel="prev" href="is_ord_iter_heap_selector.html" title="is_order_iteratable_heap_selector">
+<link rel="next" href="is_mergeable_heap_selector.html" title="is_mergeable_heap_selector">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr><td valign="top"><img alt="C++ Boost" width="277" height="86" src="../../../../../../boost.png"></td></tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="is_ord_iter_heap_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="is_mergeable_heap_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="container_gen.reference.is_mutable_heap_selector"></a><a class="link" href="is_mutable_heap_selector.html" title="is_mutable_heap_selector"><code class="computeroutput"><span class="identifier">is_mutable_heap_selector</span></code></a>
+</h3></div></div></div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="container_gen.reference.is_mutable_heap_selector.synopsis"></a><a class="link" href="is_mutable_heap_selector.html#container_gen.reference.is_mutable_heap_selector.synopsis" title="Synopsis">Synopsis</a>
+</h4></div></div></div>
+<p>
+</p>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+
+ <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Selector</span><span class="special">&gt;</span>
+ <span class="keyword">struct</span> <span class="identifier">is_mutable_heap_selector</span>
+ <span class="special">{</span>
+ <span class="comment">// typedef ... type;</span>
+ <span class="special">};</span>
+<span class="special">}</span> <span class="comment">// namespace boost</span>
+</pre>
+<p>
+ </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="container_gen.reference.is_mutable_heap_selector.description"></a><a class="link" href="is_mutable_heap_selector.html#container_gen.reference.is_mutable_heap_selector.description" title="Description">Description</a>
+</h4></div></div></div>
+<p>
+ A Boost.Heap
+ model type is <span class="bold"><strong>mutable</strong></span> if and only if:
+ </p>
+<pre class="programlisting"><span class="special">*</span> <span class="identifier">It</span> <span class="identifier">defines</span> <span class="identifier">a</span> <span class="identifier">nested</span> <span class="error">`</span><span class="identifier">handle_type</span><span class="error">`</span> <span class="identifier">type</span><span class="special">.</span>
+<span class="special">*</span> <span class="identifier">Its</span> <span class="error">`</span><span class="identifier">push</span><span class="special">()</span><span class="error">`</span> <span class="identifier">member</span> <span class="identifier">function</span> <span class="identifier">returns</span> <span class="identifier">an</span> <span class="identifier">object</span> <span class="identifier">of</span> <span class="identifier">type</span> <span class="error">`</span><span class="identifier">handle_type</span><span class="error">`</span><span class="special">.</span>
+<span class="special">*</span> <span class="identifier">It</span> <span class="identifier">defines</span> <span class="identifier">two</span> <span class="error">`</span><span class="identifier">update</span><span class="special">()</span><span class="error">`</span> <span class="identifier">member</span> <span class="identifier">function</span> <span class="identifier">overloads</span><span class="special">--</span><span class="identifier">one</span> <span class="identifier">taking</span> <span class="identifier">in</span>
+ <span class="identifier">only</span> <span class="identifier">a</span> <span class="identifier">reference</span><span class="special">-</span><span class="identifier">to</span><span class="special">-</span><span class="error">`</span><span class="keyword">const</span><span class="error">`</span> <span class="error">`</span><span class="identifier">handle_type</span><span class="error">`</span><span class="special">,</span> <span class="identifier">the</span> <span class="identifier">other</span> <span class="identifier">also</span> <span class="identifier">taking</span> <span class="identifier">in</span>
+ <span class="identifier">a</span> <span class="identifier">reference</span><span class="special">-</span><span class="identifier">to</span><span class="special">-</span><span class="error">`</span><span class="keyword">const</span><span class="error">`</span> <span class="error">`</span><span class="identifier">value_type</span><span class="error">`</span><span class="special">--</span><span class="identifier">both</span> <span class="identifier">of</span> <span class="identifier">which</span> <span class="identifier">update</span> <span class="identifier">the</span> <span class="identifier">invoking</span>
+ <span class="identifier">heap</span> <span class="identifier">to</span> <span class="identifier">reflect</span> <span class="identifier">the</span> <span class="identifier">change</span> <span class="identifier">in</span> <span class="identifier">priority</span><span class="special">.</span>
+<span class="special">*</span> <span class="identifier">It</span> <span class="identifier">defines</span> <span class="identifier">two</span> <span class="error">`</span><span class="identifier">increase</span><span class="special">()</span><span class="error">`</span> <span class="identifier">member</span> <span class="identifier">function</span> <span class="identifier">overloads</span><span class="special">--</span><span class="identifier">one</span> <span class="identifier">taking</span> <span class="identifier">in</span>
+ <span class="identifier">only</span> <span class="identifier">a</span> <span class="identifier">reference</span><span class="special">-</span><span class="identifier">to</span><span class="special">-</span><span class="error">`</span><span class="keyword">const</span><span class="error">`</span> <span class="error">`</span><span class="identifier">handle_type</span><span class="error">`</span><span class="special">,</span> <span class="identifier">the</span> <span class="identifier">other</span> <span class="identifier">also</span> <span class="identifier">taking</span> <span class="identifier">in</span>
+ <span class="identifier">a</span> <span class="identifier">reference</span><span class="special">-</span><span class="identifier">to</span><span class="special">-</span><span class="error">`</span><span class="keyword">const</span><span class="error">`</span> <span class="error">`</span><span class="identifier">value_type</span><span class="error">`</span><span class="special">--</span><span class="identifier">both</span> <span class="identifier">of</span> <span class="identifier">which</span> <span class="identifier">update</span> <span class="identifier">the</span> <span class="identifier">invoking</span>
+ <span class="identifier">heap</span> <span class="identifier">to</span> <span class="identifier">reflect</span> <span class="identifier">the</span> <span class="identifier">change</span> <span class="identifier">in</span> <span class="identifier">priority</span><span class="special">.</span>
+<span class="special">*</span> <span class="identifier">It</span> <span class="identifier">defines</span> <span class="identifier">two</span> <span class="error">`</span><span class="identifier">decrease</span><span class="special">()</span><span class="error">`</span> <span class="identifier">member</span> <span class="identifier">function</span> <span class="identifier">overloads</span><span class="special">--</span><span class="identifier">one</span> <span class="identifier">taking</span> <span class="identifier">in</span>
+ <span class="identifier">only</span> <span class="identifier">a</span> <span class="identifier">reference</span><span class="special">-</span><span class="identifier">to</span><span class="special">-</span><span class="error">`</span><span class="keyword">const</span><span class="error">`</span> <span class="error">`</span><span class="identifier">handle_type</span><span class="error">`</span><span class="special">,</span> <span class="identifier">the</span> <span class="identifier">other</span> <span class="identifier">also</span> <span class="identifier">taking</span> <span class="identifier">in</span>
+ <span class="identifier">a</span> <span class="identifier">reference</span><span class="special">-</span><span class="identifier">to</span><span class="special">-</span><span class="error">`</span><span class="keyword">const</span><span class="error">`</span> <span class="error">`</span><span class="identifier">value_type</span><span class="error">`</span><span class="special">--</span><span class="identifier">both</span> <span class="identifier">of</span> <span class="identifier">which</span> <span class="identifier">update</span> <span class="identifier">the</span> <span class="identifier">invoking</span>
+ <span class="identifier">heap</span> <span class="identifier">to</span> <span class="identifier">reflect</span> <span class="identifier">the</span> <span class="identifier">change</span> <span class="identifier">in</span> <span class="identifier">priority</span><span class="special">.</span>
+</pre>
+<p>
+ This metafunction returns boost::mpl::true_ if the specified selector
+ will cause <a class="link" href="container_gen.html" title="container_gen"><code class="computeroutput"><span class="identifier">container_gen</span></code></a> to return a mutable
+ Boost.Heap
+ model type, boost::mpl::false_ otherwise.
+ </p>
+<p>
+ If BOOST_MPL_CFG_NO_HAS_XXX is defined,
+ then you must specialize this metafunction to return boost::mpl::true_ for your custom selector
+ if and only if the type to be returned by <a class="link" href="container_gen.html" title="container_gen"><code class="computeroutput"><span class="identifier">container_gen</span></code></a> is a mutable Boost.Heap
+ model type.
+ </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="container_gen.reference.is_mutable_heap_selector.definition"></a><a class="link" href="is_mutable_heap_selector.html#container_gen.reference.is_mutable_heap_selector.definition" title="Where defined">Where
+ defined</a>
+</h4></div></div></div>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span>boost/container_gen/is_mutable_heap_selector.hpp<span class="special">&gt;</span>
+</pre>
+<p>
+ </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="container_gen.reference.is_mutable_heap_selector.example"></a><a class="link" href="is_mutable_heap_selector.html#container_gen.reference.is_mutable_heap_selector.example" title="Example">Example</a>
+</h4></div></div></div>
+<p>
+ Boost.Heap
+ model types that are mutable can be used by sorting algorithms that need
+ to handle changing priority values, e.g. weighted pathfinding.
+ </p>
+<p>
+</p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Selector</span><span class="special">&gt;</span>
+<span class="keyword">void</span> <span class="identifier">test_emplace_heap</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="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">container_gen</span><span class="special">&lt;</span><span class="identifier">Selector</span><span class="special">,</span><span class="keyword">int</span><span class="special">&gt;::</span><span class="identifier">type</span> <span class="identifier">Heap</span><span class="special">;</span>
+
+ <span class="identifier">Heap</span> <span class="identifier">heap</span><span class="special">;</span>
+ <span class="keyword">typename</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">emplace_function_gen</span><span class="special">&lt;</span><span class="identifier">Selector</span><span class="special">&gt;::</span><span class="identifier">type</span> <span class="identifier">pusher</span><span class="special">;</span>
+ <span class="keyword">typename</span> <span class="identifier">Heap</span><span class="special">::</span><span class="identifier">handle_type</span> <span class="identifier">handle_1</span> <span class="special">=</span> <span class="identifier">pusher</span><span class="special">(</span><span class="identifier">heap</span><span class="special">,</span> <span class="number">3</span><span class="special">);</span>
+ <span class="keyword">typename</span> <span class="identifier">Heap</span><span class="special">::</span><span class="identifier">handle_type</span> <span class="identifier">handle_2</span> <span class="special">=</span> <span class="identifier">pusher</span><span class="special">(</span><span class="identifier">heap</span><span class="special">,</span> <span class="number">5</span><span class="special">);</span>
+ <span class="keyword">typename</span> <span class="identifier">Heap</span><span class="special">::</span><span class="identifier">handle_type</span> <span class="identifier">handle_3</span> <span class="special">=</span> <span class="identifier">pusher</span><span class="special">(</span><span class="identifier">heap</span><span class="special">,</span> <span class="number">1</span><span class="special">);</span>
+
+ <span class="identifier">heap</span><span class="special">.</span><span class="identifier">update</span><span class="special">(</span><span class="identifier">handle_1</span><span class="special">,</span> <span class="number">4</span><span class="special">);</span>
+ <span class="identifier">heap</span><span class="special">.</span><span class="identifier">increase</span><span class="special">(</span><span class="identifier">handle_2</span><span class="special">,</span> <span class="number">7</span><span class="special">);</span>
+ <span class="identifier">heap</span><span class="special">.</span><span class="identifier">decrease</span><span class="special">(</span><span class="identifier">handle_3</span><span class="special">,</span> <span class="number">0</span><span class="special">);</span>
+ <span class="identifier">BOOST_CHECK</span><span class="special">(</span><span class="number">7</span> <span class="special">==</span> <span class="identifier">heap</span><span class="special">.</span><span class="identifier">top</span><span class="special">());</span>
+ <span class="identifier">heap</span><span class="special">.</span><span class="identifier">pop</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">heap</span><span class="special">.</span><span class="identifier">top</span><span class="special">());</span>
+ <span class="identifier">heap</span><span class="special">.</span><span class="identifier">pop</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">heap</span><span class="special">.</span><span class="identifier">top</span><span class="special">());</span>
+ <span class="identifier">heap</span><span class="special">.</span><span class="identifier">pop</span><span class="special">();</span>
+ <span class="identifier">BOOST_CHECK</span><span class="special">(</span><span class="identifier">heap</span><span class="special">.</span><span class="identifier">empty</span><span class="special">());</span>
+<span class="special">}</span>
+</pre>
+<p>
+ </p>
+<p>
+ On the other hand, Boost.Heap
+ model types that are not mutable are more lightweight for simpler sorting
+ algorithms.
+ </p>
+<p>
+</p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Selector</span><span class="special">&gt;</span>
+<span class="keyword">void</span> <span class="identifier">test_emplace_heap</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">typename</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">container_gen</span><span class="special">&lt;</span><span class="identifier">Selector</span><span class="special">,</span><span class="keyword">int</span><span class="special">&gt;::</span><span class="identifier">type</span> <span class="identifier">heap</span><span class="special">;</span>
+ <span class="keyword">typename</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">emplace_function_gen</span><span class="special">&lt;</span><span class="identifier">Selector</span><span class="special">&gt;::</span><span class="identifier">type</span> <span class="identifier">pusher</span><span class="special">;</span>
+
+ <span class="identifier">pusher</span><span class="special">[</span><span class="identifier">heap</span><span class="special">](</span><span class="number">2</span><span class="special">)(</span><span class="number">4</span><span class="special">)(</span><span class="number">0</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">heap</span><span class="special">.</span><span class="identifier">top</span><span class="special">());</span>
+ <span class="identifier">heap</span><span class="special">.</span><span class="identifier">pop</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="identifier">heap</span><span class="special">.</span><span class="identifier">top</span><span class="special">());</span>
+ <span class="identifier">heap</span><span class="special">.</span><span class="identifier">pop</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">heap</span><span class="special">.</span><span class="identifier">top</span><span class="special">());</span>
+ <span class="identifier">heap</span><span class="special">.</span><span class="identifier">pop</span><span class="special">();</span>
+ <span class="identifier">BOOST_CHECK</span><span class="special">(</span><span class="identifier">heap</span><span class="special">.</span><span class="identifier">empty</span><span class="special">());</span>
+<span class="special">}</span>
+</pre>
+<p>
+ </p>
+<p>
+ This metafunction differentiates between the two categories.
+ </p>
+<p>
+</p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Selector</span><span class="special">&gt;</span>
+<span class="keyword">void</span> <span class="identifier">test_emplace_heap</span><span class="special">()</span>
+<span class="special">{</span>
+ <span class="identifier">test_emplace_heap</span><span class="special">&lt;</span><span class="identifier">Selector</span><span class="special">&gt;(</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mutable_heap_selector</span><span class="special">&lt;</span><span class="identifier">Selector</span><span class="special">&gt;()</span>
+ <span class="special">);</span>
+ <span class="comment">// ...</span>
+<span class="special">}</span>
+</pre>
+<p>
+ </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="container_gen.reference.is_mutable_heap_selector.test"></a><a class="link" href="is_mutable_heap_selector.html#container_gen.reference.is_mutable_heap_selector.test" title="Test">Test</a>
+</h4></div></div></div>
+<p>
+</p>
+<pre class="programlisting"><span class="identifier">MPL_TEST_CASE</span><span class="special">()</span>
+<span class="special">{</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mutable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">vecS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mutable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">dequeS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mutable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">listS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mutable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">slistS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mutable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">setS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mutable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mutable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">multisetS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mutable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">multimapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mutable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_setS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mutable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_mapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mutable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_multisetS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mutable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_multimapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mutable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_vecS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mutable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_dequeS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mutable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_listS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mutable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_setS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mutable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_mapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mutable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_multisetS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mutable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_multimapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mutable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">stackS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mutable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">queueS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mutable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">std_heapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mutable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_hash_setS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mutable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_hash_mapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mutable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_hash_multisetS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mutable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_hash_multimapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mutable_heap_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">vector_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mutable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">stable_vecS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mutable_heap_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">deque_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mutable_heap_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">list_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mutable_heap_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">set_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mutable_heap_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">map_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mutable_heap_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">multiset_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mutable_heap_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">multimap_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mutable_heap_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_set_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mutable_heap_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_map_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mutable_heap_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_multiset_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mutable_heap_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_multimap_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mutable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">flat_setS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mutable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">flat_mapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mutable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">flat_multisetS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mutable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">flat_multimapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mutable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">priority_queueS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mutable_heap_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">d_ary_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">heap</span><span class="special">::</span><span class="identifier">arity</span><span class="special">&lt;</span><span class="number">4</span><span class="special">&gt;</span> <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mutable_heap_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">d_ary_heap_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">heap</span><span class="special">::</span><span class="identifier">mutable_</span><span class="special">&lt;</span><span class="keyword">true</span><span class="special">&gt;</span>
+ <span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">heap</span><span class="special">::</span><span class="identifier">arity</span><span class="special">&lt;</span><span class="number">4</span><span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mutable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">binomial_heapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mutable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">fibonacci_heapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mutable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">pairing_heapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mutable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">skew_heapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mutable_heap_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">skew_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">heap</span><span class="special">::</span><span class="identifier">mutable_</span><span class="special">&lt;</span><span class="keyword">true</span><span class="special">&gt;</span> <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mutable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">tr1_binary_predicate_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mutable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">equal_to_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mutable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">less_than_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mutable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">greater_than_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mutable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">binary_predicate_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mutable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">equivalenceS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mutable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">c_str_less_than_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mutable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">c_str_greater_than_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mutable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">boost_hash_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mutable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">tr1_hash_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mutable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">std_allocator_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_mutable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">std_flat_allocator_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+<span class="special">}</span>
+</pre>
+<p>
+ </p>
+</div>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright &#169; 1997-2013 Andrew Lumsdaine, Lie-Quan Lee,
+ Thomas Claveirole, Jeremy G. Siek, Cromwell D. Enage<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="is_ord_iter_heap_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="is_mergeable_heap_selector.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/container_gen/libs/container_gen/doc/html/container_gen/reference/is_ord_iter_heap_selector.html
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ sandbox/container_gen/libs/container_gen/doc/html/container_gen/reference/is_ord_iter_heap_selector.html 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84957)
@@ -0,0 +1,332 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>is_order_iteratable_heap_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&#160;1.&#160;container_gen 0.9">
+<link rel="up" href="../reference.html" title="Reference">
+<link rel="prev" href="is_iter_heap_selector.html" title="is_iteratable_heap_selector">
+<link rel="next" href="is_mutable_heap_selector.html" title="is_mutable_heap_selector">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr><td valign="top"><img alt="C++ Boost" width="277" height="86" src="../../../../../../boost.png"></td></tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="is_iter_heap_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="is_mutable_heap_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="container_gen.reference.is_ord_iter_heap_selector"></a><a class="link" href="is_ord_iter_heap_selector.html" title="is_order_iteratable_heap_selector"><code class="computeroutput"><span class="identifier">is_order_iteratable_heap_selector</span></code></a>
+</h3></div></div></div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="container_gen.reference.is_ord_iter_heap_selector.synopsis"></a><a class="link" href="is_ord_iter_heap_selector.html#container_gen.reference.is_ord_iter_heap_selector.synopsis" title="Synopsis">Synopsis</a>
+</h4></div></div></div>
+<p>
+</p>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+
+ <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Selector</span><span class="special">&gt;</span>
+ <span class="keyword">struct</span> <span class="identifier">is_order_iteratable_heap_selector</span>
+ <span class="special">{</span>
+ <span class="comment">// typedef ... type;</span>
+ <span class="special">};</span>
+<span class="special">}</span> <span class="comment">// namespace boost</span>
+</pre>
+<p>
+ </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="container_gen.reference.is_ord_iter_heap_selector.description"></a><a class="link" href="is_ord_iter_heap_selector.html#container_gen.reference.is_ord_iter_heap_selector.description" title="Description">Description</a>
+</h4></div></div></div>
+<p>
+ Returns boost::mpl::true_ if the type to be returned
+ by <a class="link" href="container_gen.html" title="container_gen"><code class="computeroutput"><span class="identifier">container_gen</span></code></a> is a Boost.Heap model type that supports ordered
+ iterators, boost::mpl::false_ otherwise.
+ </p>
+<p>
+ If BOOST_MPL_CFG_NO_HAS_XXX is defined,
+ then you must specialize this metafunction to return boost::mpl::true_ for your custom selector
+ if and only if the type to be returned by <a class="link" href="container_gen.html" title="container_gen"><code class="computeroutput"><span class="identifier">container_gen</span></code></a> is a Boost.Heap model type that supports ordered
+ iterators.
+ </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="container_gen.reference.is_ord_iter_heap_selector.definition"></a><a class="link" href="is_ord_iter_heap_selector.html#container_gen.reference.is_ord_iter_heap_selector.definition" title="Where defined">Where
+ defined</a>
+</h4></div></div></div>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span>boost/container_gen/is_order_iter_heap_selector.hpp<span class="special">&gt;</span>
+</pre>
+<p>
+ </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="container_gen.reference.is_ord_iter_heap_selector.test"></a><a class="link" href="is_ord_iter_heap_selector.html#container_gen.reference.is_ord_iter_heap_selector.test" title="Test">Test</a>
+</h4></div></div></div>
+<p>
+</p>
+<pre class="programlisting"><span class="identifier">MPL_TEST_CASE</span><span class="special">()</span>
+<span class="special">{</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_order_iteratable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">vecS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_order_iteratable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">dequeS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_order_iteratable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">listS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_order_iteratable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">slistS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_order_iteratable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">setS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_order_iteratable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_order_iteratable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">multisetS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_order_iteratable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">multimapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_order_iteratable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_setS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_order_iteratable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_mapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_order_iteratable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_multisetS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_order_iteratable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_multimapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_order_iteratable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_vecS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_order_iteratable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_dequeS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_order_iteratable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_listS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_order_iteratable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_setS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_order_iteratable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_mapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_order_iteratable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_multisetS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_order_iteratable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_multimapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_order_iteratable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">stackS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_order_iteratable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">queueS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_order_iteratable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">std_heapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_order_iteratable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_hash_setS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_order_iteratable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_hash_mapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_order_iteratable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_hash_multisetS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_order_iteratable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_hash_multimapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_order_iteratable_heap_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">vector_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_order_iteratable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">stable_vecS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_order_iteratable_heap_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">deque_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_order_iteratable_heap_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">list_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_order_iteratable_heap_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">set_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_order_iteratable_heap_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">map_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_order_iteratable_heap_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">multiset_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_order_iteratable_heap_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">multimap_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_order_iteratable_heap_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_set_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_order_iteratable_heap_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_map_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_order_iteratable_heap_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_multiset_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_order_iteratable_heap_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_multimap_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_order_iteratable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">flat_setS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_order_iteratable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">flat_mapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_order_iteratable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">flat_multisetS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_order_iteratable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">flat_multimapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_order_iteratable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">priority_queueS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_order_iteratable_heap_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">d_ary_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">heap</span><span class="special">::</span><span class="identifier">arity</span><span class="special">&lt;</span><span class="number">4</span><span class="special">&gt;</span> <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_order_iteratable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">binomial_heapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_order_iteratable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">fibonacci_heapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_order_iteratable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">pairing_heapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_order_iteratable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">skew_heapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_order_iteratable_heap_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">tr1_binary_predicate_selector</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_order_iteratable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">equal_to_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_order_iteratable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">less_than_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_order_iteratable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">greater_than_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_order_iteratable_heap_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">binary_predicate_selector</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_order_iteratable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">equivalenceS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_order_iteratable_heap_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">c_str_less_than_selector</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_order_iteratable_heap_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">c_str_greater_than_selector</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_order_iteratable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">boost_hash_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_order_iteratable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">tr1_hash_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_order_iteratable_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">std_allocator_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_order_iteratable_heap_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">std_flat_allocator_selector</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+<span class="special">}</span>
+</pre>
+<p>
+ </p>
+</div>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright &#169; 1997-2013 Andrew Lumsdaine, Lie-Quan Lee,
+ Thomas Claveirole, Jeremy G. Siek, Cromwell D. Enage<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="is_iter_heap_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="is_mutable_heap_selector.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/container_gen/libs/container_gen/doc/html/container_gen/reference/is_ptr_selector.html
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ sandbox/container_gen/libs/container_gen/doc/html/container_gen/reference/is_ptr_selector.html 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84957)
@@ -0,0 +1,272 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>is_ptr_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&#160;1.&#160;container_gen 0.9">
+<link rel="up" href="../reference.html" title="Reference">
+<link rel="prev" href="is_tr1_selector.html" title="is_tr1_selector">
+<link rel="next" href="is_queue_selector.html" title="is_queue_selector">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr><td valign="top"><img alt="C++ Boost" width="277" height="86" src="../../../../../../boost.png"></td></tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="is_tr1_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="is_queue_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="container_gen.reference.is_ptr_selector"></a><a class="link" href="is_ptr_selector.html" title="is_ptr_selector"><code class="computeroutput"><span class="identifier">is_ptr_selector</span></code></a>
+</h3></div></div></div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="container_gen.reference.is_ptr_selector.synopsis"></a><a class="link" href="is_ptr_selector.html#container_gen.reference.is_ptr_selector.synopsis" title="Synopsis">Synopsis</a>
+</h4></div></div></div>
+<p>
+</p>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+
+ <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Selector</span><span class="special">&gt;</span>
+ <span class="keyword">struct</span> <span class="identifier">is_ptr_selector</span>
+ <span class="special">{</span>
+ <span class="comment">// typedef ... type;</span>
+ <span class="special">};</span>
+<span class="special">}</span> <span class="comment">// namespace boost</span>
+</pre>
+<p>
+ </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="container_gen.reference.is_ptr_selector.description"></a><a class="link" href="is_ptr_selector.html#container_gen.reference.is_ptr_selector.description" title="Description">Description</a>
+</h4></div></div></div>
+<p>
+ Returns boost::mpl::true_ if the specified selector
+ will cause <a class="link" href="container_gen.html" title="container_gen"><code class="computeroutput"><span class="identifier">container_gen</span></code></a> to return a Boost.PointerContainer
+ type, boost::mpl::false_ otherwise.
+ </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="container_gen.reference.is_ptr_selector.definition"></a><a class="link" href="is_ptr_selector.html#container_gen.reference.is_ptr_selector.definition" title="Where defined">Where
+ defined</a>
+</h4></div></div></div>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span>boost/container_gen/is_ptr_selector.hpp<span class="special">&gt;</span>
+</pre>
+<p>
+ </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="container_gen.reference.is_ptr_selector.test"></a><a class="link" href="is_ptr_selector.html#container_gen.reference.is_ptr_selector.test" title="Test">Test</a>
+</h4></div></div></div>
+<p>
+</p>
+<pre class="programlisting"><span class="identifier">MPL_TEST_CASE</span><span class="special">()</span>
+<span class="special">{</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_ptr_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">vecS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_ptr_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">dequeS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_ptr_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">listS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_ptr_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">slistS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_ptr_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">setS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_ptr_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mapS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_ptr_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">multisetS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_ptr_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">multimapS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_ptr_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_setS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_ptr_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_mapS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_ptr_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_multisetS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_ptr_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_multimapS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_ptr_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_vecS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_ptr_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_dequeS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_ptr_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_listS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_ptr_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_setS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_ptr_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_mapS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_ptr_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_multisetS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_ptr_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_multimapS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_ptr_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">stackS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_ptr_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">queueS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_ptr_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">std_heapS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_ptr_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_hash_setS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_ptr_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_hash_mapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_ptr_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_hash_multisetS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_ptr_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_hash_multimapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_ptr_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">vector_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_ptr_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">stable_vecS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_ptr_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">deque_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_ptr_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">list_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_ptr_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">set_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_ptr_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">map_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_ptr_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">multiset_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_ptr_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">multimap_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_ptr_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_set_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_ptr_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_map_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_ptr_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_multiset_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_ptr_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_multimap_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_ptr_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">flat_setS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_ptr_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">flat_mapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_ptr_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">flat_multisetS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_ptr_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">flat_multimapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_ptr_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">priority_queueS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_ptr_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">d_ary_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">heap</span><span class="special">::</span><span class="identifier">arity</span><span class="special">&lt;</span><span class="number">4</span><span class="special">&gt;</span> <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_ptr_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">binomial_heapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_ptr_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">fibonacci_heapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_ptr_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">pairing_heapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_ptr_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">skew_heapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_ptr_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">tr1_binary_predicate_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_ptr_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">equal_to_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_ptr_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">less_than_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_ptr_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">greater_than_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_ptr_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">binary_predicate_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_ptr_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">equivalenceS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_ptr_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">c_str_less_than_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_ptr_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">c_str_greater_than_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_ptr_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">boost_hash_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_ptr_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">tr1_hash_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_ptr_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">std_allocator_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_ptr_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">std_flat_allocator_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+<span class="special">}</span>
+</pre>
+<p>
+ </p>
+</div>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright &#169; 1997-2013 Andrew Lumsdaine, Lie-Quan Lee,
+ Thomas Claveirole, Jeremy G. Siek, Cromwell D. Enage<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="is_tr1_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="is_queue_selector.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/container_gen/libs/container_gen/doc/html/container_gen/reference/is_queue_selector.html
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ sandbox/container_gen/libs/container_gen/doc/html/container_gen/reference/is_queue_selector.html 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84957)
@@ -0,0 +1,272 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>is_queue_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&#160;1.&#160;container_gen 0.9">
+<link rel="up" href="../reference.html" title="Reference">
+<link rel="prev" href="is_ptr_selector.html" title="is_ptr_selector">
+<link rel="next" href="is_stack_selector.html" title="is_stack_selector">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr><td valign="top"><img alt="C++ Boost" width="277" height="86" src="../../../../../../boost.png"></td></tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="is_ptr_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="is_stack_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="container_gen.reference.is_queue_selector"></a><a class="link" href="is_queue_selector.html" title="is_queue_selector"><code class="computeroutput"><span class="identifier">is_queue_selector</span></code></a>
+</h3></div></div></div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="container_gen.reference.is_queue_selector.synopsis"></a><a class="link" href="is_queue_selector.html#container_gen.reference.is_queue_selector.synopsis" title="Synopsis">Synopsis</a>
+</h4></div></div></div>
+<p>
+</p>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+
+ <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Selector</span><span class="special">&gt;</span>
+ <span class="keyword">struct</span> <span class="identifier">is_queue_selector</span>
+ <span class="special">{</span>
+ <span class="comment">// typedef ... type;</span>
+ <span class="special">};</span>
+<span class="special">}</span> <span class="comment">// namespace boost</span>
+</pre>
+<p>
+ </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="container_gen.reference.is_queue_selector.description"></a><a class="link" href="is_queue_selector.html#container_gen.reference.is_queue_selector.description" title="Description">Description</a>
+</h4></div></div></div>
+<p>
+ Returns boost::mpl::true_ if the specified selector
+ will cause <a class="link" href="container_gen.html" title="container_gen"><code class="computeroutput"><span class="identifier">container_gen</span></code></a> to return a std::queue
+ template instantiation, boost::mpl::false_ otherwise.
+ </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="container_gen.reference.is_queue_selector.definition"></a><a class="link" href="is_queue_selector.html#container_gen.reference.is_queue_selector.definition" title="Where defined">Where
+ defined</a>
+</h4></div></div></div>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span>boost/container_gen/is_queue_selector.hpp<span class="special">&gt;</span>
+</pre>
+<p>
+ </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="container_gen.reference.is_queue_selector.test"></a><a class="link" href="is_queue_selector.html#container_gen.reference.is_queue_selector.test" title="Test">Test</a>
+</h4></div></div></div>
+<p>
+</p>
+<pre class="programlisting"><span class="identifier">MPL_TEST_CASE</span><span class="special">()</span>
+<span class="special">{</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_queue_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">vecS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_queue_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">dequeS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_queue_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">listS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_queue_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">slistS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_queue_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">setS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_queue_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mapS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_queue_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">multisetS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_queue_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">multimapS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_queue_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_setS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_queue_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_mapS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_queue_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_multisetS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_queue_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_multimapS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_queue_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_vecS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_queue_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_dequeS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_queue_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_listS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_queue_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_setS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_queue_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_mapS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_queue_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_multisetS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_queue_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_multimapS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_queue_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">stackS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_queue_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">queueS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_queue_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">std_heapS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_queue_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_hash_setS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_queue_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_hash_mapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_queue_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_hash_multisetS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_queue_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_hash_multimapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_queue_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">vector_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_queue_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">stable_vecS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_queue_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">deque_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_queue_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">list_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_queue_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">set_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_queue_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">map_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_queue_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">multiset_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_queue_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">multimap_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_queue_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_set_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_queue_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_map_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_queue_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_multiset_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_queue_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_multimap_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_queue_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">flat_setS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_queue_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">flat_mapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_queue_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">flat_multisetS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_queue_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">flat_multimapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_queue_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">priority_queueS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_queue_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">d_ary_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">heap</span><span class="special">::</span><span class="identifier">arity</span><span class="special">&lt;</span><span class="number">4</span><span class="special">&gt;</span> <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_queue_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">binomial_heapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_queue_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">fibonacci_heapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_queue_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">pairing_heapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_queue_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">skew_heapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_queue_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">tr1_binary_predicate_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_queue_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">equal_to_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_queue_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">less_than_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_queue_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">greater_than_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_queue_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">binary_predicate_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_queue_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">equivalenceS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_queue_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">c_str_less_than_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_queue_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">c_str_greater_than_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_queue_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">boost_hash_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_queue_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">tr1_hash_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_queue_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">std_allocator_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_queue_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">std_flat_allocator_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+<span class="special">}</span>
+</pre>
+<p>
+ </p>
+</div>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright &#169; 1997-2013 Andrew Lumsdaine, Lie-Quan Lee,
+ Thomas Claveirole, Jeremy G. Siek, Cromwell D. Enage<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="is_ptr_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="is_stack_selector.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/container_gen/libs/container_gen/doc/html/container_gen/reference/is_random_access_selector.html
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ sandbox/container_gen/libs/container_gen/doc/html/container_gen/reference/is_random_access_selector.html 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84957)
@@ -0,0 +1,310 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>is_random_access_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&#160;1.&#160;container_gen 0.9">
+<link rel="up" href="../reference.html" title="Reference">
+<link rel="prev" href="is_reversible_selector.html" title="is_reversible_selector">
+<link rel="next" href="is_associative_selector.html" title="is_associative_selector">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr><td valign="top"><img alt="C++ Boost" width="277" height="86" src="../../../../../../boost.png"></td></tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="is_reversible_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="is_associative_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="container_gen.reference.is_random_access_selector"></a><a class="link" href="is_random_access_selector.html" title="is_random_access_selector"><code class="computeroutput"><span class="identifier">is_random_access_selector</span></code></a>
+</h3></div></div></div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="container_gen.reference.is_random_access_selector.synopsis"></a><a class="link" href="is_random_access_selector.html#container_gen.reference.is_random_access_selector.synopsis" title="Synopsis">Synopsis</a>
+</h4></div></div></div>
+<p>
+</p>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+
+ <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Selector</span><span class="special">&gt;</span>
+ <span class="keyword">struct</span> <span class="identifier">is_random_access_selector</span>
+ <span class="special">{</span>
+ <span class="comment">// typedef ... type;</span>
+ <span class="special">};</span>
+<span class="special">}</span> <span class="comment">// namespace boost</span>
+</pre>
+<p>
+ </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="container_gen.reference.is_random_access_selector.description"></a><a class="link" href="is_random_access_selector.html#container_gen.reference.is_random_access_selector.description" title="Description">Description</a>
+</h4></div></div></div>
+<p>
+ The boost::adjacency_list class template
+ uses this metafunction to determine whether or not it will provide an internal
+ property map that associates its vertex descriptors with unique indices.
+ Returns boost::mpl::true_ if the type to be returned
+ by <a class="link" href="container_gen.html" title="container_gen"><code class="computeroutput"><span class="identifier">container_gen</span></code></a> will model the
+ Random Access Container concept, boost::mpl::false_
+ otherwise.
+ </p>
+<p>
+ If BOOST_MPL_CFG_NO_HAS_XXX is defined,
+ then you must specialize this metafunction to return boost::mpl::true_ for your custom selector
+ if and only if the <a class="link" href="container_gen.html" title="container_gen"><code class="computeroutput"><span class="identifier">container_gen</span></code></a> return type models
+ the Random Access Container concept.
+ </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="container_gen.reference.is_random_access_selector.definition"></a><a class="link" href="is_random_access_selector.html#container_gen.reference.is_random_access_selector.definition" title="Where defined">Where
+ defined</a>
+</h4></div></div></div>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span>boost/container_gen/is_random_access_selector.hpp<span class="special">&gt;</span>
+</pre>
+<p>
+ </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="container_gen.reference.is_random_access_selector.test"></a><a class="link" href="is_random_access_selector.html#container_gen.reference.is_random_access_selector.test" title="Test">Test</a>
+</h4></div></div></div>
+<p>
+</p>
+<pre class="programlisting"><span class="identifier">MPL_TEST_CASE</span><span class="special">()</span>
+<span class="special">{</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_random_access_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">vecS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_random_access_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">dequeS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_random_access_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">listS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_random_access_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">slistS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_random_access_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">setS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_random_access_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mapS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_random_access_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">multisetS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_random_access_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">multimapS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_random_access_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_setS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_random_access_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_mapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_random_access_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_multisetS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_random_access_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_multimapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_random_access_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_vecS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_random_access_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_dequeS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_random_access_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_listS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_random_access_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_setS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_random_access_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_mapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_random_access_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_multisetS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_random_access_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_multimapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_random_access_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">stackS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_random_access_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">queueS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_random_access_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">std_heapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_random_access_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_hash_setS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_random_access_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_hash_mapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_random_access_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_hash_multisetS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_random_access_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_hash_multimapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_random_access_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">vector_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_random_access_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">stable_vecS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_random_access_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">deque_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_random_access_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">list_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_random_access_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">set_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_random_access_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">map_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_random_access_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">multiset_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_random_access_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">multimap_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_random_access_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_set_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_random_access_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_map_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_random_access_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_multiset_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_random_access_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_multimap_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_random_access_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">flat_setS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_random_access_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">flat_mapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_random_access_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">flat_multisetS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_random_access_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">flat_multimapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_random_access_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">priority_queueS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_random_access_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">d_ary_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">heap</span><span class="special">::</span><span class="identifier">arity</span><span class="special">&lt;</span><span class="number">4</span><span class="special">&gt;</span> <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_random_access_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">binomial_heapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_random_access_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">fibonacci_heapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_random_access_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">pairing_heapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_random_access_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">skew_heapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_random_access_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">tr1_binary_predicate_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_random_access_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">equal_to_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_random_access_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">greater_than_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_random_access_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">less_than_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_random_access_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">binary_predicate_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_random_access_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">equivalenceS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_random_access_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">c_str_less_than_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_random_access_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">c_str_greater_than_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_random_access_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">boost_hash_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_random_access_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">tr1_hash_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_random_access_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">std_allocator_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_random_access_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">std_flat_allocator_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+<span class="special">}</span>
+</pre>
+<p>
+ </p>
+</div>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright &#169; 1997-2013 Andrew Lumsdaine, Lie-Quan Lee,
+ Thomas Claveirole, Jeremy G. Siek, Cromwell D. Enage<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="is_reversible_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="is_associative_selector.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/container_gen/libs/container_gen/doc/html/container_gen/reference/is_recursive_selector.html
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ sandbox/container_gen/libs/container_gen/doc/html/container_gen/reference/is_recursive_selector.html 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84957)
@@ -0,0 +1,85 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>is_recursive_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&#160;1.&#160;container_gen 0.9">
+<link rel="up" href="../reference.html" title="Reference">
+<link rel="prev" href="is_mergeable_heap_selector.html" title="is_mergeable_heap_selector">
+<link rel="next" href="has_stable_iters_selector.html" title="has_stable_iterators_selector">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr><td valign="top"><img alt="C++ Boost" width="277" height="86" src="../../../../../../boost.png"></td></tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="is_mergeable_heap_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="has_stable_iters_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="container_gen.reference.is_recursive_selector"></a><a class="link" href="is_recursive_selector.html" title="is_recursive_selector"><code class="computeroutput"><span class="identifier">is_recursive_selector</span></code></a>
+</h3></div></div></div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="container_gen.reference.is_recursive_selector.synopsis"></a><a class="link" href="is_recursive_selector.html#container_gen.reference.is_recursive_selector.synopsis" title="Synopsis">Synopsis</a>
+</h4></div></div></div>
+<p>
+</p>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+
+ <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Selector</span><span class="special">&gt;</span>
+ <span class="keyword">struct</span> <span class="identifier">is_recursive_selector</span>
+ <span class="special">{</span>
+ <span class="comment">// typedef ... type;</span>
+ <span class="special">};</span>
+<span class="special">}</span> <span class="comment">// namespace boost</span>
+</pre>
+<p>
+ </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="container_gen.reference.is_recursive_selector.description"></a><a class="link" href="is_recursive_selector.html#container_gen.reference.is_recursive_selector.description" title="Description">Description</a>
+</h4></div></div></div>
+<p>
+ Returns boost::mpl::true_ if the type to be returned
+ by <a class="link" href="container_gen.html" title="container_gen"><code class="computeroutput"><span class="identifier">container_gen</span></code></a> can be used to define
+ a Recursive Container, boost::mpl::false_ otherwise.
+ </p>
+<p>
+ The current implementation returns boost::mpl::true_ when passed in selectors
+ for which <a class="link" href="container_gen.html" title="container_gen"><code class="computeroutput"><span class="identifier">container_gen</span></code></a> will return a Boost.Container
+ type, a Boost.PointerContainer type, or a Boost.Unordered
+ container; it will return boost::mpl::false_ for all other types of
+ selectors. Specialize this metafunction to return boost::mpl::true_ for your custom selector
+ if and only if the type to be returned by <a class="link" href="container_gen.html" title="container_gen"><code class="computeroutput"><span class="identifier">container_gen</span></code></a> supports recursive data types.
+ </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="container_gen.reference.is_recursive_selector.definition"></a><a class="link" href="is_recursive_selector.html#container_gen.reference.is_recursive_selector.definition" title="Where defined">Where
+ defined</a>
+</h4></div></div></div>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span>boost/container_gen/is_recursive_selector.hpp<span class="special">&gt;</span>
+</pre>
+<p>
+ </p>
+</div>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright &#169; 1997-2013 Andrew Lumsdaine, Lie-Quan Lee,
+ Thomas Claveirole, Jeremy G. Siek, Cromwell D. Enage<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="is_mergeable_heap_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="has_stable_iters_selector.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/container_gen/libs/container_gen/doc/html/container_gen/reference/is_reversible_selector.html
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ sandbox/container_gen/libs/container_gen/doc/html/container_gen/reference/is_reversible_selector.html 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84957)
@@ -0,0 +1,286 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>is_reversible_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&#160;1.&#160;container_gen 0.9">
+<link rel="up" href="../reference.html" title="Reference">
+<link rel="prev" href="is_container_selector.html" title="is_container_selector">
+<link rel="next" href="is_random_access_selector.html" title="is_random_access_selector">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr><td valign="top"><img alt="C++ Boost" width="277" height="86" src="../../../../../../boost.png"></td></tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="is_container_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="is_random_access_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="container_gen.reference.is_reversible_selector"></a><a class="link" href="is_reversible_selector.html" title="is_reversible_selector"><code class="computeroutput"><span class="identifier">is_reversible_selector</span></code></a>
+</h3></div></div></div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="container_gen.reference.is_reversible_selector.synopsis"></a><a class="link" href="is_reversible_selector.html#container_gen.reference.is_reversible_selector.synopsis" title="Synopsis">Synopsis</a>
+</h4></div></div></div>
+<p>
+</p>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+
+ <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Selector</span><span class="special">&gt;</span>
+ <span class="keyword">struct</span> <span class="identifier">is_reversible_selector</span>
+ <span class="special">{</span>
+ <span class="comment">// typedef ... type;</span>
+ <span class="special">};</span>
+<span class="special">}</span> <span class="comment">// namespace boost</span>
+</pre>
+<p>
+ </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="container_gen.reference.is_reversible_selector.description"></a><a class="link" href="is_reversible_selector.html#container_gen.reference.is_reversible_selector.description" title="Description">Description</a>
+</h4></div></div></div>
+<p>
+ Returns boost::mpl::true_ if the type to be returned
+ by <a class="link" href="container_gen.html" title="container_gen"><code class="computeroutput"><span class="identifier">container_gen</span></code></a> will model the
+ Reversible Container concept, boost::mpl::false_ otherwise.
+ </p>
+<p>
+ If BOOST_MPL_CFG_NO_HAS_XXX is defined,
+ then you must specialize this metafunction to return boost::mpl::false_ for your custom selector
+ if and only if the <a class="link" href="container_gen.html" title="container_gen"><code class="computeroutput"><span class="identifier">container_gen</span></code></a> return type does
+ <span class="bold"><strong>not</strong></span> model the Reversible Container concept.
+ </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="container_gen.reference.is_reversible_selector.definition"></a><a class="link" href="is_reversible_selector.html#container_gen.reference.is_reversible_selector.definition" title="Where defined">Where
+ defined</a>
+</h4></div></div></div>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span>boost/container_gen/is_reversible_selector.hpp<span class="special">&gt;</span>
+</pre>
+<p>
+ </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="container_gen.reference.is_reversible_selector.test"></a><a class="link" href="is_reversible_selector.html#container_gen.reference.is_reversible_selector.test" title="Test">Test</a>
+</h4></div></div></div>
+<p>
+</p>
+<pre class="programlisting"><span class="identifier">MPL_TEST_CASE</span><span class="special">()</span>
+<span class="special">{</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_reversible_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">vecS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_reversible_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">dequeS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_reversible_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">listS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_reversible_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">slistS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_reversible_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">setS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_reversible_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mapS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_reversible_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">multisetS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_reversible_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">multimapS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_reversible_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_setS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_reversible_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_mapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_reversible_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_multisetS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_reversible_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_multimapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_reversible_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_vecS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_reversible_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_dequeS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_reversible_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_listS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_reversible_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_setS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_reversible_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_mapS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_reversible_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_multisetS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_reversible_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_multimapS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_reversible_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">stackS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_reversible_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">queueS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_reversible_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">std_heapS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_reversible_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_hash_setS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_reversible_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_hash_mapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_reversible_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_hash_multisetS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_reversible_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_hash_multimapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_reversible_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">vector_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_reversible_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">stable_vecS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_reversible_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">deque_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_reversible_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">list_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_reversible_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">set_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_reversible_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">map_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_reversible_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">multiset_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_reversible_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">multimap_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_reversible_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_set_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_reversible_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_map_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_reversible_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_multiset_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_reversible_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_multimap_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_reversible_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">flat_setS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_reversible_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">flat_mapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_reversible_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">flat_multisetS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_reversible_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">flat_multimapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_reversible_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">priority_queueS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_reversible_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">d_ary_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">heap</span><span class="special">::</span><span class="identifier">arity</span><span class="special">&lt;</span><span class="number">4</span><span class="special">&gt;</span> <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_reversible_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">binomial_heapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_reversible_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">fibonacci_heapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_reversible_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">pairing_heapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_reversible_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">skew_heapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_reversible_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">tr1_binary_predicate_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_reversible_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">equal_to_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_reversible_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">less_than_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_reversible_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">greater_than_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_reversible_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">binary_predicate_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_reversible_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">equivalenceS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_reversible_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">c_str_less_than_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_reversible_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">c_str_greater_than_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_reversible_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">boost_hash_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_reversible_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">tr1_hash_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_reversible_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">std_allocator_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_reversible_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">std_flat_allocator_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+<span class="special">}</span>
+</pre>
+<p>
+ </p>
+</div>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright &#169; 1997-2013 Andrew Lumsdaine, Lie-Quan Lee,
+ Thomas Claveirole, Jeremy G. Siek, Cromwell D. Enage<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="is_container_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="is_random_access_selector.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/container_gen/libs/container_gen/doc/html/container_gen/reference/is_stack_selector.html
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ sandbox/container_gen/libs/container_gen/doc/html/container_gen/reference/is_stack_selector.html 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84957)
@@ -0,0 +1,272 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>is_stack_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&#160;1.&#160;container_gen 0.9">
+<link rel="up" href="../reference.html" title="Reference">
+<link rel="prev" href="is_queue_selector.html" title="is_queue_selector">
+<link rel="next" href="is_std_heap_selector.html" title="is_std_heap_selector">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr><td valign="top"><img alt="C++ Boost" width="277" height="86" src="../../../../../../boost.png"></td></tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="is_queue_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="is_std_heap_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="container_gen.reference.is_stack_selector"></a><a class="link" href="is_stack_selector.html" title="is_stack_selector"><code class="computeroutput"><span class="identifier">is_stack_selector</span></code></a>
+</h3></div></div></div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="container_gen.reference.is_stack_selector.synopsis"></a><a class="link" href="is_stack_selector.html#container_gen.reference.is_stack_selector.synopsis" title="Synopsis">Synopsis</a>
+</h4></div></div></div>
+<p>
+</p>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+
+ <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Selector</span><span class="special">&gt;</span>
+ <span class="keyword">struct</span> <span class="identifier">is_stack_selector</span>
+ <span class="special">{</span>
+ <span class="comment">// typedef ... type;</span>
+ <span class="special">};</span>
+<span class="special">}</span> <span class="comment">// namespace boost</span>
+</pre>
+<p>
+ </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="container_gen.reference.is_stack_selector.description"></a><a class="link" href="is_stack_selector.html#container_gen.reference.is_stack_selector.description" title="Description">Description</a>
+</h4></div></div></div>
+<p>
+ Returns boost::mpl::true_ if the specified selector
+ will cause <a class="link" href="container_gen.html" title="container_gen"><code class="computeroutput"><span class="identifier">container_gen</span></code></a> to return a std::stack
+ template instantiation, boost::mpl::false_ otherwise.
+ </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="container_gen.reference.is_stack_selector.definition"></a><a class="link" href="is_stack_selector.html#container_gen.reference.is_stack_selector.definition" title="Where defined">Where
+ defined</a>
+</h4></div></div></div>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span>boost/container_gen/is_stack_selector.hpp<span class="special">&gt;</span>
+</pre>
+<p>
+ </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="container_gen.reference.is_stack_selector.test"></a><a class="link" href="is_stack_selector.html#container_gen.reference.is_stack_selector.test" title="Test">Test</a>
+</h4></div></div></div>
+<p>
+</p>
+<pre class="programlisting"><span class="identifier">MPL_TEST_CASE</span><span class="special">()</span>
+<span class="special">{</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_stack_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">vecS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_stack_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">dequeS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_stack_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">listS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_stack_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">slistS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_stack_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">setS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_stack_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mapS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_stack_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">multisetS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_stack_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">multimapS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_stack_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_setS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_stack_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_mapS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_stack_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_multisetS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_stack_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_multimapS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_stack_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_vecS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_stack_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_dequeS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_stack_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_listS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_stack_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_setS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_stack_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_mapS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_stack_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_multisetS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_stack_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_multimapS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_stack_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">stackS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_stack_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">queueS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_stack_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">std_heapS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_stack_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_hash_setS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_stack_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_hash_mapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_stack_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_hash_multisetS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_stack_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_hash_multimapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_stack_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">vector_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_stack_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">stable_vecS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_stack_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">deque_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_stack_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">list_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_stack_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">set_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_stack_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">map_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_stack_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">multiset_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_stack_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">multimap_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_stack_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_set_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_stack_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_map_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_stack_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_multiset_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_stack_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_multimap_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_stack_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">flat_setS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_stack_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">flat_mapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_stack_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">flat_multisetS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_stack_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">flat_multimapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_stack_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">priority_queueS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_stack_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">d_ary_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">heap</span><span class="special">::</span><span class="identifier">arity</span><span class="special">&lt;</span><span class="number">4</span><span class="special">&gt;</span> <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_stack_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">binomial_heapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_stack_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">fibonacci_heapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_stack_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">pairing_heapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_stack_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">skew_heapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_stack_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">tr1_binary_predicate_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_stack_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">equal_to_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_stack_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">less_than_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_stack_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">greater_than_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_stack_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">binary_predicate_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_stack_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">equivalenceS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_stack_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">c_str_less_than_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_stack_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">c_str_greater_than_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_stack_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">boost_hash_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_stack_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">tr1_hash_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_stack_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">std_allocator_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_stack_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">std_flat_allocator_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+<span class="special">}</span>
+</pre>
+<p>
+ </p>
+</div>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright &#169; 1997-2013 Andrew Lumsdaine, Lie-Quan Lee,
+ Thomas Claveirole, Jeremy G. Siek, Cromwell D. Enage<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="is_queue_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="is_std_heap_selector.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/container_gen/libs/container_gen/doc/html/container_gen/reference/is_std_heap_selector.html
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ sandbox/container_gen/libs/container_gen/doc/html/container_gen/reference/is_std_heap_selector.html 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84957)
@@ -0,0 +1,272 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>is_std_heap_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&#160;1.&#160;container_gen 0.9">
+<link rel="up" href="../reference.html" title="Reference">
+<link rel="prev" href="is_stack_selector.html" title="is_stack_selector">
+<link rel="next" href="is_heap_selector.html" title="is_heap_selector">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr><td valign="top"><img alt="C++ Boost" width="277" height="86" src="../../../../../../boost.png"></td></tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="is_stack_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="is_heap_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="container_gen.reference.is_std_heap_selector"></a><a class="link" href="is_std_heap_selector.html" title="is_std_heap_selector"><code class="computeroutput"><span class="identifier">is_std_heap_selector</span></code></a>
+</h3></div></div></div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="container_gen.reference.is_std_heap_selector.synopsis"></a><a class="link" href="is_std_heap_selector.html#container_gen.reference.is_std_heap_selector.synopsis" title="Synopsis">Synopsis</a>
+</h4></div></div></div>
+<p>
+</p>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+
+ <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Selector</span><span class="special">&gt;</span>
+ <span class="keyword">struct</span> <span class="identifier">is_std_heap_selector</span>
+ <span class="special">{</span>
+ <span class="comment">// typedef ... type;</span>
+ <span class="special">};</span>
+<span class="special">}</span> <span class="comment">// namespace boost</span>
+</pre>
+<p>
+ </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="container_gen.reference.is_std_heap_selector.description"></a><a class="link" href="is_std_heap_selector.html#container_gen.reference.is_std_heap_selector.description" title="Description">Description</a>
+</h4></div></div></div>
+<p>
+ Returns boost::mpl::true_ if the specified selector
+ will cause <a class="link" href="container_gen.html" title="container_gen"><code class="computeroutput"><span class="identifier">container_gen</span></code></a> to return a std::priority_queue
+ type, boost::mpl::false_ otherwise.
+ </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="container_gen.reference.is_std_heap_selector.definition"></a><a class="link" href="is_std_heap_selector.html#container_gen.reference.is_std_heap_selector.definition" title="Where defined">Where
+ defined</a>
+</h4></div></div></div>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span>boost/container_gen/is_std_heap_selector.hpp<span class="special">&gt;</span>
+</pre>
+<p>
+ </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="container_gen.reference.is_std_heap_selector.test"></a><a class="link" href="is_std_heap_selector.html#container_gen.reference.is_std_heap_selector.test" title="Test">Test</a>
+</h4></div></div></div>
+<p>
+</p>
+<pre class="programlisting"><span class="identifier">MPL_TEST_CASE</span><span class="special">()</span>
+<span class="special">{</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</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">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">vecS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</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">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">dequeS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</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">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">listS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</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">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">slistS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</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">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">setS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</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">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mapS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</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">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">multisetS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</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">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">multimapS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</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">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_setS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</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">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_mapS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</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">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_multisetS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</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">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_multimapS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</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">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_vecS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</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">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_dequeS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</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">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_listS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</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">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_setS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</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">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_mapS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</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">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_multisetS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</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">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_multimapS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</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">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">stackS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</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">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">queueS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</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">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">std_heapS</span><span class="special">&gt;));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</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">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_hash_setS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</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">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_hash_mapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</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">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_hash_multisetS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</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">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_hash_multimapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</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">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">vector_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</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">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">stable_vecS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</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">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">deque_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</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">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">list_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</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">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">set_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</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">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">map_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</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">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">multiset_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</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">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">multimap_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</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">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_set_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</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">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_map_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</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">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_multiset_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</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">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_multimap_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</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">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">flat_setS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</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">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">flat_mapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</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">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">flat_multisetS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</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">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">flat_multimapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</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">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">priority_queueS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</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">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">d_ary_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">heap</span><span class="special">::</span><span class="identifier">arity</span><span class="special">&lt;</span><span class="number">4</span><span class="special">&gt;</span> <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</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">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">binomial_heapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</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">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">fibonacci_heapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</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">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">pairing_heapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</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">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">skew_heapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</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">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">tr1_binary_predicate_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</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">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">equal_to_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</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">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">less_than_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</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">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">greater_than_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</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">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">binary_predicate_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</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">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">equivalenceS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</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">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">c_str_less_than_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</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">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">c_str_greater_than_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</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">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">boost_hash_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</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">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">tr1_hash_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</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">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">std_allocator_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</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">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">std_flat_allocator_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+<span class="special">}</span>
+</pre>
+<p>
+ </p>
+</div>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright &#169; 1997-2013 Andrew Lumsdaine, Lie-Quan Lee,
+ Thomas Claveirole, Jeremy G. Siek, Cromwell D. Enage<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="is_stack_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="is_heap_selector.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/container_gen/libs/container_gen/doc/html/container_gen/reference/is_tr1_selector.html
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ sandbox/container_gen/libs/container_gen/doc/html/container_gen/reference/is_tr1_selector.html 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84957)
@@ -0,0 +1,317 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>is_tr1_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&#160;1.&#160;container_gen 0.9">
+<link rel="up" href="../reference.html" title="Reference">
+<link rel="prev" href="is_hashed_assoc_selector.html" title="is_hashed_associative_selector">
+<link rel="next" href="is_ptr_selector.html" title="is_ptr_selector">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr><td valign="top"><img alt="C++ Boost" width="277" height="86" src="../../../../../../boost.png"></td></tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="is_hashed_assoc_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="is_ptr_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="container_gen.reference.is_tr1_selector"></a><a class="link" href="is_tr1_selector.html" title="is_tr1_selector"><code class="computeroutput"><span class="identifier">is_tr1_selector</span></code></a>
+</h3></div></div></div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="container_gen.reference.is_tr1_selector.synopsis"></a><a class="link" href="is_tr1_selector.html#container_gen.reference.is_tr1_selector.synopsis" title="Synopsis">Synopsis</a>
+</h4></div></div></div>
+<p>
+</p>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+
+ <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Selector</span><span class="special">&gt;</span>
+ <span class="keyword">struct</span> <span class="identifier">is_tr1_selector</span>
+ <span class="special">{</span>
+ <span class="comment">// typedef ... type;</span>
+ <span class="special">};</span>
+<span class="special">}</span> <span class="comment">// namespace boost</span>
+</pre>
+<p>
+ </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="container_gen.reference.is_tr1_selector.description"></a><a class="link" href="is_tr1_selector.html#container_gen.reference.is_tr1_selector.description" title="Description">Description</a>
+</h4></div></div></div>
+<p>
+ Returns boost::mpl::true_ if the specified selector
+ type is <code class="computeroutput"><span class="identifier">tr1_hash_selector</span></code>
+ or <code class="computeroutput"><span class="identifier">tr1_binary_predicate_selector</span></code>,
+ or if the type to be returned by <a class="link" href="container_gen.html" title="container_gen"><code class="computeroutput"><span class="identifier">container_gen</span></code></a> is a std::tr1::array, a std::tr1::unordered_set, a <a href="http://www.boost.org/doc/html/boost_tr1/subject_list.html#boost_tr1.subject_list.unordered_set" target="_top"><code cl
 ass="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">tr1</span><span class="special">::</span><span class="identifier">unordered_multiset</span></code></a>, a std::tr1::unordered_map, or a std::tr1::unordered_multimap; <a href="http://www.boost.org/libs/mpl/doc/refmanual/bool.html" target="_top"><code c
 lass="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">false_</span></code></a> otherwise.
+ </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="container_gen.reference.is_tr1_selector.definition"></a><a class="link" href="is_tr1_selector.html#container_gen.reference.is_tr1_selector.definition" title="Where defined">Where
+ defined</a>
+</h4></div></div></div>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span>boost/container_gen/is_tr1_selector.hpp<span class="special">&gt;</span>
+</pre>
+<p>
+ </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="container_gen.reference.is_tr1_selector.test"></a><a class="link" href="is_tr1_selector.html#container_gen.reference.is_tr1_selector.test" title="Test">Test</a>
+</h4></div></div></div>
+<p>
+</p>
+<pre class="programlisting"><span class="identifier">MPL_TEST_CASE</span><span class="special">()</span>
+<span class="special">{</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_tr1_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">vecS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_tr1_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">dequeS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_tr1_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">listS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_tr1_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">slistS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_tr1_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">setS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_tr1_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_tr1_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">multisetS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_tr1_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">multimapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_tr1_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_setS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_tr1_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_mapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_tr1_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_multisetS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_tr1_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_multimapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_tr1_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_vecS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_tr1_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_dequeS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_tr1_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_listS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_tr1_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_setS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_tr1_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_mapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_tr1_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_multisetS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_tr1_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_multimapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_tr1_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">stackS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_tr1_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">queueS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_tr1_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">std_heapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_tr1_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_hash_setS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_tr1_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_hash_mapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_tr1_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_hash_multisetS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_tr1_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_hash_multimapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_tr1_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">vector_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_tr1_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">stable_vecS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_tr1_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">deque_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_tr1_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">list_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_tr1_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">set_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_tr1_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">map_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_tr1_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">multiset_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_tr1_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">multimap_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_tr1_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_set_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_tr1_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_map_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_tr1_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_multiset_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_tr1_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_multimap_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_tr1_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">flat_setS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_tr1_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">flat_mapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_tr1_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">flat_multisetS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_tr1_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">flat_multimapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_tr1_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">priority_queueS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_tr1_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">d_ary_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">heap</span><span class="special">::</span><span class="identifier">arity</span><span class="special">&lt;</span><span class="number">4</span><span class="special">&gt;</span> <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_tr1_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">binomial_heapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_tr1_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">fibonacci_heapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_tr1_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">pairing_heapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_tr1_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">skew_heapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_tr1_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">equal_to_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_tr1_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">less_than_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_tr1_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">greater_than_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_tr1_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">tr1_binary_predicate_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_tr1_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">binary_predicate_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_tr1_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">equivalenceS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_tr1_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">c_str_less_than_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_tr1_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">c_str_greater_than_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_tr1_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">boost_hash_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_tr1_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">tr1_hash_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_tr1_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">std_allocator_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_tr1_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">std_flat_allocator_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+<span class="special">}</span>
+</pre>
+<p>
+ </p>
+</div>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright &#169; 1997-2013 Andrew Lumsdaine, Lie-Quan Lee,
+ Thomas Claveirole, Jeremy G. Siek, Cromwell D. Enage<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="is_hashed_assoc_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="is_ptr_selector.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/container_gen/libs/container_gen/doc/html/container_gen/reference/is_unique_assoc_selector.html
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ sandbox/container_gen/libs/container_gen/doc/html/container_gen/reference/is_unique_assoc_selector.html 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84957)
@@ -0,0 +1,333 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>is_unique_associative_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&#160;1.&#160;container_gen 0.9">
+<link rel="up" href="../reference.html" title="Reference">
+<link rel="prev" href="is_associative_selector.html" title="is_associative_selector">
+<link rel="next" href="is_multiple_assoc_selector.html" title="is_multiple_associative_selector">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr><td valign="top"><img alt="C++ Boost" width="277" height="86" src="../../../../../../boost.png"></td></tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="is_associative_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="is_multiple_assoc_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="container_gen.reference.is_unique_assoc_selector"></a><a class="link" href="is_unique_assoc_selector.html" title="is_unique_associative_selector"><code class="computeroutput"><span class="identifier">is_unique_associative_selector</span></code></a>
+</h3></div></div></div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="container_gen.reference.is_unique_assoc_selector.synopsis"></a><a class="link" href="is_unique_assoc_selector.html#container_gen.reference.is_unique_assoc_selector.synopsis" title="Synopsis">Synopsis</a>
+</h4></div></div></div>
+<p>
+</p>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+
+ <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Selector</span><span class="special">&gt;</span>
+ <span class="keyword">struct</span> <span class="identifier">is_unique_associative_selector</span>
+ <span class="special">{</span>
+ <span class="comment">// typedef ... type;</span>
+ <span class="special">};</span>
+<span class="special">}</span> <span class="comment">// namespace boost</span>
+</pre>
+<p>
+ </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="container_gen.reference.is_unique_assoc_selector.description"></a><a class="link" href="is_unique_assoc_selector.html#container_gen.reference.is_unique_assoc_selector.description" title="Description">Description</a>
+</h4></div></div></div>
+<p>
+ The boost::parallel_edge_traits metafunction
+ uses this metafunction to specify whether or not the storage type returned
+ by <a class="link" href="container_gen.html" title="container_gen"><code class="computeroutput"><span class="identifier">container_gen</span></code></a> will allow parallel
+ edges--that is, if the storage type will <span class="bold"><strong>not</strong></span>
+ model the Unique Associative Container concept. Returns
+ boost::mpl::true_
+ if the storage type <span class="bold"><strong>will</strong></span> model the Unique Associative Container concept, boost::mpl::false_
+ otherwise.
+ </p>
+<p>
+ If both BOOST_TYPEOF_EMULATION and BOOST_MPL_CFG_NO_HAS_XXX
+ are defined, then you must specialize this metafunction to return boost::mpl::true_
+ for your custom selector if and only if the type to be returned by <a class="link" href="container_gen.html" title="container_gen"><code class="computeroutput"><span class="identifier">container_gen</span></code></a>
+ models the Unique Associative Container concept.
+ </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="container_gen.reference.is_unique_assoc_selector.definition"></a><a class="link" href="is_unique_assoc_selector.html#container_gen.reference.is_unique_assoc_selector.definition" title="Where defined">Where
+ defined</a>
+</h4></div></div></div>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span>boost/container_gen/is_unique_assoc_selector.hpp<span class="special">&gt;</span>
+</pre>
+<p>
+ </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="container_gen.reference.is_unique_assoc_selector.test"></a><a class="link" href="is_unique_assoc_selector.html#container_gen.reference.is_unique_assoc_selector.test" title="Test">Test</a>
+</h4></div></div></div>
+<p>
+</p>
+<pre class="programlisting"><span class="identifier">MPL_TEST_CASE</span><span class="special">()</span>
+<span class="special">{</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_unique_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">vecS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_unique_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">dequeS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_unique_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">listS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_unique_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">slistS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_unique_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">setS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_unique_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_unique_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">multisetS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_unique_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">multimapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_unique_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_setS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_unique_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_mapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_unique_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_multisetS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_unique_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_multimapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_unique_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_vecS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_unique_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_dequeS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_unique_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_listS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_unique_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_setS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_unique_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_mapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_unique_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_multisetS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_unique_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_multimapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_unique_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">stackS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_unique_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">queueS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_unique_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">std_heapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_unique_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_hash_setS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_unique_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_hash_mapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_unique_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_hash_multisetS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_unique_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_hash_multimapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_unique_associative_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">vector_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_unique_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">stable_vecS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_unique_associative_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">deque_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_unique_associative_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">list_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_unique_associative_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">set_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_unique_associative_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">map_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_unique_associative_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">multiset_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_unique_associative_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">multimap_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_unique_associative_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_set_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_unique_associative_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_map_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_unique_associative_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_multiset_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_unique_associative_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_multimap_selector</span><span class="special">&lt;</span>
+ <span class="identifier">true_</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_unique_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">flat_setS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_unique_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">flat_mapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_unique_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">flat_multisetS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_unique_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">flat_multimapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_unique_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">priority_queueS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_unique_associative_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">d_ary_heap_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">heap</span><span class="special">::</span><span class="identifier">arity</span><span class="special">&lt;</span><span class="number">4</span><span class="special">&gt;</span> <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_unique_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">binomial_heapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_unique_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">fibonacci_heapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_unique_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">pairing_heapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_unique_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">skew_heapS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_unique_associative_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">tr1_binary_predicate_selector</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_unique_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">equal_to_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_unique_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">less_than_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_unique_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">greater_than_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_unique_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">binary_predicate_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_unique_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">equivalenceS</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_unique_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">c_str_less_than_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_unique_associative_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">c_str_greater_than_selector</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_unique_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">boost_hash_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_unique_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">tr1_hash_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_unique_associative_selector</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">std_allocator_selector</span><span class="special">&gt;</span>
+ <span class="special">));</span>
+ <span class="identifier">BOOST_MPL_ASSERT_NOT</span><span class="special">((</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_unique_associative_selector</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">std_flat_allocator_selector</span>
+ <span class="special">&gt;</span>
+ <span class="special">));</span>
+<span class="special">}</span>
+</pre>
+<p>
+ </p>
+</div>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright &#169; 1997-2013 Andrew Lumsdaine, Lie-Quan Lee,
+ Thomas Claveirole, Jeremy G. Siek, Cromwell D. Enage<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="is_associative_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="is_multiple_assoc_selector.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/container_gen/libs/container_gen/doc/html/container_gen/reference/push_range_function_gen.html
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ sandbox/container_gen/libs/container_gen/doc/html/container_gen/reference/push_range_function_gen.html 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84957)
@@ -0,0 +1,215 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>push_range_function_gen</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&#160;1.&#160;container_gen 0.9">
+<link rel="up" href="../reference.html" title="Reference">
+<link rel="prev" href="emplace_assoc_function_gen.html" title="emplace_associative_function_gen">
+<link rel="next" href="insert_range_function_gen.html" title="insert_range_function_gen">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr><td valign="top"><img alt="C++ Boost" width="277" height="86" src="../../../../../../boost.png"></td></tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="emplace_assoc_function_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="insert_range_function_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="container_gen.reference.push_range_function_gen"></a><a class="link" href="push_range_function_gen.html" title="push_range_function_gen"><code class="computeroutput"><span class="identifier">push_range_function_gen</span></code></a>
+</h3></div></div></div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="container_gen.reference.push_range_function_gen.synopsis"></a><a class="link" href="push_range_function_gen.html#container_gen.reference.push_range_function_gen.synopsis" title="Synopsis">Synopsis</a>
+</h4></div></div></div>
+<p>
+</p>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+
+ <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Selector</span><span class="special">&gt;</span>
+ <span class="keyword">struct</span> <span class="identifier">push_range_function_gen</span>
+ <span class="special">{</span>
+ <span class="comment">// typedef ... type;</span>
+ <span class="special">};</span>
+<span class="special">}</span> <span class="comment">// namespace boost</span>
+</pre>
+<p>
+ </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="container_gen.reference.push_range_function_gen.description"></a><a class="link" href="push_range_function_gen.html#container_gen.reference.push_range_function_gen.description" title="Description">Description</a>
+</h4></div></div></div>
+<p>
+ Returns a Default Constructible function object type
+ whose call operator will take in a reference to a container and either
+ two Input Iterator arguments or a Single Pass Range argument. In practice,
+ the type of the container must be produced by <a class="link" href="container_gen.html" title="container_gen"><code class="computeroutput"><span class="identifier">container_gen</span></code></a> when given the same
+ selector template argument.
+ </p>
+<p>
+ If the container type models the Random Access Container concept, then the
+ function object will append the range specified by the other argument(s)
+ to the back of the container. The call operator's return value will be
+ a Single Pass Range over the elements inserted
+ in the container.
+ </p>
+<p>
+ If the container type models the Sequence concept, then the function object
+ will forward the other argument(s) to the container's range insertion method;
+ furthermore, if the container type models the Front Insertion Sequence concept, then the
+ point of insertion will be before the beginning; otherwise, if the container
+ type models the Back Insertion Sequence concept, then the
+ point of insertion will be the container's past-the-end iterator. The call
+ operator's return value will be a Single Pass Range over the elements inserted
+ in the container.
+ </p>
+<p>
+ If the container type models the Associative Container concept, then the
+ function object will forward each element in the specified range to the
+ container's insertion method. If <a class="link" href="has_stable_iters_selector.html" title="has_stable_iterators_selector"><code class="computeroutput"><span class="identifier">has_stable_iterators_selector</span></code></a>
+ evaluates to boost::mpl::true_ for the specified selector,
+ then the call operator's return value will be a Single Pass Range of iterators pointing
+ to each of the elements that were successfully inserted in the container.
+ </p>
+<p>
+ The return type of this metafunction also defines an indexing operator
+ that accepts a reference to a container and returns a proxy object that
+ allows range insertion function calls to be chained together, much like
+ Boost.Assign.
+ </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="container_gen.reference.push_range_function_gen.definition"></a><a class="link" href="push_range_function_gen.html#container_gen.reference.push_range_function_gen.definition" title="Where defined">Where
+ defined</a>
+</h4></div></div></div>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span>boost/container_gen/push_range_function_gen.hpp<span class="special">&gt;</span>
+</pre>
+<p>
+ </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="container_gen.reference.push_range_function_gen.example"></a><a class="link" href="push_range_function_gen.html#container_gen.reference.push_range_function_gen.example" title="Example">Example</a>
+</h4></div></div></div>
+<p>
+ Use the boost::range::equal()
+ algorithm to test two ranges for equality. To handle the case where the
+ range returned from a call to the <code class="computeroutput"><span class="identifier">push_range_function_gen</span></code>
+ return function type is a Single Pass Range of iterators, use boost::adaptors::indirect().
+ </p>
+<p>
+</p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">ResultRange</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">AddedContainer</span><span class="special">&gt;</span>
+<span class="keyword">bool</span>
+ <span class="identifier">test_result_range</span><span class="special">(</span>
+ <span class="identifier">ResultRange</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">r</span>
+ <span class="special">,</span> <span class="identifier">AddedContainer</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">c</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="keyword">return</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">boost</span><span class="special">::</span><span class="identifier">adaptors</span><span class="special">::</span><span class="identifier">indirect</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span> <span class="identifier">c</span><span class="special">);</span>
+<span class="special">}</span>
+
+<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">ResultRange</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">AddedContainer</span><span class="special">&gt;</span>
+<span class="keyword">bool</span>
+ <span class="identifier">test_result_range</span><span class="special">(</span>
+ <span class="identifier">ResultRange</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">r</span>
+ <span class="special">,</span> <span class="identifier">AddedContainer</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">c</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">return</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">r</span><span class="special">,</span> <span class="identifier">c</span><span class="special">);</span>
+<span class="special">}</span>
+</pre>
+<p>
+ </p>
+<p>
+ Use the <a class="link" href="emplace_function_gen.html" title="emplace_function_gen"><code class="computeroutput"><span class="identifier">emplace_function_gen</span></code></a> metafunction
+ to construct containers using individual elements, then use this metafunction
+ to append the elements of one container to another in a single step. Use
+ the <a class="link" href="insert_range_result_gen.html" title="insert_range_result_gen"><code class="computeroutput"><span class="identifier">insert_range_result_gen</span></code></a> metafunction
+ to store the result of the operation.
+ </p>
+<p>
+</p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Selector</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">AddedContainer</span><span class="special">&gt;</span>
+<span class="keyword">void</span> <span class="identifier">test_push_range_function_gen</span><span class="special">(</span><span class="identifier">AddedContainer</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">added_container</span><span class="special">)</span>
+<span class="special">{</span>
+ <span class="keyword">typename</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">container_gen</span><span class="special">&lt;</span><span class="identifier">Selector</span><span class="special">,</span><span class="identifier">test_string</span><span class="special">&gt;::</span><span class="identifier">type</span>
+ <span class="identifier">example_container</span><span class="special">,</span> <span class="identifier">test_container</span><span class="special">,</span> <span class="identifier">input_container</span><span class="special">;</span>
+ <span class="keyword">typename</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">emplace_function_gen</span><span class="special">&lt;</span><span class="identifier">Selector</span><span class="special">&gt;::</span><span class="identifier">type</span> <span class="identifier">emplacer</span><span class="special">;</span>
+ <span class="keyword">typename</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">push_range_function_gen</span><span class="special">&lt;</span><span class="identifier">Selector</span><span class="special">&gt;::</span><span class="identifier">type</span> <span class="identifier">range_pusher</span><span class="special">;</span>
+
+ <span class="identifier">emplacer</span><span class="special">[</span><span class="identifier">example_container</span><span class="special">]</span>
+ <span class="special">(</span><span class="string">"able"</span><span class="special">)(</span><span class="string">"fox"</span><span class="special">)(</span><span class="string">"easy"</span><span class="special">)(</span><span class="string">"baker"</span><span class="special">)(</span><span class="string">"charlie"</span><span class="special">)(</span><span class="string">"dog"</span><span class="special">);</span>
+ <span class="identifier">test_container</span> <span class="special">=</span> <span class="identifier">example_container</span><span class="special">;</span>
+ <span class="identifier">emplacer</span><span class="special">[</span><span class="identifier">example_container</span><span class="special">]</span>
+ <span class="special">(</span><span class="string">"able"</span><span class="special">)(</span><span class="string">"fox"</span><span class="special">)(</span><span class="string">"iota"</span><span class="special">)(</span><span class="string">"hotel"</span><span class="special">)(</span><span class="string">"jupiter"</span><span class="special">)(</span><span class="string">"dog"</span><span class="special">);</span>
+ <span class="identifier">emplacer</span><span class="special">[</span><span class="identifier">input_container</span><span class="special">]</span>
+ <span class="special">(</span><span class="string">"able"</span><span class="special">)(</span><span class="string">"fox"</span><span class="special">)(</span><span class="string">"iota"</span><span class="special">)(</span><span class="string">"hotel"</span><span class="special">)(</span><span class="string">"jupiter"</span><span class="special">)(</span><span class="string">"dog"</span><span class="special">);</span>
+
+ <span class="keyword">typename</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">insert_range_result_gen</span><span class="special">&lt;</span><span class="identifier">Selector</span><span class="special">,</span><span class="identifier">test_string</span><span class="special">&gt;::</span><span class="identifier">type</span>
+ <span class="identifier">push_range_result</span> <span class="special">=</span> <span class="identifier">range_pusher</span><span class="special">(</span><span class="identifier">test_container</span><span class="special">,</span> <span class="identifier">input_container</span><span class="special">);</span>
+
+ <span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+ <span class="identifier">test_result_range</span><span class="special">(</span>
+ <span class="identifier">push_range_result</span>
+ <span class="special">,</span> <span class="identifier">added_container</span>
+ <span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_associative_selector</span><span class="special">&lt;</span><span class="identifier">Selector</span><span class="special">&gt;()</span>
+ <span class="special">)</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">test_container</span><span class="special">,</span> <span class="identifier">example_container</span><span class="special">));</span>
+<span class="special">}</span>
+</pre>
+<p>
+ </p>
+<p>
+ Test this metafunction across a wide variety of selector types.
+ </p>
+<p>
+</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">boost</span><span class="special">::</span><span class="identifier">container_gen</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">dequeS</span><span class="special">,</span><span class="identifier">test_string</span><span class="special">&gt;::</span><span class="identifier">type</span> <span class="identifier">added_container</span><span class="special">;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">emplace_function_gen</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">dequeS</span><span class="special">&gt;::</span><span class="identifier">type</span> <span class="identifier">emplacer</span><span class="special">;</span>
+
+ <span class="identifier">emplacer</span><span class="special">[</span><span class="identifier">added_container</span><span class="special">]</span>
+ <span class="special">(</span><span class="string">"able"</span><span class="special">)(</span><span class="string">"fox"</span><span class="special">)(</span><span class="string">"iota"</span><span class="special">)(</span><span class="string">"hotel"</span><span class="special">)(</span><span class="string">"jupiter"</span><span class="special">)(</span><span class="string">"dog"</span><span class="special">);</span>
+ <span class="identifier">test_push_range_function_gen</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">vecS</span><span class="special">&gt;(</span><span class="identifier">added_container</span><span class="special">);</span>
+ <span class="identifier">test_push_range_function_gen</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">dequeS</span><span class="special">&gt;(</span><span class="identifier">added_container</span><span class="special">);</span>
+ <span class="identifier">test_push_range_function_gen</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">listS</span><span class="special">&gt;(</span><span class="identifier">added_container</span><span class="special">);</span>
+ <span class="comment">// ...</span>
+
+ <span class="keyword">return</span> <span class="number">0</span><span class="special">;</span>
+<span class="special">}</span>
+</pre>
+<p>
+ </p>
+<p>
+ The complete test program spans the following source files:
+ </p>
+<pre class="programlisting"><span class="special">*</span> <test/result_range.hpp>
+<span class="special">*</span> <test/push_range_function_gen.cpp>
+</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 &#169; 1997-2013 Andrew Lumsdaine, Lie-Quan Lee,
+ Thomas Claveirole, Jeremy G. Siek, Cromwell D. Enage<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="emplace_assoc_function_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="insert_range_function_gen.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/container_gen/libs/container_gen/doc/html/container_gen/reference/selectors.html
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ sandbox/container_gen/libs/container_gen/doc/html/container_gen/reference/selectors.html 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84957)
@@ -0,0 +1,1203 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Selectors</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&#160;1.&#160;container_gen 0.9">
+<link rel="up" href="../reference.html" title="Reference">
+<link rel="prev" href="../reference.html" title="Reference">
+<link rel="next" href="container_gen.html" title="container_gen">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr><td valign="top"><img alt="C++ Boost" width="277" height="86" src="../../../../../../boost.png"></td></tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../reference.html"><img src="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_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="container_gen.reference.selectors"></a><a class="link" href="selectors.html" title="Selectors">Selectors</a>
+</h3></div></div></div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="container_gen.reference.selectors.synopsis"></a><a class="link" href="selectors.html#container_gen.reference.selectors.synopsis" title="Synopsis">Synopsis</a>
+</h4></div></div></div>
+<p>
+ This library provides several selector templates, one for each STL Container model, Boost.Container, Boost.Unordered container, Boost.PointerContainer, STL container adaptor,
+ and Boost.Heap
+ data structure to which it corresponds.
+ </p>
+<p>
+</p>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+
+ <span class="keyword">template</span> <span class="special">&lt;</span>
+ <span class="keyword">typename</span> <span class="identifier">ConstantSize</span>
+ <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">IsTR1NotBoost</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">&gt;</span>
+ <span class="keyword">struct</span> <span class="identifier">array_selector</span><span class="special">;</span>
+
+ <span class="keyword">template</span> <span class="special">&lt;</span>
+ <span class="keyword">typename</span> <span class="identifier">AllocatorSelector</span> <span class="special">=</span> <span class="identifier">std_allocator_selector</span>
+ <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">IsBoostNotStd</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">&gt;</span>
+ <span class="keyword">struct</span> <span class="identifier">vector_selector</span><span class="special">;</span>
+
+ <span class="keyword">template</span> <span class="special">&lt;</span>
+ <span class="keyword">typename</span> <span class="identifier">AllocatorSelector</span> <span class="special">=</span> <span class="identifier">std_allocator_selector</span>
+ <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">IsBoostNotStd</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">&gt;</span>
+ <span class="keyword">struct</span> <span class="identifier">deque_selector</span><span class="special">;</span>
+
+ <span class="keyword">template</span> <span class="special">&lt;</span>
+ <span class="keyword">typename</span> <span class="identifier">AllocatorSelector</span> <span class="special">=</span> <span class="identifier">std_allocator_selector</span>
+ <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">IsBoostNotStd</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">&gt;</span>
+ <span class="keyword">struct</span> <span class="identifier">list_selector</span><span class="special">;</span>
+
+ <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">AllocatorSelector</span> <span class="special">=</span> <span class="identifier">std_allocator_selector</span><span class="special">&gt;</span>
+ <span class="keyword">struct</span> <span class="identifier">stable_vector_selector</span><span class="special">;</span>
+
+ <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">AllocatorSelector</span> <span class="special">=</span> <span class="identifier">std_allocator_selector</span><span class="special">&gt;</span>
+ <span class="keyword">struct</span> <span class="identifier">slist_selector</span><span class="special">;</span>
+
+ <span class="keyword">template</span> <span class="special">&lt;</span>
+ <span class="keyword">typename</span> <span class="identifier">CompareSelector</span> <span class="special">=</span> <span class="identifier">less_than_selector</span>
+ <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">AllocatorSelector</span> <span class="special">=</span> <span class="identifier">std_allocator_selector</span>
+ <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">IsBoostNotStd</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">&gt;</span>
+ <span class="keyword">struct</span> <span class="identifier">set_selector</span><span class="special">;</span>
+
+ <span class="keyword">template</span> <span class="special">&lt;</span>
+ <span class="keyword">typename</span> <span class="identifier">CompareSelector</span> <span class="special">=</span> <span class="identifier">less_than_selector</span>
+ <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">AllocatorSelector</span> <span class="special">=</span> <span class="identifier">std_allocator_selector</span>
+ <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">IsBoostNotStd</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">&gt;</span>
+ <span class="keyword">struct</span> <span class="identifier">map_selector</span><span class="special">;</span>
+
+ <span class="keyword">template</span> <span class="special">&lt;</span>
+ <span class="keyword">typename</span> <span class="identifier">CompareSelector</span> <span class="special">=</span> <span class="identifier">less_than_selector</span>
+ <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">AllocatorSelector</span> <span class="special">=</span> <span class="identifier">std_allocator_selector</span>
+ <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">IsBoostNotStd</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">&gt;</span>
+ <span class="keyword">struct</span> <span class="identifier">multiset_selector</span><span class="special">;</span>
+
+ <span class="keyword">template</span> <span class="special">&lt;</span>
+ <span class="keyword">typename</span> <span class="identifier">CompareSelector</span> <span class="special">=</span> <span class="identifier">less_than_selector</span>
+ <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">AllocatorSelector</span> <span class="special">=</span> <span class="identifier">std_allocator_selector</span>
+ <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">IsBoostNotStd</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">&gt;</span>
+ <span class="keyword">struct</span> <span class="identifier">multimap_selector</span><span class="special">;</span>
+
+ <span class="keyword">template</span> <span class="special">&lt;</span>
+ <span class="keyword">typename</span> <span class="identifier">CompareSelector</span> <span class="special">=</span> <span class="identifier">less_than_selector</span>
+ <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">AllocatorSelector</span> <span class="special">=</span> <span class="identifier">std_flat_allocator_selector</span>
+ <span class="special">&gt;</span>
+ <span class="keyword">struct</span> <span class="identifier">flat_set_selector</span><span class="special">;</span>
+
+ <span class="keyword">template</span> <span class="special">&lt;</span>
+ <span class="keyword">typename</span> <span class="identifier">CompareSelector</span> <span class="special">=</span> <span class="identifier">less_than_selector</span>
+ <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">AllocatorSelector</span> <span class="special">=</span> <span class="identifier">std_flat_allocator_selector</span>
+ <span class="special">&gt;</span>
+ <span class="keyword">struct</span> <span class="identifier">flat_map_selector</span><span class="special">;</span>
+
+ <span class="keyword">template</span> <span class="special">&lt;</span>
+ <span class="keyword">typename</span> <span class="identifier">CompareSelector</span> <span class="special">=</span> <span class="identifier">less_than_selector</span>
+ <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">AllocatorSelector</span> <span class="special">=</span> <span class="identifier">std_flat_allocator_selector</span>
+ <span class="special">&gt;</span>
+ <span class="keyword">struct</span> <span class="identifier">flat_multiset_selector</span><span class="special">;</span>
+
+ <span class="keyword">template</span> <span class="special">&lt;</span>
+ <span class="keyword">typename</span> <span class="identifier">CompareSelector</span> <span class="special">=</span> <span class="identifier">less_than_selector</span>
+ <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">AllocatorSelector</span> <span class="special">=</span> <span class="identifier">std_flat_allocator_selector</span>
+ <span class="special">&gt;</span>
+ <span class="keyword">struct</span> <span class="identifier">flat_multimap_selector</span><span class="special">;</span>
+
+ <span class="keyword">template</span> <span class="special">&lt;</span>
+ <span class="keyword">typename</span> <span class="identifier">HashSelector</span> <span class="special">=</span> <span class="identifier">boost_hash_selector</span>
+ <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">CompareSelector</span> <span class="special">=</span> <span class="identifier">equal_to_selector</span>
+ <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">AllocatorSelector</span> <span class="special">=</span> <span class="identifier">std_allocator_selector</span>
+ <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">IsTR1NotBoost</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">&gt;</span>
+ <span class="keyword">struct</span> <span class="identifier">hash_set_selector</span><span class="special">;</span>
+
+ <span class="keyword">template</span> <span class="special">&lt;</span>
+ <span class="keyword">typename</span> <span class="identifier">HashSelector</span> <span class="special">=</span> <span class="identifier">boost_hash_selector</span>
+ <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">CompareSelector</span> <span class="special">=</span> <span class="identifier">equal_to_selector</span>
+ <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">AllocatorSelector</span> <span class="special">=</span> <span class="identifier">std_allocator_selector</span>
+ <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">IsTR1NotBoost</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">&gt;</span>
+ <span class="keyword">struct</span> <span class="identifier">hash_map_selector</span><span class="special">;</span>
+
+ <span class="keyword">template</span> <span class="special">&lt;</span>
+ <span class="keyword">typename</span> <span class="identifier">HashSelector</span> <span class="special">=</span> <span class="identifier">boost_hash_selector</span>
+ <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">CompareSelector</span> <span class="special">=</span> <span class="identifier">equal_to_selector</span>
+ <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">AllocatorSelector</span> <span class="special">=</span> <span class="identifier">std_allocator_selector</span>
+ <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">IsTR1NotBoost</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">&gt;</span>
+ <span class="keyword">struct</span> <span class="identifier">hash_multiset_selector</span><span class="special">;</span>
+
+ <span class="keyword">template</span> <span class="special">&lt;</span>
+ <span class="keyword">typename</span> <span class="identifier">HashSelector</span> <span class="special">=</span> <span class="identifier">boost_hash_selector</span>
+ <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">CompareSelector</span> <span class="special">=</span> <span class="identifier">equal_to_selector</span>
+ <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">AllocatorSelector</span> <span class="special">=</span> <span class="identifier">std_allocator_selector</span>
+ <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">IsTR1NotBoost</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">&gt;</span>
+ <span class="keyword">struct</span> <span class="identifier">hash_multimap_selector</span><span class="special">;</span>
+
+ <span class="keyword">template</span> <span class="special">&lt;</span>
+ <span class="keyword">typename</span> <span class="identifier">ConstantSize</span>
+ <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">CloneAllocator</span> <span class="special">=</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">heap_clone_allocator</span>
+ <span class="special">&gt;</span>
+ <span class="keyword">struct</span> <span class="identifier">ptr_array_selector</span><span class="special">;</span>
+
+ <span class="keyword">template</span> <span class="special">&lt;</span>
+ <span class="keyword">typename</span> <span class="identifier">CloneAllocator</span> <span class="special">=</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">heap_clone_allocator</span>
+ <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Allocator</span> <span class="special">=</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">allocator</span><span class="special">&lt;</span><span class="keyword">void</span><span class="special">*&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="keyword">struct</span> <span class="identifier">ptr_vector_selector</span><span class="special">;</span>
+
+ <span class="keyword">template</span> <span class="special">&lt;</span>
+ <span class="keyword">typename</span> <span class="identifier">CloneAllocator</span> <span class="special">=</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">heap_clone_allocator</span>
+ <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Allocator</span> <span class="special">=</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">allocator</span><span class="special">&lt;</span><span class="keyword">void</span><span class="special">*&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="keyword">struct</span> <span class="identifier">ptr_deque_selector</span><span class="special">;</span>
+
+ <span class="keyword">template</span> <span class="special">&lt;</span>
+ <span class="keyword">typename</span> <span class="identifier">CloneAllocator</span> <span class="special">=</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">heap_clone_allocator</span>
+ <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Allocator</span> <span class="special">=</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">allocator</span><span class="special">&lt;</span><span class="keyword">void</span><span class="special">*&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="keyword">struct</span> <span class="identifier">ptr_list_selector</span><span class="special">;</span>
+
+ <span class="keyword">template</span> <span class="special">&lt;</span>
+ <span class="keyword">typename</span> <span class="identifier">CompareSelector</span> <span class="special">=</span> <span class="identifier">less_than_selector</span>
+ <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">CloneAllocator</span> <span class="special">=</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">heap_clone_allocator</span>
+ <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Allocator</span> <span class="special">=</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">allocator</span><span class="special">&lt;</span><span class="keyword">void</span><span class="special">*&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="keyword">struct</span> <span class="identifier">ptr_set_selector</span><span class="special">;</span>
+
+ <span class="keyword">template</span> <span class="special">&lt;</span>
+ <span class="keyword">typename</span> <span class="identifier">CompareSelector</span> <span class="special">=</span> <span class="identifier">less_than_selector</span>
+ <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">CloneAllocator</span> <span class="special">=</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">heap_clone_allocator</span>
+ <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Allocator</span> <span class="special">=</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">allocator</span><span class="special">&lt;</span><span class="keyword">void</span><span class="special">*&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="keyword">struct</span> <span class="identifier">ptr_map_selector</span><span class="special">;</span>
+
+ <span class="keyword">template</span> <span class="special">&lt;</span>
+ <span class="keyword">typename</span> <span class="identifier">CompareSelector</span> <span class="special">=</span> <span class="identifier">less_than_selector</span>
+ <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">CloneAllocator</span> <span class="special">=</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">heap_clone_allocator</span>
+ <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Allocator</span> <span class="special">=</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">allocator</span><span class="special">&lt;</span><span class="keyword">void</span><span class="special">*&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="keyword">struct</span> <span class="identifier">ptr_multiset_selector</span><span class="special">;</span>
+
+ <span class="keyword">template</span> <span class="special">&lt;</span>
+ <span class="keyword">typename</span> <span class="identifier">CompareSelector</span> <span class="special">=</span> <span class="identifier">less_than_selector</span>
+ <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">CloneAllocator</span> <span class="special">=</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">heap_clone_allocator</span>
+ <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Allocator</span> <span class="special">=</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">allocator</span><span class="special">&lt;</span><span class="keyword">void</span><span class="special">*&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="keyword">struct</span> <span class="identifier">ptr_multimap_selector</span><span class="special">;</span>
+
+ <span class="keyword">template</span> <span class="special">&lt;</span>
+ <span class="keyword">typename</span> <span class="identifier">HashSelector</span> <span class="special">=</span> <span class="identifier">boost_hash_selector</span>
+ <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">CompareSelector</span> <span class="special">=</span> <span class="identifier">equal_to_selector</span>
+ <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">CloneAllocator</span> <span class="special">=</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">heap_clone_allocator</span>
+ <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Allocator</span> <span class="special">=</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">allocator</span><span class="special">&lt;</span><span class="keyword">void</span><span class="special">*&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="keyword">struct</span> <span class="identifier">ptr_hash_set_selector</span><span class="special">;</span>
+
+ <span class="keyword">template</span> <span class="special">&lt;</span>
+ <span class="keyword">typename</span> <span class="identifier">HashSelector</span> <span class="special">=</span> <span class="identifier">boost_hash_selector</span>
+ <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">CompareSelector</span> <span class="special">=</span> <span class="identifier">equal_to_selector</span>
+ <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">CloneAllocator</span> <span class="special">=</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">heap_clone_allocator</span>
+ <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Allocator</span> <span class="special">=</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">allocator</span><span class="special">&lt;</span><span class="keyword">void</span><span class="special">*&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="keyword">struct</span> <span class="identifier">ptr_hash_map_selector</span><span class="special">;</span>
+
+ <span class="keyword">template</span> <span class="special">&lt;</span>
+ <span class="keyword">typename</span> <span class="identifier">HashSelector</span> <span class="special">=</span> <span class="identifier">boost_hash_selector</span>
+ <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">CompareSelector</span> <span class="special">=</span> <span class="identifier">equal_to_selector</span>
+ <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">CloneAllocator</span> <span class="special">=</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">heap_clone_allocator</span>
+ <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Allocator</span> <span class="special">=</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">allocator</span><span class="special">&lt;</span><span class="keyword">void</span><span class="special">*&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="keyword">struct</span> <span class="identifier">ptr_hash_multiset_selector</span><span class="special">;</span>
+
+ <span class="keyword">template</span> <span class="special">&lt;</span>
+ <span class="keyword">typename</span> <span class="identifier">HashSelector</span> <span class="special">=</span> <span class="identifier">boost_hash_selector</span>
+ <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">CompareSelector</span> <span class="special">=</span> <span class="identifier">equal_to_selector</span>
+ <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">CloneAllocator</span> <span class="special">=</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">heap_clone_allocator</span>
+ <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Allocator</span> <span class="special">=</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">allocator</span><span class="special">&lt;</span><span class="keyword">void</span><span class="special">*&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="keyword">struct</span> <span class="identifier">ptr_hash_multimap_selector</span><span class="special">;</span>
+
+ <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">SequenceSelector</span> <span class="special">=</span> <span class="identifier">deque_selector</span><span class="special">&lt;&gt;</span> <span class="special">&gt;</span>
+ <span class="keyword">struct</span> <span class="identifier">stack_selector</span><span class="special">;</span>
+
+ <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">SequenceSelector</span> <span class="special">=</span> <span class="identifier">deque_selector</span><span class="special">&lt;&gt;</span> <span class="special">&gt;</span>
+ <span class="keyword">struct</span> <span class="identifier">queue_selector</span><span class="special">;</span>
+
+ <span class="keyword">template</span> <span class="special">&lt;</span>
+ <span class="keyword">typename</span> <span class="identifier">CompareSelector</span> <span class="special">=</span> <span class="identifier">less_than_selector</span>
+ <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">SequenceSelector</span> <span class="special">=</span> <span class="identifier">deque_selector</span><span class="special">&lt;&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="keyword">struct</span> <span class="identifier">std_heap_selector</span><span class="special">;</span>
+
+ <span class="keyword">template</span> <span class="special">&lt;</span>
+ <span class="keyword">typename</span> <span class="identifier">CompareSelector</span> <span class="special">=</span> <span class="identifier">less_than_selector</span>
+ <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">AllocatorSelector</span> <span class="special">=</span> <span class="identifier">std_allocator_selector</span>
+ <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">IsStable</span> <span class="special">=</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">heap</span><span class="special">::</span><span class="identifier">stable</span><span class="special">&lt;</span><span class="keyword">false</span><span class="special">&gt;</span>
+ <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">StabilityCounterType</span> <span class="special">=</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">heap</span><span class="special">::</span><span class="identifier">stability_counter_type</span><span class="special">&lt;</span>
+ <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">uintmax_t</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="keyword">struct</span> <span class="identifier">priority_queue_selector</span><span class="special">;</span>
+
+ <span class="keyword">template</span> <span class="special">&lt;</span>
+ <span class="keyword">typename</span> <span class="identifier">Arity</span>
+ <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">CompareSelector</span> <span class="special">=</span> <span class="identifier">less_than_selector</span>
+ <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">AllocatorSelector</span> <span class="special">=</span> <span class="identifier">std_allocator_selector</span>
+ <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">IsStable</span> <span class="special">=</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">heap</span><span class="special">::</span><span class="identifier">stable</span><span class="special">&lt;</span><span class="keyword">false</span><span class="special">&gt;</span>
+ <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">StabilityCounterType</span> <span class="special">=</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">heap</span><span class="special">::</span><span class="identifier">stability_counter_type</span><span class="special">&lt;</span>
+ <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">uintmax_t</span>
+ <span class="special">&gt;</span>
+ <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">IsMutable</span> <span class="special">=</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">heap</span><span class="special">::</span><span class="identifier">mutable_</span><span class="special">&lt;</span><span class="keyword">false</span><span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="keyword">struct</span> <span class="identifier">d_ary_heap_selector</span><span class="special">;</span>
+
+ <span class="keyword">template</span> <span class="special">&lt;</span>
+ <span class="keyword">typename</span> <span class="identifier">CompareSelector</span> <span class="special">=</span> <span class="identifier">less_than_selector</span>
+ <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">AllocatorSelector</span> <span class="special">=</span> <span class="identifier">std_allocator_selector</span>
+ <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">IsStable</span> <span class="special">=</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">heap</span><span class="special">::</span><span class="identifier">stable</span><span class="special">&lt;</span><span class="keyword">false</span><span class="special">&gt;</span>
+ <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">StabilityCounterType</span> <span class="special">=</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">heap</span><span class="special">::</span><span class="identifier">stability_counter_type</span><span class="special">&lt;</span>
+ <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">uintmax_t</span>
+ <span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="keyword">struct</span> <span class="identifier">binomial_heap_selector</span><span class="special">;</span>
+
+ <span class="keyword">template</span> <span class="special">&lt;</span>
+ <span class="keyword">typename</span> <span class="identifier">CompareSelector</span> <span class="special">=</span> <span class="identifier">less_than_selector</span>
+ <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">AllocatorSelector</span> <span class="special">=</span> <span class="identifier">std_allocator_selector</span>
+ <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">IsStable</span> <span class="special">=</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">heap</span><span class="special">::</span><span class="identifier">stable</span><span class="special">&lt;</span><span class="keyword">false</span><span class="special">&gt;</span>
+ <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">StabilityCounterType</span> <span class="special">=</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">heap</span><span class="special">::</span><span class="identifier">stability_counter_type</span><span class="special">&lt;</span>
+ <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">uintmax_t</span>
+ <span class="special">&gt;</span>
+ <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">ConstantTimeSize</span> <span class="special">=</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">heap</span><span class="special">::</span><span class="identifier">constant_time_size</span><span class="special">&lt;</span><span class="keyword">true</span><span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="keyword">struct</span> <span class="identifier">fibonacci_heap_selector</span><span class="special">;</span>
+
+ <span class="keyword">template</span> <span class="special">&lt;</span>
+ <span class="keyword">typename</span> <span class="identifier">CompareSelector</span> <span class="special">=</span> <span class="identifier">less_than_selector</span>
+ <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">AllocatorSelector</span> <span class="special">=</span> <span class="identifier">std_allocator_selector</span>
+ <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">IsStable</span> <span class="special">=</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">heap</span><span class="special">::</span><span class="identifier">stable</span><span class="special">&lt;</span><span class="keyword">false</span><span class="special">&gt;</span>
+ <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">StabilityCounterType</span> <span class="special">=</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">heap</span><span class="special">::</span><span class="identifier">stability_counter_type</span><span class="special">&lt;</span>
+ <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">uintmax_t</span>
+ <span class="special">&gt;</span>
+ <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">ConstantTimeSize</span> <span class="special">=</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">heap</span><span class="special">::</span><span class="identifier">constant_time_size</span><span class="special">&lt;</span><span class="keyword">true</span><span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="keyword">struct</span> <span class="identifier">pairing_heap_selector</span><span class="special">;</span>
+
+ <span class="keyword">template</span> <span class="special">&lt;</span>
+ <span class="keyword">typename</span> <span class="identifier">CompareSelector</span> <span class="special">=</span> <span class="identifier">less_than_selector</span>
+ <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">AllocatorSelector</span> <span class="special">=</span> <span class="identifier">std_allocator_selector</span>
+ <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">IsStable</span> <span class="special">=</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">heap</span><span class="special">::</span><span class="identifier">stable</span><span class="special">&lt;</span><span class="keyword">false</span><span class="special">&gt;</span>
+ <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">StoresParentPointer</span> <span class="special">=</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">heap</span><span class="special">::</span><span class="identifier">store_parent_pointer</span><span class="special">&lt;</span>
+ <span class="keyword">false</span>
+ <span class="special">&gt;</span>
+ <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">StabilityCounterType</span> <span class="special">=</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">heap</span><span class="special">::</span><span class="identifier">stability_counter_type</span><span class="special">&lt;</span>
+ <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">uintmax_t</span>
+ <span class="special">&gt;</span>
+ <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">ConstantTimeSize</span> <span class="special">=</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">heap</span><span class="special">::</span><span class="identifier">constant_time_size</span><span class="special">&lt;</span><span class="keyword">true</span><span class="special">&gt;</span>
+ <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">IsMutable</span> <span class="special">=</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">heap</span><span class="special">::</span><span class="identifier">mutable_</span><span class="special">&lt;</span><span class="keyword">false</span><span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="keyword">struct</span> <span class="identifier">skew_heap_selector</span><span class="special">;</span>
+<span class="special">}</span> <span class="comment">// namespace boost</span>
+</pre>
+<p>
+ </p>
+<p>
+ In turn, some of the default arguments of these selector templates are
+ themselves selector types.
+ </p>
+<p>
+</p>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+
+ <span class="keyword">struct</span> <span class="identifier">equal_to_selector</span>
+ <span class="special">{</span>
+ <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span>
+ <span class="keyword">struct</span> <span class="identifier">apply</span>
+ <span class="special">{</span>
+ <span class="keyword">typedef</span> <span class="comment">// implementation_defined</span>
+ <span class="identifier">type</span><span class="special">;</span>
+ <span class="special">};</span>
+ <span class="special">};</span>
+
+ <span class="keyword">struct</span> <span class="identifier">less_than_selector</span>
+ <span class="special">{</span>
+ <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span>
+ <span class="keyword">struct</span> <span class="identifier">apply</span>
+ <span class="special">{</span>
+ <span class="keyword">typedef</span> <span class="comment">// implementation_defined</span>
+ <span class="identifier">type</span><span class="special">;</span>
+ <span class="special">};</span>
+ <span class="special">};</span>
+
+ <span class="keyword">struct</span> <span class="identifier">greater_than_selector</span>
+ <span class="special">{</span>
+ <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span>
+ <span class="keyword">struct</span> <span class="identifier">apply</span>
+ <span class="special">{</span>
+ <span class="keyword">typedef</span> <span class="comment">// implementation_defined</span>
+ <span class="identifier">type</span><span class="special">;</span>
+ <span class="special">};</span>
+ <span class="special">};</span>
+
+ <span class="keyword">struct</span> <span class="identifier">binary_predicate_selector</span>
+ <span class="special">{</span>
+ <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span>
+ <span class="keyword">struct</span> <span class="identifier">apply</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">function2</span><span class="special">&lt;</span><span class="keyword">bool</span><span class="special">,</span><span class="identifier">T</span> <span class="keyword">const</span><span class="special">&amp;,</span><span class="identifier">T</span> <span class="keyword">const</span><span class="special">&amp;&gt;</span> <span class="identifier">type</span><span class="special">;</span>
+ <span class="special">};</span>
+ <span class="special">};</span>
+
+ <span class="keyword">struct</span> <span class="identifier">tr1_binary_predicate_selector</span>
+ <span class="special">{</span>
+ <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span>
+ <span class="keyword">struct</span> <span class="identifier">apply</span>
+ <span class="special">{</span>
+ <span class="keyword">typedef</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">tr1</span><span class="special">::</span><span class="identifier">function</span><span class="special">&lt;</span><span class="keyword">bool</span><span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span><span class="special">&amp;,</span><span class="identifier">T</span> <span class="keyword">const</span><span class="special">&amp;)&gt;</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">&lt;</span><span class="keyword">typename</span> <span class="identifier">CompareSelector</span><span class="special">&gt;</span>
+ <span class="keyword">struct</span> <span class="identifier">equivalence_selector</span>
+ <span class="special">{</span>
+ <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span>
+ <span class="keyword">struct</span> <span class="identifier">apply</span>
+ <span class="special">:</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">equivalence_function_gen</span><span class="special">&lt;</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">&lt;</span><span class="identifier">CompareSelector</span><span class="special">,</span><span class="identifier">T</span><span class="special">&gt;::</span><span class="identifier">type</span>
+ <span class="special">&gt;</span>
+ <span class="special">{</span>
+ <span class="special">};</span>
+ <span class="special">};</span>
+
+ <span class="keyword">struct</span> <span class="identifier">boost_hash_selector</span>
+ <span class="special">{</span>
+ <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span>
+ <span class="keyword">struct</span> <span class="identifier">apply</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">hash</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">type</span><span class="special">;</span>
+ <span class="special">};</span>
+ <span class="special">};</span>
+
+ <span class="keyword">struct</span> <span class="identifier">tr1_hash_selector</span>
+ <span class="special">{</span>
+ <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span>
+ <span class="keyword">struct</span> <span class="identifier">apply</span>
+ <span class="special">{</span>
+ <span class="keyword">typedef</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">tr1</span><span class="special">::</span><span class="identifier">hash</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">type</span><span class="special">;</span>
+ <span class="special">};</span>
+ <span class="special">};</span>
+
+ <span class="keyword">struct</span> <span class="identifier">std_allocator_selector</span>
+ <span class="special">{</span>
+ <span class="keyword">template</span> <span class="special">&lt;</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">&gt;</span>
+ <span class="keyword">struct</span> <span class="identifier">apply</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">&lt;</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">&lt;</span><span class="identifier">T2</span><span class="special">&gt;</span>
+ <span class="special">,</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">allocator</span><span class="special">&lt;</span><span class="identifier">T1</span><span class="special">&gt;</span>
+ <span class="special">,</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">allocator</span><span class="special">&lt;</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special">&lt;</span><span class="identifier">T1</span> <span class="keyword">const</span><span class="special">,</span><span class="identifier">T2</span><span class="special">&gt;</span> <span class="special">&gt;</span>
+ <span class="special">&gt;::</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="keyword">struct</span> <span class="identifier">std_flat_allocator_selector</span>
+ <span class="special">{</span>
+ <span class="keyword">template</span> <span class="special">&lt;</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">&gt;</span>
+ <span class="keyword">struct</span> <span class="identifier">apply</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">&lt;</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">&lt;</span><span class="identifier">T2</span><span class="special">&gt;</span>
+ <span class="special">,</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">allocator</span><span class="special">&lt;</span><span class="identifier">T1</span><span class="special">&gt;</span>
+ <span class="special">,</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">allocator</span><span class="special">&lt;</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special">&lt;</span><span class="identifier">T1</span><span class="special">,</span><span class="identifier">T2</span><span class="special">&gt;</span> <span class="special">&gt;</span>
+ <span class="special">&gt;::</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="special">}</span> <span class="comment">// namespace boost</span>
+</pre>
+<p>
+ </p>
+<p>
+ To instantiate a model of Associative Container that stores C-style
+ strings as keys, pass the appropriate one of these types as the <code class="computeroutput"><span class="identifier">CompareSelector</span></code> argument to the corresponding
+ container selector template.
+ </p>
+<p>
+</p>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+
+ <span class="keyword">struct</span> <span class="identifier">c_str_equal_to_selector</span>
+ <span class="special">{</span>
+ <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</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">inline</span> <span class="keyword">static</span> <span class="keyword">bool</span>
+ <span class="identifier">_evaluate</span><span class="special">(</span>
+ <span class="identifier">T</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">lhs</span>
+ <span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">rhs</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">true_type</span>
+ <span class="special">)</span>
+ <span class="special">{</span>
+ <span class="keyword">return</span> <span class="special">!</span><span class="identifier">strcmp</span><span class="special">(</span><span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">rhs</span><span class="special">);</span>
+ <span class="special">}</span>
+
+ <span class="keyword">inline</span> <span class="keyword">static</span> <span class="keyword">bool</span>
+ <span class="identifier">_evaluate</span><span class="special">(</span>
+ <span class="identifier">T</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">lhs</span>
+ <span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">rhs</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">false_type</span>
+ <span class="special">)</span>
+ <span class="special">{</span>
+ <span class="keyword">return</span> <span class="special">!</span><span class="identifier">wcscmp</span><span class="special">(</span><span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">rhs</span><span class="special">);</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">typedef</span> <span class="identifier">T</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">first_argument_type</span><span class="special">;</span>
+ <span class="keyword">typedef</span> <span class="identifier">T</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">second_argument_type</span><span class="special">;</span>
+
+ <span class="keyword">inline</span> <span class="keyword">bool</span> <span class="keyword">operator</span><span class="special">()(</span><span class="identifier">T</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">)</span> <span class="keyword">const</span>
+ <span class="special">{</span>
+ <span class="keyword">return</span> <span class="identifier">type</span><span class="special">::</span><span class="identifier">_evaluate</span><span class="special">(</span>
+ <span class="identifier">lhs</span>
+ <span class="special">,</span> <span class="identifier">rhs</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">&lt;</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_cv</span><span class="special">&lt;</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_pointer</span><span class="special">&lt;</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_extent</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;::</span><span class="identifier">type</span>
+ <span class="special">&gt;::</span><span class="identifier">type</span>
+ <span class="special">&gt;::</span><span class="identifier">type</span>
+ <span class="special">,</span> <span class="keyword">char</span>
+ <span class="special">&gt;()</span>
+ <span class="special">);</span>
+ <span class="special">}</span>
+ <span class="special">};</span>
+ <span class="special">};</span>
+ <span class="special">};</span>
+
+ <span class="keyword">struct</span> <span class="identifier">c_str_less_than_selector</span>
+ <span class="special">{</span>
+ <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</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">inline</span> <span class="keyword">static</span> <span class="keyword">bool</span>
+ <span class="identifier">_evaluate</span><span class="special">(</span>
+ <span class="identifier">T</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">lhs</span>
+ <span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">rhs</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">true_type</span>
+ <span class="special">)</span>
+ <span class="special">{</span>
+ <span class="keyword">return</span> <span class="identifier">strcmp</span><span class="special">(</span><span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">rhs</span><span class="special">)</span> <span class="special">&lt;</span> <span class="number">0</span><span class="special">;</span>
+ <span class="special">}</span>
+
+ <span class="keyword">inline</span> <span class="keyword">static</span> <span class="keyword">bool</span>
+ <span class="identifier">_evaluate</span><span class="special">(</span>
+ <span class="identifier">T</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">lhs</span>
+ <span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">rhs</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">false_type</span>
+ <span class="special">)</span>
+ <span class="special">{</span>
+ <span class="keyword">return</span> <span class="identifier">wcscmp</span><span class="special">(</span><span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">rhs</span><span class="special">)</span> <span class="special">&lt;</span> <span class="number">0</span><span class="special">;</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">typedef</span> <span class="identifier">T</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">first_argument_type</span><span class="special">;</span>
+ <span class="keyword">typedef</span> <span class="identifier">T</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">second_argument_type</span><span class="special">;</span>
+
+ <span class="keyword">inline</span> <span class="keyword">bool</span> <span class="keyword">operator</span><span class="special">()(</span><span class="identifier">T</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">)</span> <span class="keyword">const</span>
+ <span class="special">{</span>
+ <span class="keyword">return</span> <span class="identifier">type</span><span class="special">::</span><span class="identifier">_evaluate</span><span class="special">(</span>
+ <span class="identifier">lhs</span>
+ <span class="special">,</span> <span class="identifier">rhs</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">&lt;</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_cv</span><span class="special">&lt;</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_pointer</span><span class="special">&lt;</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_extent</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;::</span><span class="identifier">type</span>
+ <span class="special">&gt;::</span><span class="identifier">type</span>
+ <span class="special">&gt;::</span><span class="identifier">type</span>
+ <span class="special">,</span> <span class="keyword">char</span>
+ <span class="special">&gt;()</span>
+ <span class="special">);</span>
+ <span class="special">}</span>
+ <span class="special">};</span>
+ <span class="special">};</span>
+ <span class="special">};</span>
+
+ <span class="keyword">struct</span> <span class="identifier">c_str_greater_than_selector</span>
+ <span class="special">{</span>
+ <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</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">inline</span> <span class="keyword">static</span> <span class="keyword">bool</span>
+ <span class="identifier">_evaluate</span><span class="special">(</span>
+ <span class="identifier">T</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">lhs</span>
+ <span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">rhs</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">true_type</span>
+ <span class="special">)</span>
+ <span class="special">{</span>
+ <span class="keyword">return</span> <span class="number">0</span> <span class="special">&lt;</span> <span class="identifier">strcmp</span><span class="special">(</span><span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">rhs</span><span class="special">);</span>
+ <span class="special">}</span>
+
+ <span class="keyword">inline</span> <span class="keyword">static</span> <span class="keyword">bool</span>
+ <span class="identifier">_evaluate</span><span class="special">(</span>
+ <span class="identifier">T</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">lhs</span>
+ <span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">rhs</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">false_type</span>
+ <span class="special">)</span>
+ <span class="special">{</span>
+ <span class="keyword">return</span> <span class="number">0</span> <span class="special">&lt;</span> <span class="identifier">wcscmp</span><span class="special">(</span><span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">rhs</span><span class="special">);</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">typedef</span> <span class="identifier">T</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">first_argument_type</span><span class="special">;</span>
+ <span class="keyword">typedef</span> <span class="identifier">T</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">second_argument_type</span><span class="special">;</span>
+
+ <span class="keyword">inline</span> <span class="keyword">bool</span> <span class="keyword">operator</span><span class="special">()(</span><span class="identifier">T</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">)</span> <span class="keyword">const</span>
+ <span class="special">{</span>
+ <span class="keyword">return</span> <span class="identifier">type</span><span class="special">::</span><span class="identifier">_evaluate</span><span class="special">(</span>
+ <span class="identifier">lhs</span>
+ <span class="special">,</span> <span class="identifier">rhs</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">&lt;</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_cv</span><span class="special">&lt;</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_pointer</span><span class="special">&lt;</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_extent</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;::</span><span class="identifier">type</span>
+ <span class="special">&gt;::</span><span class="identifier">type</span>
+ <span class="special">&gt;::</span><span class="identifier">type</span>
+ <span class="special">,</span> <span class="keyword">char</span>
+ <span class="special">&gt;()</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="comment">// namespace boost</span>
+</pre>
+<p>
+ </p>
+<p>
+ This library also retains the old selector types and, for completeness,
+ provides type definitions of the selector templates with default arguments.
+ </p>
+<p>
+</p>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+
+ <span class="keyword">typedef</span> <span class="identifier">vector_selector</span><span class="special">&lt;&gt;</span> <span class="identifier">vecS</span><span class="special">;</span>
+ <span class="keyword">typedef</span> <span class="identifier">deque_selector</span><span class="special">&lt;&gt;</span> <span class="identifier">dequeS</span><span class="special">;</span>
+ <span class="keyword">typedef</span> <span class="identifier">list_selector</span><span class="special">&lt;&gt;</span> <span class="identifier">listS</span><span class="special">;</span>
+ <span class="keyword">typedef</span> <span class="identifier">slist_selector</span><span class="special">&lt;&gt;</span> <span class="identifier">slistS</span><span class="special">;</span>
+ <span class="keyword">typedef</span> <span class="identifier">set_selector</span><span class="special">&lt;&gt;</span> <span class="identifier">setS</span><span class="special">;</span>
+ <span class="keyword">typedef</span> <span class="identifier">map_selector</span><span class="special">&lt;&gt;</span> <span class="identifier">mapS</span><span class="special">;</span>
+ <span class="keyword">typedef</span> <span class="identifier">multiset_selector</span><span class="special">&lt;&gt;</span> <span class="identifier">multisetS</span><span class="special">;</span>
+ <span class="keyword">typedef</span> <span class="identifier">multimap_selector</span><span class="special">&lt;&gt;</span> <span class="identifier">multimapS</span><span class="special">;</span>
+ <span class="keyword">typedef</span> <span class="identifier">hash_set_selector</span><span class="special">&lt;&gt;</span> <span class="identifier">hash_setS</span><span class="special">;</span>
+ <span class="keyword">typedef</span> <span class="identifier">hash_map_selector</span><span class="special">&lt;&gt;</span> <span class="identifier">hash_mapS</span><span class="special">;</span>
+ <span class="keyword">typedef</span> <span class="identifier">hash_multiset_selector</span><span class="special">&lt;&gt;</span> <span class="identifier">hash_multisetS</span><span class="special">;</span>
+ <span class="keyword">typedef</span> <span class="identifier">hash_multimap_selector</span><span class="special">&lt;&gt;</span> <span class="identifier">hash_multimapS</span><span class="special">;</span>
+ <span class="keyword">typedef</span> <span class="identifier">ptr_vector_selector</span><span class="special">&lt;&gt;</span> <span class="identifier">ptr_vecS</span><span class="special">;</span>
+ <span class="keyword">typedef</span> <span class="identifier">ptr_deque_selector</span><span class="special">&lt;&gt;</span> <span class="identifier">ptr_dequeS</span><span class="special">;</span>
+ <span class="keyword">typedef</span> <span class="identifier">ptr_list_selector</span><span class="special">&lt;&gt;</span> <span class="identifier">ptr_listS</span><span class="special">;</span>
+ <span class="keyword">typedef</span> <span class="identifier">ptr_set_selector</span><span class="special">&lt;&gt;</span> <span class="identifier">ptr_setS</span><span class="special">;</span>
+ <span class="keyword">typedef</span> <span class="identifier">ptr_map_selector</span><span class="special">&lt;&gt;</span> <span class="identifier">ptr_mapS</span><span class="special">;</span>
+ <span class="keyword">typedef</span> <span class="identifier">ptr_multiset_selector</span><span class="special">&lt;&gt;</span> <span class="identifier">ptr_multisetS</span><span class="special">;</span>
+ <span class="keyword">typedef</span> <span class="identifier">ptr_multimap_selector</span><span class="special">&lt;&gt;</span> <span class="identifier">ptr_multimapS</span><span class="special">;</span>
+ <span class="keyword">typedef</span> <span class="identifier">ptr_hash_set_selector</span><span class="special">&lt;&gt;</span> <span class="identifier">ptr_hash_setS</span><span class="special">;</span>
+ <span class="keyword">typedef</span> <span class="identifier">ptr_hash_map_selector</span><span class="special">&lt;&gt;</span> <span class="identifier">ptr_hash_mapS</span><span class="special">;</span>
+ <span class="keyword">typedef</span> <span class="identifier">ptr_hash_multiset_selector</span><span class="special">&lt;&gt;</span> <span class="identifier">ptr_hash_multisetS</span><span class="special">;</span>
+ <span class="keyword">typedef</span> <span class="identifier">ptr_hash_multimap_selector</span><span class="special">&lt;&gt;</span> <span class="identifier">ptr_hash_multimapS</span><span class="special">;</span>
+ <span class="keyword">typedef</span> <span class="identifier">stable_vector_selector</span><span class="special">&lt;&gt;</span> <span class="identifier">stable_vecS</span><span class="special">;</span>
+ <span class="keyword">typedef</span> <span class="identifier">flat_set_selector</span><span class="special">&lt;&gt;</span> <span class="identifier">flat_setS</span><span class="special">;</span>
+ <span class="keyword">typedef</span> <span class="identifier">flat_map_selector</span><span class="special">&lt;&gt;</span> <span class="identifier">flat_mapS</span><span class="special">;</span>
+ <span class="keyword">typedef</span> <span class="identifier">flat_multiset_selector</span><span class="special">&lt;&gt;</span> <span class="identifier">flat_multisetS</span><span class="special">;</span>
+ <span class="keyword">typedef</span> <span class="identifier">flat_multimap_selector</span><span class="special">&lt;&gt;</span> <span class="identifier">flat_multimapS</span><span class="special">;</span>
+ <span class="keyword">typedef</span> <span class="identifier">stack_selector</span><span class="special">&lt;&gt;</span> <span class="identifier">stackS</span><span class="special">;</span>
+ <span class="keyword">typedef</span> <span class="identifier">queue_selector</span><span class="special">&lt;&gt;</span> <span class="identifier">queueS</span><span class="special">;</span>
+ <span class="keyword">typedef</span> <span class="identifier">std_heap_selector</span><span class="special">&lt;&gt;</span> <span class="identifier">std_heapS</span><span class="special">;</span>
+ <span class="keyword">typedef</span> <span class="identifier">priority_queue_selector</span><span class="special">&lt;&gt;</span> <span class="identifier">priority_queueS</span><span class="special">;</span>
+ <span class="keyword">typedef</span> <span class="identifier">binomial_heap_selector</span><span class="special">&lt;&gt;</span> <span class="identifier">binomial_heapS</span><span class="special">;</span>
+ <span class="keyword">typedef</span> <span class="identifier">fibonacci_heap_selector</span><span class="special">&lt;&gt;</span> <span class="identifier">fibonacci_heapS</span><span class="special">;</span>
+ <span class="keyword">typedef</span> <span class="identifier">pairing_heap_selector</span><span class="special">&lt;&gt;</span> <span class="identifier">pairing_heapS</span><span class="special">;</span>
+ <span class="keyword">typedef</span> <span class="identifier">skew_heap_selector</span><span class="special">&lt;&gt;</span> <span class="identifier">skew_heapS</span><span class="special">;</span>
+<span class="special">}</span> <span class="comment">// namespace boost</span>
+</pre>
+<p>
+ </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="container_gen.reference.selectors.description"></a><a class="link" href="selectors.html#container_gen.reference.selectors.description" title="Description">Description</a>
+</h4></div></div></div>
+<p>
+ Selector templates determine the return type of the <a class="link" href="container_gen.html" title="container_gen"><code class="computeroutput"><span class="identifier">container_gen</span></code></a> metafunction. Since
+ the container models are not templatized on just their value types, the
+ selector templates must take in analogous arguments in order to provide
+ maximum flexibility. The following example demonstrates how a std::list with a custom allocator
+ type can become the <code class="computeroutput"><span class="identifier">OutEdgeList</span></code>
+ of a boost::adjacency_list.
+ </p>
+<p>
+</p>
+<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">int_allocator_selector</span>
+<span class="special">{</span>
+ <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span>
+ <span class="keyword">struct</span> <span class="identifier">apply</span>
+ <span class="special">{</span>
+ <span class="keyword">typedef</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">allocator</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;</span> <span class="identifier">type</span><span class="special">;</span>
+ <span class="special">};</span>
+<span class="special">};</span>
+
+<span class="keyword">int</span> <span class="identifier">main</span><span class="special">(</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">char</span><span class="special">*[])</span>
+<span class="special">{</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">adjacency_list</span><span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">list_selector</span><span class="special">&lt;</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">int_allocator_selector</span><span class="special">&gt;</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">boost</span><span class="special">::</span><span class="identifier">directedS</span>
+ <span class="special">&gt;</span> <span class="identifier">g</span><span class="special">(</span><span class="number">5</span><span class="special">);</span>
+
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="identifier">boost</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</span><span class="special">(</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">vertex_index</span><span class="special">,</span> <span class="identifier">g</span><span class="special">)</span>
+ <span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">vertex</span><span class="special">(</span><span class="number">4</span><span class="special">,</span> <span class="identifier">g</span><span class="special">)</span>
+ <span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
+
+ <span class="keyword">return</span> <span class="number">0</span><span class="special">;</span>
+<span class="special">}</span>
+</pre>
+<p>
+ </p>
+<p>
+ Selector templates evaluate each parameter the same way, so the following
+ table will suffice in documenting the parameters. Note that fully qualified
+ template parameters must be explicitly named if required by the container
+ return type or when overriding the default argument type unless the table
+ specifies that the argument types to which they are bound can be deduced.
+ </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+ <p>
+ Parameter
+ </p>
+ </th>
+<th>
+ <p>
+ Boost.Parameter Name
+ </p>
+ </th>
+<th>
+ <p>
+ Description
+ </p>
+ </th>
+<th>
+ <p>
+ Deducible?
+ </p>
+ </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">ConstantSize</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">constant_size_arg</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ An Integral Constant that determines
+ the size of the boost::array or std::tr1::array type to be returned
+ by <a class="link" href="container_gen.html" title="container_gen"><code class="computeroutput"><span class="identifier">container_gen</span></code></a>.
+ </p>
+ </td>
+<td>
+ <p>
+ Yes, by boost::is_mpl_integral_constant.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">IsBoostNotStd</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_boost_not_std_arg</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ A Boolean Integral Constant that
+ determines whether <a class="link" href="container_gen.html" title="container_gen"><code class="computeroutput"><span class="identifier">container_gen</span></code></a> will return
+ the appropriate Boost.Container type or the corresponding
+ C++ standard container.
+ </p>
+ </td>
+<td>
+ <p>
+ Yes, by boost::is_mpl_boolean_constant.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">IsTR1NotBoost</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_tr1_not_boost_arg</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ A Boolean Integral Constant that
+ determines whether <a class="link" href="container_gen.html" title="container_gen"><code class="computeroutput"><span class="identifier">container_gen</span></code></a> will return
+ the appropriate Boost.TR1 container type or the
+ corresponding Boost container type.
+ </p>
+ </td>
+<td>
+ <p>
+ Yes, by boost::is_mpl_boolean_constant.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">AllocatorSelector</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">allocator_selector_arg</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ A Unary Metafunction Class that
+ takes in the value type and returns an allocator model. The return
+ type will become the container template's <code class="computeroutput"><span class="identifier">Allocator</span></code>
+ or boost::heap::allocator argument.
+ </p>
+ </td>
+<td>
+ <p>
+ Yes, by <a class="link" href="is_allocator_selector.html" title="is_allocator_selector"><code class="computeroutput"><span class="identifier">is_allocator_selector</span></code></a>.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">CompareSelector</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">compare_selector_arg</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ If the selector template causes <a class="link" href="container_gen.html" title="container_gen"><code class="computeroutput"><span class="identifier">container_gen</span></code></a> to return
+ a Sorted Associative Container model,
+ a std::priority_queue template
+ class, or a Boost.Heap
+ data structure, then a Unary Metafunction Class that
+ takes in the value type and returns a Strict Weak Ordering model. If
+ the selector template causes <a class="link" href="container_gen.html" title="container_gen"><code class="computeroutput"><span class="identifier">container_gen</span></code></a> to return
+ a Hashed Associative Container model,
+ then a Unary Metafunction Class that
+ takes in the value type and returns a Binary Predicate model. The return
+ type of the selector template will become the container template's
+ <code class="computeroutput"><span class="identifier">Compare</span></code>, <code class="computeroutput"><span class="identifier">Pred</span></code>, or boost::heap::compare argument.
+ </p>
+ <p>
+ If the selector template is <code class="computeroutput"><span class="identifier">equivalence_selector</span></code>,
+ then a Unary Metafunction Class that
+ takes in the argument type and returns a Strict Weak Ordering model. The
+ return type of <code class="computeroutput"><span class="identifier">equivalence_selector</span></code>
+ will be the same as that of boost::equivalence_function_gen
+ passed in the Strict Weak Ordering model.
+ </p>
+ <p>
+ By way of example, as discussed in the <a class="link" href="selectors.html#container_gen.reference.selectors.synopsis" title="Synopsis">synopsis</a>,
+ the <code class="computeroutput"><span class="identifier">c_str_equal_to_selector</span></code>
+ type can be passed as the <code class="computeroutput"><span class="identifier">CompareSelector</span></code>
+ argument to the <code class="computeroutput"><span class="identifier">hash_set_selector</span></code>
+ template, which in turn can be passed to <a class="link" href="container_gen.html" title="container_gen"><code class="computeroutput"><span class="identifier">container_gen</span></code></a> to return
+ a Hashed Associative Container model
+ that stores C-style strings as keys.
+ </p>
+ </td>
+<td>
+ <p>
+ Yes, by <a class="link" href="is_compare_selector.html" title="is_compare_selector"><code class="computeroutput"><span class="identifier">is_compare_selector</span></code></a>.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">HashSelector</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">hasher_selector_arg</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ A Unary Metafunction Class that
+ takes in the value type and returns a Hash Function model. The return
+ type will become the container template's <code class="computeroutput"><span class="identifier">Hash</span></code>
+ argument.
+ </p>
+ </td>
+<td>
+ <p>
+ Yes, by <a class="link" href="is_hasher_selector.html" title="is_hasher_selector"><code class="computeroutput"><span class="identifier">is_hasher_selector</span></code></a>.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">SequenceSelector</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">sequence_selector_arg</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ A Unary Metafunction Class that
+ takes in the value type and returns a Sequence model. The return type
+ will become the container adaptor template's <code class="computeroutput"><span class="identifier">Sequence</span></code>
+ argument.
+ </p>
+ </td>
+<td>
+ <p>
+ Yes, by <a class="link" href="is_container_selector.html" title="is_container_selector"><code class="computeroutput"><span class="identifier">is_container_selector</span></code></a>.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">CloneAllocator</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_clone_allocator_arg</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ A Clone Allocator model that will
+ become the container template's corresponding argument.
+ </p>
+ </td>
+<td>
+ <p>
+ Yes, as long as the BOOST_MPL_CFG_NO_HAS_XXX
+ preprocessor token is not defined.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">Allocator</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_allocator_arg</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ An allocator model that will become the container template's
+ corresponding argument.
+ </p>
+ </td>
+<td>
+ <p>
+ Yes, as long as the BOOST_MPL_CFG_NO_HAS_XXX
+ preprocessor token is not defined.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">IsStable</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ boost::heap::stable
+ </p>
+ </td>
+<td>
+ <p>
+ Causes <a class="link" href="container_gen.html" title="container_gen"><code class="computeroutput"><span class="identifier">container_gen</span></code></a> to return
+ a Boost.Heap
+ data structure that either orders elements with the same priority
+ according to insertion time or does not, depending on the value
+ of the boolean non-type template argument. The default value
+ is <code class="computeroutput"><span class="keyword">false</span></code>.
+ </p>
+ </td>
+<td>
+ <p>
+ No.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">IsMutable</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ boost::heap::mutable_
+ </p>
+ </td>
+<td>
+ <p>
+ Causes <a class="link" href="container_gen.html" title="container_gen"><code class="computeroutput"><span class="identifier">container_gen</span></code></a> to return
+ a Boost.Heap
+ data structure that either allows the priority of its elements
+ to be changed or does not, depending on the value of the boolean
+ non-type template argument. The default value is <code class="computeroutput"><span class="keyword">false</span></code>.
+ </p>
+ </td>
+<td>
+ <p>
+ No.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">StabilityCounterType</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ boost::heap::stability_counter_type
+ </p>
+ </td>
+<td>
+ <p>
+ Causes <a class="link" href="container_gen.html" title="container_gen"><code class="computeroutput"><span class="identifier">container_gen</span></code></a> to return
+ a Boost.Heap
+ data structure that associates an integer version count with
+ each element in order to distinguish between elements with the
+ same priority. The default type is <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">uintmax_t</span></code>.
+ </p>
+ </td>
+<td>
+ <p>
+ No.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">ConstantTimeSize</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ boost::heap::constant_time_size
+ </p>
+ </td>
+<td>
+ <p>
+ Causes <a class="link" href="container_gen.html" title="container_gen"><code class="computeroutput"><span class="identifier">container_gen</span></code></a> to return
+ a Boost.Heap
+ data structure whose <code class="computeroutput"><span class="identifier">size</span><span class="special">()</span></code> member function either has
+ constant time complexity or does not, depending on the value
+ of the boolean non-type template argument. The default value
+ is <code class="computeroutput"><span class="keyword">true</span></code>.
+ </p>
+ </td>
+<td>
+ <p>
+ No.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">Arity</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ boost::heap::arity
+ </p>
+ </td>
+<td>
+ <p>
+ Please consult the class reference of the Boost.Heap data structure which
+ the selector template will cause <a class="link" href="container_gen.html" title="container_gen"><code class="computeroutput"><span class="identifier">container_gen</span></code></a> to return.
+ </p>
+ </td>
+<td>
+ <p>
+ No.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">StoresParentPointer</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ boost::heap::store_parent_pointer
+ </p>
+ </td>
+<td>
+ <p>
+ Please consult the class reference of the Boost.Heap data structure which
+ the selector template will cause <a class="link" href="container_gen.html" title="container_gen"><code class="computeroutput"><span class="identifier">container_gen</span></code></a> to return.
+ </p>
+ </td>
+<td>
+ <p>
+ No.
+ </p>
+ </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="container_gen.reference.selectors.definition"></a><a class="link" href="selectors.html#container_gen.reference.selectors.definition" title="Where defined">Where
+ defined</a>
+</h4></div></div></div>
+<p>
+ C-style string comparator selectors:
+ </p>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span>boost/container_gen/c_str_cmp_selectors.hpp<span class="special">&gt;</span>
+</pre>
+<p>
+ </p>
+<p>
+ Forward declarations:
+ </p>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span>boost/container_gen/c_str_cmp_selectors_fwd.hpp<span class="special">&gt;</span>
+</pre>
+<p>
+ </p>
+<p>
+ To register them under Boost.Typeof:
+ </p>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span>boost/typeof/boost/container_gen/c_str_cmp_selectors.hpp<span class="special">&gt;</span>
+</pre>
+<p>
+ </p>
+<p>
+ All other selectors and selector templates:
+ </p>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span>boost/container_gen/selectors.hpp<span class="special">&gt;</span>
+</pre>
+<p>
+ </p>
+<p>
+ Forward declarations:
+ </p>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span>boost/container_gen/selectors_fwd.hpp<span class="special">&gt;</span>
+</pre>
+<p>
+ </p>
+<p>
+ To register them under Boost.Typeof:
+ </p>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span>boost/typeof/boost/container_gen/selectors.hpp<span class="special">&gt;</span>
+</pre>
+<p>
+ </p>
+</div>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright &#169; 1997-2013 Andrew Lumsdaine, Lie-Quan Lee,
+ Thomas Claveirole, Jeremy G. Siek, Cromwell D. Enage<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../reference.html"><img src="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_gen.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/container_gen/libs/container_gen/doc/html/container_gen/reference/splice_function_gen.html
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ sandbox/container_gen/libs/container_gen/doc/html/container_gen/reference/splice_function_gen.html 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84957)
@@ -0,0 +1,327 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>splice_function_gen</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&#160;1.&#160;container_gen 0.9">
+<link rel="up" href="../reference.html" title="Reference">
+<link rel="prev" href="insert_range_function_gen.html" title="insert_range_function_gen">
+<link rel="next" href="insert_range_result_gen.html" title="insert_range_result_gen">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr><td valign="top"><img alt="C++ Boost" width="277" height="86" src="../../../../../../boost.png"></td></tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="insert_range_function_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="insert_range_result_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="container_gen.reference.splice_function_gen"></a><a class="link" href="splice_function_gen.html" title="splice_function_gen"><code class="computeroutput"><span class="identifier">splice_function_gen</span></code></a>
+</h3></div></div></div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="container_gen.reference.splice_function_gen.synopsis"></a><a class="link" href="splice_function_gen.html#container_gen.reference.splice_function_gen.synopsis" title="Synopsis">Synopsis</a>
+</h4></div></div></div>
+<p>
+</p>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+
+ <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Selector</span><span class="special">&gt;</span>
+ <span class="keyword">struct</span> <span class="identifier">splice_function_gen</span>
+ <span class="special">{</span>
+ <span class="comment">// typedef ... type;</span>
+ <span class="special">};</span>
+
+<span class="special">}</span> <span class="comment">// namespace boost</span>
+</pre>
+<p>
+ </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="container_gen.reference.splice_function_gen.description"></a><a class="link" href="splice_function_gen.html#container_gen.reference.splice_function_gen.description" title="Description">Description</a>
+</h4></div></div></div>
+<p>
+ Returns a Default Constructible function object type
+ whose call operator will take in a reference to the destination container,
+ a valid iterator representing the point of insertion, a reference to the
+ source container, and one of the following:
+ </p>
+<pre class="programlisting"><span class="special">*</span> <span class="identifier">A</span> <span class="identifier">valid</span> <span class="identifier">iterator</span> <span class="identifier">representing</span> <span class="identifier">the</span> <span class="identifier">point</span> <span class="identifier">of</span> <span class="identifier">erasure</span> <span class="identifier">from</span> <span class="identifier">the</span> <span class="identifier">source</span>
+ <span class="identifier">container</span><span class="special">.</span>
+<span class="special">*</span> <span class="identifier">Two</span> Input Iterator <span class="identifier">arguments</span> <span class="identifier">representing</span> <span class="identifier">the</span> <span class="identifier">source</span> <span class="identifier">container</span> <span class="keyword">or</span> <span class="identifier">a</span>
+ <span class="identifier">subrange</span><span class="special">.</span>
+</pre>
+<p>
+ The container type must model the Sequence concept. In practice, the container
+ type must be produced by <a class="link" href="container_gen.html" title="container_gen"><code class="computeroutput"><span class="identifier">container_gen</span></code></a> when given the same
+ selector template argument.
+ </p>
+<p>
+ The function call operator that takes in a single iterator to the source
+ container will transfer that element to the destination container at the
+ specified point of insertion. The return value will be an iterator pointing
+ to the inserted element. If the points of insertion and erasure are the
+ same, then the operation will have no effect.
+ </p>
+<p>
+ The function call operators that take in a subrange of the source container
+ will transfer the elements in the subrange to the destination container
+ at the specified point of insertion. The return value will be a Single Pass Range over the elements inserted
+ in the container. The source and destination containers can be the same
+ as long as the point of insertion lies outside the subrange. (If the point
+ of insertion is at the beginning or just past-the-end of the subrange,
+ then the operation will have no effect.)
+ </p>
+<p>
+ The return type of this metafunction also defines an indexing operator
+ that accepts a reference to a container and returns a proxy object that
+ allows splice function calls to be chained together, much like Boost.Assign.
+ </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="container_gen.reference.splice_function_gen.definition"></a><a class="link" href="splice_function_gen.html#container_gen.reference.splice_function_gen.definition" title="Where defined">Where
+ defined</a>
+</h4></div></div></div>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span>boost/container_gen/splice_function_gen.hpp<span class="special">&gt;</span>
+</pre>
+<p>
+ </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="container_gen.reference.splice_function_gen.example"></a><a class="link" href="splice_function_gen.html#container_gen.reference.splice_function_gen.example" title="Example">Example</a>
+</h4></div></div></div>
+<p>
+ Use the boost::range::equal()
+ algorithm to test two ranges for equality.
+ </p>
+<p>
+</p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">ResultRange</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">AddedContainer</span><span class="special">&gt;</span>
+<span class="keyword">bool</span>
+ <span class="identifier">test_result_range</span><span class="special">(</span>
+ <span class="identifier">ResultRange</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">r</span>
+ <span class="special">,</span> <span class="identifier">AddedContainer</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">c</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="keyword">return</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">boost</span><span class="special">::</span><span class="identifier">adaptors</span><span class="special">::</span><span class="identifier">indirect</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span> <span class="identifier">c</span><span class="special">);</span>
+<span class="special">}</span>
+
+<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">ResultRange</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">AddedContainer</span><span class="special">&gt;</span>
+<span class="keyword">bool</span>
+ <span class="identifier">test_result_range</span><span class="special">(</span>
+ <span class="identifier">ResultRange</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">r</span>
+ <span class="special">,</span> <span class="identifier">AddedContainer</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">c</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">return</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">r</span><span class="special">,</span> <span class="identifier">c</span><span class="special">);</span>
+<span class="special">}</span>
+</pre>
+<p>
+ </p>
+<p>
+ Use the <a class="link" href="emplace_function_gen.html" title="emplace_function_gen"><code class="computeroutput"><span class="identifier">emplace_function_gen</span></code></a> metafunction
+ to construct containers using individual elements, then use this metafunction
+ to append the elements of one container to another in a single step. Use
+ the <a class="link" href="insert_range_result_gen.html" title="insert_range_result_gen"><code class="computeroutput"><span class="identifier">insert_range_result_gen</span></code></a> metafunction
+ to store the result of the operation.
+ </p>
+<p>
+</p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Selector</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">AddedContainer</span><span class="special">&gt;</span>
+<span class="keyword">void</span> <span class="identifier">test_splice_function_gen</span><span class="special">(</span><span class="identifier">AddedContainer</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">added_container</span><span class="special">)</span>
+<span class="special">{</span>
+ <span class="identifier">test_splice_function_gen_in_place</span><span class="special">(</span><span class="identifier">Selector</span><span class="special">());</span>
+
+ <span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">container_gen</span><span class="special">&lt;</span><span class="identifier">Selector</span><span class="special">,</span><span class="identifier">test_string</span><span class="special">&gt;::</span><span class="identifier">type</span> <span class="identifier">C</span><span class="special">;</span>
+
+ <span class="identifier">C</span> <span class="identifier">ex_seq_1</span><span class="special">,</span> <span class="identifier">ex_seq_2</span><span class="special">,</span> <span class="identifier">test_seq_1</span><span class="special">,</span> <span class="identifier">test_seq_2</span><span class="special">,</span> <span class="identifier">input_seq</span><span class="special">;</span>
+ <span class="keyword">typename</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">emplace_function_gen</span><span class="special">&lt;</span><span class="identifier">Selector</span><span class="special">&gt;::</span><span class="identifier">type</span> <span class="identifier">emplacer</span><span class="special">;</span>
+ <span class="keyword">typename</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">splice_function_gen</span><span class="special">&lt;</span><span class="identifier">Selector</span><span class="special">&gt;::</span><span class="identifier">type</span> <span class="identifier">splicer</span><span class="special">;</span>
+
+ <span class="identifier">emplacer</span><span class="special">[</span><span class="identifier">ex_seq_1</span><span class="special">]</span>
+ <span class="special">(</span><span class="string">"able"</span><span class="special">)(</span><span class="string">"fox"</span><span class="special">)(</span><span class="string">"easy"</span><span class="special">)(</span><span class="string">"kilo"</span><span class="special">)(</span><span class="string">"baker"</span><span class="special">)(</span><span class="string">"charlie"</span><span class="special">)(</span><span class="string">"dog"</span><span class="special">);</span>
+ <span class="identifier">emplacer</span><span class="special">[</span><span class="identifier">ex_seq_2</span><span class="special">]</span>
+ <span class="special">(</span><span class="string">"able"</span><span class="special">)(</span><span class="string">"fox"</span><span class="special">)(</span><span class="string">"easy"</span><span class="special">)</span>
+ <span class="special">(</span><span class="string">"able"</span><span class="special">)(</span><span class="string">"fox"</span><span class="special">)(</span><span class="string">"iota"</span><span class="special">)(</span><span class="string">"hotel"</span><span class="special">)(</span><span class="string">"jupiter"</span><span class="special">)(</span><span class="string">"dog"</span><span class="special">)</span>
+ <span class="special">(</span><span class="string">"baker"</span><span class="special">)(</span><span class="string">"charlie"</span><span class="special">)(</span><span class="string">"dog"</span><span class="special">);</span>
+ <span class="identifier">emplacer</span><span class="special">[</span><span class="identifier">test_seq_1</span><span class="special">]</span>
+ <span class="special">(</span><span class="string">"able"</span><span class="special">)(</span><span class="string">"fox"</span><span class="special">)(</span><span class="string">"easy"</span><span class="special">)(</span><span class="string">"baker"</span><span class="special">)(</span><span class="string">"charlie"</span><span class="special">)(</span><span class="string">"dog"</span><span class="special">);</span>
+ <span class="identifier">emplacer</span><span class="special">[</span><span class="identifier">input_seq</span><span class="special">]</span>
+ <span class="special">(</span><span class="string">"able"</span><span class="special">)(</span><span class="string">"fox"</span><span class="special">)(</span><span class="string">"iota"</span><span class="special">)(</span><span class="string">"kilo"</span><span class="special">)(</span><span class="string">"hotel"</span><span class="special">)(</span><span class="string">"jupiter"</span><span class="special">)(</span><span class="string">"dog"</span><span class="special">);</span>
+ <span class="identifier">emplacer</span><span class="special">[</span><span class="identifier">test_seq_2</span><span class="special">]</span>
+ <span class="special">(</span><span class="string">"able"</span><span class="special">)(</span><span class="string">"fox"</span><span class="special">)(</span><span class="string">"iota"</span><span class="special">)(</span><span class="string">"hotel"</span><span class="special">)(</span><span class="string">"jupiter"</span><span class="special">)(</span><span class="string">"dog"</span><span class="special">);</span>
+
+ <span class="identifier">C</span> <span class="identifier">test_seq_3</span><span class="special">(</span><span class="identifier">test_seq_1</span><span class="special">);</span>
+ <span class="keyword">typename</span> <span class="identifier">C</span><span class="special">::</span><span class="identifier">iterator</span> <span class="identifier">itr</span> <span class="special">=</span> <span class="identifier">splicer</span><span class="special">(</span>
+ <span class="identifier">test_seq_1</span>
+ <span class="special">,</span> <span class="special">++++++</span><span class="identifier">test_seq_1</span><span class="special">.</span><span class="identifier">begin</span><span class="special">()</span>
+ <span class="special">,</span> <span class="identifier">input_seq</span>
+ <span class="special">,</span> <span class="special">++++++</span><span class="identifier">input_seq</span><span class="special">.</span><span class="identifier">begin</span><span class="special">()</span>
+ <span class="special">);</span>
+
+ <span class="identifier">BOOST_CHECK</span><span class="special">(*</span><span class="identifier">itr</span> <span class="special">==</span> <span class="identifier">test_string</span><span class="special">(</span><span class="string">"kilo"</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">test_seq_1</span><span class="special">,</span> <span class="identifier">ex_seq_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">test_seq_2</span><span class="special">,</span> <span class="identifier">input_seq</span><span class="special">));</span>
+
+ <span class="keyword">typename</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">insert_range_result_gen</span><span class="special">&lt;</span><span class="identifier">Selector</span><span class="special">,</span><span class="identifier">test_string</span><span class="special">&gt;::</span><span class="identifier">type</span>
+ <span class="identifier">insert_range_result</span> <span class="special">=</span> <span class="identifier">splicer</span><span class="special">(</span>
+ <span class="identifier">test_seq_3</span>
+ <span class="special">,</span> <span class="special">++++++</span><span class="identifier">test_seq_3</span><span class="special">.</span><span class="identifier">begin</span><span class="special">()</span>
+ <span class="special">,</span> <span class="identifier">input_seq</span>
+ <span class="special">,</span> <span class="identifier">input_seq</span><span class="special">.</span><span class="identifier">begin</span><span class="special">()</span>
+ <span class="special">,</span> <span class="identifier">input_seq</span><span class="special">.</span><span class="identifier">end</span><span class="special">()</span>
+ <span class="special">);</span>
+
+ <span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+ <span class="identifier">test_result_range</span><span class="special">(</span>
+ <span class="identifier">insert_range_result</span>
+ <span class="special">,</span> <span class="identifier">added_container</span>
+ <span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_associative_selector</span><span class="special">&lt;</span><span class="identifier">Selector</span><span class="special">&gt;()</span>
+ <span class="special">)</span>
+ <span class="special">);</span>
+ <span class="identifier">BOOST_CHECK</span><span class="special">(</span><span class="identifier">input_seq</span><span class="special">.</span><span class="identifier">empty</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">test_seq_3</span><span class="special">,</span> <span class="identifier">ex_seq_2</span><span class="special">));</span>
+<span class="special">}</span>
+</pre>
+<p>
+ </p>
+<p>
+ Remember that the splice operation can be performed in place--with the
+ source and destination containers being the same--as long as the destination
+ iterator points to a position outside the source range of input iterators.
+ </p>
+<p>
+</p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">C</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Selector</span><span class="special">&gt;</span>
+<span class="keyword">void</span>
+ <span class="identifier">test_splice_function_gen_init</span><span class="special">(</span>
+ <span class="identifier">C</span><span class="special">&amp;</span> <span class="identifier">ex_seq_1</span>
+ <span class="special">,</span> <span class="identifier">C</span><span class="special">&amp;</span> <span class="identifier">ex_seq_2</span>
+ <span class="special">,</span> <span class="identifier">C</span><span class="special">&amp;</span> <span class="identifier">input_seq</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="identifier">boost</span><span class="special">::</span><span class="identifier">emplace_function_gen</span><span class="special">&lt;</span><span class="identifier">Selector</span><span class="special">&gt;::</span><span class="identifier">type</span> <span class="identifier">emplacer</span><span class="special">;</span>
+
+ <span class="identifier">emplacer</span><span class="special">[</span><span class="identifier">ex_seq_1</span><span class="special">]</span>
+ <span class="special">(</span><span class="string">"able"</span><span class="special">)(</span><span class="string">"fox"</span><span class="special">)(</span><span class="string">"easy"</span><span class="special">)(</span><span class="string">"kilo"</span><span class="special">)(</span><span class="string">"baker"</span><span class="special">)(</span><span class="string">"charlie"</span><span class="special">)(</span><span class="string">"dog"</span><span class="special">);</span>
+ <span class="identifier">emplacer</span><span class="special">[</span><span class="identifier">ex_seq_2</span><span class="special">]</span>
+ <span class="special">(</span><span class="string">"able"</span><span class="special">)(</span><span class="string">"fox"</span><span class="special">)(</span><span class="string">"easy"</span><span class="special">)(</span><span class="string">"baker"</span><span class="special">)(</span><span class="string">"charlie"</span><span class="special">)(</span><span class="string">"dog"</span><span class="special">)(</span><span class="string">"kilo"</span><span class="special">);</span>
+ <span class="identifier">emplacer</span><span class="special">[</span><span class="identifier">input_seq</span><span class="special">]</span>
+ <span class="special">(</span><span class="string">"baker"</span><span class="special">)(</span><span class="string">"charlie"</span><span class="special">)(</span><span class="string">"dog"</span><span class="special">);</span>
+<span class="special">}</span>
+
+<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Selector</span><span class="special">&gt;</span>
+<span class="keyword">void</span> <span class="identifier">test_splice_function_gen_in_place</span><span class="special">(</span><span class="identifier">Selector</span><span class="special">)</span>
+<span class="special">{</span>
+ <span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">container_gen</span><span class="special">&lt;</span><span class="identifier">Selector</span><span class="special">,</span><span class="identifier">test_string</span><span class="special">&gt;::</span><span class="identifier">type</span> <span class="identifier">C</span><span class="special">;</span>
+
+ <span class="identifier">C</span> <span class="identifier">ex_seq_1</span><span class="special">,</span> <span class="identifier">ex_seq_2</span><span class="special">,</span> <span class="identifier">input_seq</span><span class="special">;</span>
+
+ <span class="identifier">test_splice_function_gen_init</span><span class="special">(</span><span class="identifier">ex_seq_1</span><span class="special">,</span> <span class="identifier">ex_seq_2</span><span class="special">,</span> <span class="identifier">input_seq</span><span class="special">,</span> <span class="identifier">Selector</span><span class="special">());</span>
+
+ <span class="identifier">C</span> <span class="identifier">test_seq</span><span class="special">(</span><span class="identifier">ex_seq_1</span><span class="special">);</span>
+ <span class="keyword">typename</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">splice_function_gen</span><span class="special">&lt;</span><span class="identifier">Selector</span><span class="special">&gt;::</span><span class="identifier">type</span> <span class="identifier">splicer</span><span class="special">;</span>
+ <span class="keyword">typename</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">insert_range_result_gen</span><span class="special">&lt;</span><span class="identifier">Selector</span><span class="special">,</span><span class="identifier">test_string</span><span class="special">&gt;::</span><span class="identifier">type</span>
+ <span class="identifier">insert_range_result</span> <span class="special">=</span> <span class="identifier">splicer</span><span class="special">(</span>
+ <span class="identifier">test_seq</span>
+ <span class="special">,</span> <span class="special">++++++</span><span class="identifier">test_seq</span><span class="special">.</span><span class="identifier">begin</span><span class="special">()</span>
+ <span class="special">,</span> <span class="identifier">test_seq</span>
+ <span class="special">,</span> <span class="special">++++++++</span><span class="identifier">test_seq</span><span class="special">.</span><span class="identifier">begin</span><span class="special">()</span>
+ <span class="special">,</span> <span class="identifier">test_seq</span><span class="special">.</span><span class="identifier">end</span><span class="special">()</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">insert_range_result</span><span class="special">,</span> <span class="identifier">input_seq</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">test_seq</span><span class="special">,</span> <span class="identifier">ex_seq_2</span><span class="special">));</span>
+
+ <span class="keyword">typename</span> <span class="identifier">C</span><span class="special">::</span><span class="identifier">iterator</span> <span class="identifier">itr</span> <span class="special">=</span> <span class="identifier">splicer</span><span class="special">(</span>
+ <span class="identifier">test_seq</span>
+ <span class="special">,</span> <span class="special">++++++</span><span class="identifier">test_seq</span><span class="special">.</span><span class="identifier">begin</span><span class="special">()</span>
+ <span class="special">,</span> <span class="identifier">test_seq</span>
+ <span class="special">,</span> <span class="special">++++++++++++</span><span class="identifier">test_seq</span><span class="special">.</span><span class="identifier">begin</span><span class="special">()</span>
+ <span class="special">);</span>
+
+ <span class="identifier">BOOST_CHECK</span><span class="special">(*</span><span class="identifier">itr</span> <span class="special">==</span> <span class="identifier">test_string</span><span class="special">(</span><span class="string">"kilo"</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">test_seq</span><span class="special">,</span> <span class="identifier">ex_seq_1</span><span class="special">));</span>
+ <span class="identifier">itr</span> <span class="special">=</span> <span class="identifier">splicer</span><span class="special">(</span>
+ <span class="identifier">test_seq</span>
+ <span class="special">,</span> <span class="identifier">test_seq</span><span class="special">.</span><span class="identifier">end</span><span class="special">()</span>
+ <span class="special">,</span> <span class="identifier">test_seq</span>
+ <span class="special">,</span> <span class="special">++++++</span><span class="identifier">test_seq</span><span class="special">.</span><span class="identifier">begin</span><span class="special">()</span>
+ <span class="special">);</span>
+ <span class="identifier">BOOST_CHECK</span><span class="special">(*</span><span class="identifier">itr</span> <span class="special">==</span> <span class="identifier">test_string</span><span class="special">(</span><span class="string">"kilo"</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">test_seq</span><span class="special">,</span> <span class="identifier">ex_seq_2</span><span class="special">));</span>
+ <span class="identifier">insert_range_result</span> <span class="special">=</span> <span class="identifier">splicer</span><span class="special">(</span>
+ <span class="identifier">test_seq</span>
+ <span class="special">,</span> <span class="identifier">test_seq</span><span class="special">.</span><span class="identifier">end</span><span class="special">()</span>
+ <span class="special">,</span> <span class="identifier">test_seq</span>
+ <span class="special">,</span> <span class="special">++++++</span><span class="identifier">test_seq</span><span class="special">.</span><span class="identifier">begin</span><span class="special">()</span>
+ <span class="special">,</span> <span class="special">++++++++++++</span><span class="identifier">test_seq</span><span class="special">.</span><span class="identifier">begin</span><span class="special">()</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">insert_range_result</span><span class="special">,</span> <span class="identifier">input_seq</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">test_seq</span><span class="special">,</span> <span class="identifier">ex_seq_1</span><span class="special">));</span>
+<span class="special">}</span>
+</pre>
+<p>
+ </p>
+<p>
+ Test this metafunction across a wide variety of selector types.
+ </p>
+<p>
+</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">boost</span><span class="special">::</span><span class="identifier">container_gen</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">dequeS</span><span class="special">,</span><span class="identifier">test_string</span><span class="special">&gt;::</span><span class="identifier">type</span> <span class="identifier">c</span><span class="special">;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">emplace_function_gen</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">dequeS</span><span class="special">&gt;::</span><span class="identifier">type</span> <span class="identifier">emplacer</span><span class="special">;</span>
+
+ <span class="identifier">emplacer</span><span class="special">[</span><span class="identifier">c</span><span class="special">](</span><span class="string">"able"</span><span class="special">)(</span><span class="string">"fox"</span><span class="special">)(</span><span class="string">"iota"</span><span class="special">)(</span><span class="string">"hotel"</span><span class="special">)(</span><span class="string">"jupiter"</span><span class="special">)(</span><span class="string">"dog"</span><span class="special">);</span>
+ <span class="identifier">test_splice_function_gen</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">vecS</span><span class="special">&gt;(</span><span class="identifier">c</span><span class="special">);</span>
+ <span class="identifier">test_splice_function_gen</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">dequeS</span><span class="special">&gt;(</span><span class="identifier">c</span><span class="special">);</span>
+ <span class="identifier">test_splice_function_gen</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">listS</span><span class="special">&gt;(</span><span class="identifier">c</span><span class="special">);</span>
+ <span class="identifier">test_splice_function_gen</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_vecS</span><span class="special">&gt;(</span><span class="identifier">c</span><span class="special">);</span>
+ <span class="identifier">test_splice_function_gen</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_dequeS</span><span class="special">&gt;(</span><span class="identifier">c</span><span class="special">);</span>
+ <span class="identifier">test_splice_function_gen</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_listS</span><span class="special">&gt;(</span><span class="identifier">c</span><span class="special">);</span>
+ <span class="identifier">test_splice_function_gen</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">vector_selector</span><span class="special">&lt;</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">&gt;</span> <span class="special">&gt;(</span><span class="identifier">c</span><span class="special">);</span>
+ <span class="identifier">test_splice_function_gen</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">stable_vecS</span><span class="special">&gt;(</span><span class="identifier">c</span><span class="special">);</span>
+ <span class="identifier">test_splice_function_gen</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">deque_selector</span><span class="special">&lt;</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">&gt;</span> <span class="special">&gt;(</span><span class="identifier">c</span><span class="special">);</span>
+ <span class="identifier">test_splice_function_gen</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">list_selector</span><span class="special">&lt;</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">&gt;</span> <span class="special">&gt;(</span><span class="identifier">c</span><span class="special">);</span>
+ <span class="identifier">c</span><span class="special">.</span><span class="identifier">clear</span><span class="special">();</span>
+ <span class="identifier">emplacer</span><span class="special">[</span><span class="identifier">c</span><span class="special">](</span><span class="string">"dog"</span><span class="special">)(</span><span class="string">"jupiter"</span><span class="special">)(</span><span class="string">"hotel"</span><span class="special">)(</span><span class="string">"iota"</span><span class="special">)(</span><span class="string">"fox"</span><span class="special">)(</span><span class="string">"able"</span><span class="special">);</span>
+ <span class="identifier">test_splice_function_gen</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">slistS</span><span class="special">&gt;(</span><span class="identifier">c</span><span class="special">);</span>
+
+ <span class="keyword">return</span> <span class="number">0</span><span class="special">;</span>
+<span class="special">}</span>
+</pre>
+<p>
+ </p>
+<p>
+ The complete test program spans the following source files:
+ </p>
+<pre class="programlisting"><span class="special">*</span> <test/result_range.hpp>
+<span class="special">*</span> <test/splice_function_gen.cpp>
+</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 &#169; 1997-2013 Andrew Lumsdaine, Lie-Quan Lee,
+ Thomas Claveirole, Jeremy G. Siek, Cromwell D. Enage<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="insert_range_function_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="insert_range_result_gen.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/container_gen/libs/container_gen/doc/html/index.html
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ sandbox/container_gen/libs/container_gen/doc/html/index.html 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84957)
@@ -0,0 +1,67 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Chapter&#160;1.&#160;container_gen 0.9</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&#160;1.&#160;container_gen 0.9">
+<link rel="next" href="container_gen/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="n" href="container_gen/reference.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="container_gen"></a>Chapter&#160;1.&#160;container_gen 0.9</h2></div>
+<div><div class="author"><h3 class="author">
+<span class="firstname">Andrew</span> <span class="surname">Lumsdaine</span>
+</h3></div></div>
+<div><div class="author"><h3 class="author">
+<span class="firstname">Lie-Quan</span> <span class="surname">Lee</span>
+</h3></div></div>
+<div><div class="author"><h3 class="author">
+<span class="firstname">Thomas</span> <span class="surname">Claveirole</span>
+</h3></div></div>
+<div><div class="author"><h3 class="author">
+<span class="firstname">Jeremy G.</span> <span class="surname">Siek</span>
+</h3></div></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 &#169; 1997-2013 Andrew Lumsdaine, Lie-Quan Lee,
+ Thomas Claveirole, Jeremy G. Siek, Cromwell D. Enage</p></div>
+<div><div class="legalnotice">
+<a name="container_gen.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">Reference</span></dt>
+<dt><span class="section">Changelog</span></dt>
+</dl>
+</div>
+<h3>
+<a name="container_gen.h0"></a>
+ <span class="phrase"><a name="container_gen.rationale"></a></span><a class="link" href="index.html#container_gen.rationale">Rationale</a>
+ </h3>
+<p>
+ Significant interest was expressed in moving the <code class="computeroutput"><span class="identifier">container_gen</span></code>
+ metafunction from its current place in the BGL
+ to a more general or first-class residence. The relevant discussion is archived
+ here: http://lists.boost.org/Archives/boost/2011/05/181573.php.
+ </p>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"><p><small>Last revised: June 29, 2013 at 03:45:06 GMT</small></p></td>
+<td align="right"><div class="copyright-footer"></div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav"><a accesskey="n" href="container_gen/reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a></div>
+</body>
+</html>

Added: sandbox/container_gen/libs/container_gen/doc/ref_container_gen.qbk
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ sandbox/container_gen/libs/container_gen/doc/ref_container_gen.qbk 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84957)
@@ -0,0 +1,92 @@
+[/=============================================================================
+ Copyright (C) 2000-2001 Jeremy G. Siek
+ 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:container_gen `container_gen`]
+
+[section Synopsis]
+[reference__container_gen]
+[endsect]
+
+[section Description]
+The __graph_adjacency_list__ class template uses this metafunction to map the
+`OutEdgeList` and `VertexList` selectors to the actual container types used
+for the graph storage. You can also use this metafunction to determine the
+appropriate associative container type given the specified selector. The
+example routine below uses the `container_gen` return type to associate each
+distinct string character with the number of times it appears in the string.
+
+[example__output_char_tallies__definition]
+
+This library provides specializations of this metafunction class for each
+selector it provides whose resulting storage type models the __STL_Container__
+concept. Here, two such selectors are passed in calls to the example routine.
+
+[example__output_char_tallies__calls]
+
+The `container_gen` specialization for the `stable_vector_selector` template is
+shown here.
+
+[reference__container_gen__stable_vector_specialization]
+
+You can use `container_gen` to easily select an appropriate
+__Boost_Pointer_Container__ type. Pointer containers are ideal for storing
+heterogeneous items with a common base type, e.g. shapes:
+
+[example__output_shape_stats__type_definitions]
+
+Many algorithms that work on the standard containers also work on pointer
+containers out of the box.
+
+[example__output_shape_stats__functions]
+
+The `container_gen` metafunction allows you to programmatically swap out
+different pointer container types using type selectors.
+
+[example__output_shape_stats__usage]
+
+You can also use `container_gen` to select an appropriate STL container adaptor
+or __Boost_Heap__ data structure. Stacks and priority queues work well for
+reordering items stored in other containers.
+
+[example__output_rearrangements__functions]
+
+Again, thanks to the `container_gen` metafunction, you can use type selectors
+to swap out different container adaptor and heap types.
+
+[example__output_rearrangements__main]
+
+It is possible to nest associative containers via `container_gen`, e.g.:
+
+``
+typedef container_gen<
+ mapS
+ , container_gen<setS,char>::type
+ , _std_string_
+ >::type
+ MapOfCharSets2Strings;
+``
+
+Finally, to use some other container of your choice, define a selector
+class and then specialize this metafunction for your selector.
+[endsect] [/ Description]
+
+[section:definition Where defined]
+``
+#include <__boost_container_gen_container_gen_hpp__>
+``
+
+Forward declaration:
+
+``
+#include <__boost_container_gen_container_gen_fwd_hpp__>
+``
+[endsect]
+
+[endsect] [/ container_gen]
+

Added: sandbox/container_gen/libs/container_gen/doc/ref_emplace_assoc_func_gen.qbk
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ sandbox/container_gen/libs/container_gen/doc/ref_emplace_assoc_func_gen.qbk 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84957)
@@ -0,0 +1,74 @@
+[/=============================================================================
+ 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_assoc_function_gen `emplace_associative_function_gen`]
+
+[section Synopsis]
+[reference__emplace_associative_function_gen]
+[endsect]
+
+[section Description]
+Returns a __Default_Constructible__ n-ary function object type whose first
+argument type is a reference to an __Associative_Container__ and whose second
+argument type is convertible to the container's key type. In practice, the
+type of this container must be produced by __container_gen__ when given the
+same selector template argument. The rest of the function object's arguments,
+if any, will be forwarded either to the container's emplacement method (if
+__has_emplace_member_function_selector__ returns __mpl_true__ for the given
+selector) or to the mapped type's matching constructor. The call operator's
+return value is a __std_pair__ whose second element evaluates to `true` upon
+successful insertion and whose first element is an iterator pointing to the
+key-value pair inserted.
+
+The return type of this metafunction also defines an indexing operator that
+accepts a reference to a container and returns a proxy object that allows
+emplacement function calls to be chained together, much like __Boost_Assign__.
+[endsect]
+
+[section:definition Where defined]
+``
+#include <__boost_container_gen_emplace_assoc_function_gen_hpp__>
+``
+[endsect]
+
+[section Example]
+``
+template <typename Selector>
+void example()
+{
+ typename _container_gen_<Selector,int,_std_string_>::type c1, c2, c3;
+ typename emplace_associative_function_gen<Selector>::type emplacer;
+
+ _AUTO_TPL_(result1, emplacer(c1, -1, "Hello,"));
+ _AUTO_TPL_(result2, emplacer(c2, -1, "Hello,"));
+ _ASSERT_(result1 == result2);
+
+ result1 = emplacer(c1, 42, "world!");
+ result2 = emplacer(c2, 42, "world!");
+ _ASSERT_(result1 == result2);
+ _ASSERT_(_range_equal_(c1, c2));
+
+ emplacer[c3](-1, "Hello,")(42, "world!");
+ _ASSERT_(_range_equal_(c1, c3));
+}
+
+int main()
+{
+ example<_map_selector_<_mpl_true_> >();
+ return 0;
+}
+``
+[endsect]
+
+[section Test]
+[@../../test/emplace_assoc_function_gen.cpp
+`<test/emplace_assoc_function_gen.cpp>`]
+[endsect]
+
+[endsect] [/ emplace_associative_function_gen]
+

Added: sandbox/container_gen/libs/container_gen/doc/ref_emplace_function_gen.qbk
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ sandbox/container_gen/libs/container_gen/doc/ref_emplace_function_gen.qbk 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84957)
@@ -0,0 +1,77 @@
+[/=============================================================================
+ 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_function_gen `emplace_function_gen`]
+
+[section Synopsis]
+[reference__emplace_function_gen]
+[endsect]
+
+[section Description]
+Returns a __Default_Constructible__ n-ary function object type whose first
+argument type is a reference to a container. In practice, the type of this
+container must be produced by __container_gen__ when given the same selector
+template argument. The rest of the function object's arguments, if any,
+will be forwarded either to the container's emplacement method (if
+__has_emplace_member_function_selector__ returns __mpl_true__ for the given
+selector) or to the value type's matching constructor.
+
+If the container is a mutable __Boost_Heap__ object, then the call operator's
+return value is the handle returned by the container's emplacement function
+call. If the container is a __Boost_Heap__ object that is not mutable, then
+the call operator's return type is `void`. Otherwise, the call operator's
+return value is a __std_pair__ whose second element evaluates to `true` upon
+successful insertion and whose first element is an iterator pointing to the
+element inserted.
+
+The return type of this metafunction also defines an indexing operator that
+accepts a reference to a container and returns a proxy object that allows
+emplacement function calls to be chained together, much like __Boost_Assign__.
+[endsect]
+
+[section:definition Where defined]
+``
+#include <__boost_container_gen_emplace_function_gen_hpp__>
+``
+[endsect]
+
+[section Example]
+``
+template <typename Selector>
+void example()
+{
+ typename _container_gen_<Selector,_std_string_>::type c1, c2, c3;
+ typename emplace_function_gen<Selector>::type emplacer;
+
+ _AUTO_TPL_(result1, emplacer(c1, "Hello,"));
+ _AUTO_TPL_(result2, emplacer(c2, "Hello,"));
+ _ASSERT_(result1 == result2);
+
+ result1 = emplacer(c1, "world!");
+ result2 = emplacer(c2, "world!");
+ _ASSERT_(result1 == result2);
+ _ASSERT_(_range_equal_(c1, c2));
+
+ emplacer[c3]("Hello,")("world!");
+ _ASSERT_(_range_equal_(c1, c3));
+}
+
+int main()
+{
+ example<_vector_selector_<_mpl_true_> >();
+ return 0;
+}
+``
+[endsect]
+
+[section Test]
+[@../../test/emplace_function_gen.cpp `<test/emplace_function_gen.cpp>`]
+[endsect]
+
+[endsect] [/ emplace_function_gen]
+

Added: sandbox/container_gen/libs/container_gen/doc/ref_has_emplace_mfunc_sel.qbk
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ sandbox/container_gen/libs/container_gen/doc/ref_has_emplace_mfunc_sel.qbk 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84957)
@@ -0,0 +1,35 @@
+[/=============================================================================
+ 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:has_emplace_mfunc_selector `has_emplace_member_function_selector`]
+
+[section Synopsis]
+[reference__has_emplace_member_function_selector]
+[endsect]
+
+[section Description]
+Returns __mpl_true__ if the type to be returned by __container_gen__ supports
+emplacement construction of its elements, __mpl_false__ otherwise.
+
+The current implementation returns __mpl_true__ when passed in selectors
+for which __container_gen__ will return a __Boost_Container__ model type, a
+__Boost_Unordered__ container type, or a __Boost_Heap__ model type; it will
+return __mpl_false__ for all other types of selectors. Specialize this
+metafunction to return __mpl_true__ for your custom selector if and only if
+the type to be returned by __container_gen__ supports emplacement construction
+of its elements.
+[endsect]
+
+[section:definition Where defined]
+``
+#include <__boost_container_gen_has_emplace_mfunc_selector_hpp__>
+``
+[endsect]
+
+[endsect] [/ has_emplace_member_function_selector]
+

Added: sandbox/container_gen/libs/container_gen/doc/ref_has_stable_iters_sel.qbk
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ sandbox/container_gen/libs/container_gen/doc/ref_has_stable_iters_sel.qbk 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84957)
@@ -0,0 +1,43 @@
+[/=============================================================================
+ 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:has_stable_iters_selector `has_stable_iterators_selector`]
+
+[section Synopsis]
+[reference__has_stable_iterators_selector]
+[endsect]
+
+[section Description]
+Returns __mpl_true__ if the type to be returned by __container_gen__ does not
+invalidate any iterators while invoking a member function that structurally
+modifies an instance of the container type, other than any iterator argument
+that the member function takes in, __mpl_false__ otherwise.
+
+The current implementation returns __mpl_false__ when passed in selectors for
+which __container_gen__ will return a __Boost_Heap__ model type, a
+__Hashed_Associative_Container__ model type, a __Flat_Associative_Container__
+model type, or a __Random_Access_Container__ model type other than __array__ or
+__container_stable_vector__; it will return __mpl_true__ for all other types of
+selectors. Specialize this metafunction to return __mpl_false__ for your
+custom selector if and only if the type to be returned by __container_gen__
+invalidates iterators other than the argument during a structurally modifying
+member function call.
+[endsect]
+
+[section:definition Where defined]
+``
+#include <__boost_container_gen_has_stable_iters_selector_hpp__>
+``
+[endsect]
+
+[section Test]
+[test__has_stable_iterators_selector]
+[endsect]
+
+[endsect] [/ has_stable_iterators_selector]
+

Added: sandbox/container_gen/libs/container_gen/doc/ref_ins_range_function_gen.qbk
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ sandbox/container_gen/libs/container_gen/doc/ref_ins_range_function_gen.qbk 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84957)
@@ -0,0 +1,72 @@
+[/=============================================================================
+ 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:insert_range_function_gen `insert_range_function_gen`]
+
+[section Synopsis]
+[reference__insert_range_function_gen]
+[endsect]
+
+[section Description]
+Returns a __Default_Constructible__ function object type whose call operator
+will take in a reference to a container, a valid iterator representing the
+point of insertion, and either two __Input_Iterator__ arguments or a
+__Single_Pass_Range__ argument. In practice, the container type must be
+produced by __container_gen__ when given the same selector template argument.
+
+If the container type models the __Sequence__ concept, then the function object
+will forward the other argument(s) to the container's range insertion method;
+the call operator's return value will be a __Single_Pass_Range__ over the
+elements inserted in the container.
+
+If the container type models the __Associative_Container__ concept, then the
+function object will forward each element in the specified range to the
+container's insertion method. If __has_stable_iterators_selector__ evaluates
+to __mpl_true__ for the specified selector, then the call operator's return
+value will be a __Single_Pass_Range__ of iterators pointing to each of the
+elements that were successfully inserted in the container.
+
+The return type of this metafunction also defines an indexing operator that
+accepts a reference to a container and returns a proxy object that allows range
+insertion function calls to be chained together, much like __Boost_Assign__.
+[endsect]
+
+[section:definition Where defined]
+``
+#include <__boost_container_gen_insert_range_function_gen_hpp__>
+``
+[endsect]
+
+[section Example]
+Use the __range_equal__ algorithm to test two ranges for equality. To handle
+the case where the range returned from a call to the
+`insert_range_function_gen` return function type is a __Single_Pass_Range__ of
+iterators, use __range_adaptors_indirect__.
+
+[test__result_range]
+
+Use the __emplace_function_gen__ metafunction to construct containers using
+individual elements, then use this metafunction to append the elements of
+one container to another in a single step. Use the __insert_range_result_gen__
+metafunction to store the result of the operation.
+
+[test__insert_range_function_gen]
+
+Test this metafunction across a wide variety of selector types.
+
+[test__insert_range_function_gen__main]
+
+The complete test program spans the following source files:
+
+ * __libs_container_gen_test_result_range_hpp__
+ * __libs_container_gen_test_insert_range_function_gen_cpp__
+
+[endsect]
+
+[endsect] [/ insert_range_function_gen]
+

Added: sandbox/container_gen/libs/container_gen/doc/ref_insert_range_result_gen.qbk
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ sandbox/container_gen/libs/container_gen/doc/ref_insert_range_result_gen.qbk 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84957)
@@ -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:insert_range_result_gen `insert_range_result_gen`]
+
+[section Synopsis]
+[reference__insert_range_result_gen]
+[endsect]
+
+[section Description]
+Determines the result type of the function object type returned by either
+__push_range_function_gen__ or __insert_range_function_gen__, using the return
+type of __container_gen__ as the function object's container argument type. If
+the container type models the __Sequence__ concept, then the result type will
+be a __Single_Pass_Range__ whose element type is `T`. If the container type
+models the __Associative_Container__ concept, then the result type will be a
+__Single_Pass_Range__ whose element type is the container's iterator type.
+[endsect]
+
+[section:definition Where defined]
+``
+#include <__boost_container_gen_insert_range_result_gen_hpp__>
+``
+[endsect]
+
+[endsect] [/ insert_range_result_gen]
+

Added: sandbox/container_gen/libs/container_gen/doc/ref_is_allocator_selector.qbk
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ sandbox/container_gen/libs/container_gen/doc/ref_is_allocator_selector.qbk 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84957)
@@ -0,0 +1,35 @@
+[/=============================================================================
+ 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:is_allocator_selector `is_allocator_selector`]
+
+[section Synopsis]
+[reference__is_allocator_selector]
+[endsect]
+
+[section Description]
+Returns __mpl_true__ if the specified selector is a metafunction class that
+takes in a value type and returns an allocator model, __mpl_false__ otherwise.
+
+If either __MPL_CFG_NO_HAS_XXX__ or __MPL_CFG_NO_HAS_XXX_TEMPLATE__ are
+defined, then you must specialize this metafunction to return __mpl_true__ for
+your custom selector.
+[endsect]
+
+[section:definition Where defined]
+``
+#include <__boost_container_gen_is_allocator_selector_hpp__>
+``
+[endsect]
+
+[section Test]
+[test__is_allocator_selector]
+[endsect]
+
+[endsect] [/ is_allocator_selector]
+

Added: sandbox/container_gen/libs/container_gen/doc/ref_is_associative_selector.qbk
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ sandbox/container_gen/libs/container_gen/doc/ref_is_associative_selector.qbk 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84957)
@@ -0,0 +1,37 @@
+[/=============================================================================
+ 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:is_associative_selector `is_associative_selector`]
+
+[section Synopsis]
+[reference__is_associative_selector]
+[endsect]
+
+[section Description]
+Returns __mpl_true__ if the type to be returned by __container_gen__ will model
+the __Associative_Container__ concept, __mpl_false__ otherwise.
+
+If both __TYPEOF_EMULATION__ and __MPL_CFG_NO_HAS_XXX__ are defined, then you
+must specialize either the __is_unique_associative_selector__ metafunction or
+the __is_multiple_associative_selector__ metafunction to return __mpl_true__
+for your custom selector if and only if the __container_gen__ return type
+models the respective concept.
+[endsect]
+
+[section:definition Where defined]
+``
+#include <__boost_container_gen_is_associative_selector_hpp__>
+``
+[endsect]
+
+[section Test]
+[test__is_associative_selector]
+[endsect]
+
+[endsect] [/ is_associative_selector]
+

Added: sandbox/container_gen/libs/container_gen/doc/ref_is_compare_selector.qbk
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ sandbox/container_gen/libs/container_gen/doc/ref_is_compare_selector.qbk 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84957)
@@ -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:is_compare_selector `is_compare_selector`]
+
+[section Synopsis]
+[reference__is_compare_selector]
+[endsect]
+
+[section Description]
+Returns __mpl_true__ if the specified selector is a metafunction class that
+takes in a value type and returns a __Binary_Predicate__ model, __mpl_false__
+otherwise.
+
+If either __MPL_CFG_NO_HAS_XXX__ or __MPL_CFG_NO_HAS_XXX_TEMPLATE__ are
+defined, then you must specialize this metafunction to return __mpl_true__ for
+your custom selector.
+[endsect]
+
+[section:definition Where defined]
+``
+#include <__boost_container_gen_is_compare_selector_hpp__>
+``
+[endsect]
+
+[section Test]
+[test__is_compare_selector]
+[endsect]
+
+[endsect] [/ is_compare_selector]
+

Added: sandbox/container_gen/libs/container_gen/doc/ref_is_container_selector.qbk
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ sandbox/container_gen/libs/container_gen/doc/ref_is_container_selector.qbk 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84957)
@@ -0,0 +1,37 @@
+[/=============================================================================
+ 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:is_container_selector `is_container_selector`]
+
+[section Synopsis]
+[reference__is_container_selector]
+[endsect]
+
+[section Description]
+Returns __mpl_true__ if the __container_gen__ metafunction has been specialized
+to return a type given the specified selector type, __mpl_false__ otherwise.
+
+If __MPL_CFG_NO_HAS_XXX__ is defined, then you must also specialize this
+metafunction to return __mpl_true__ for your custom selector.
+
+This metafunction is useful for facilitating __Boost_Parameter__-enabled
+template argument deduction for types that take in __Selectors__.
+[endsect]
+
+[section:definition Where defined]
+``
+#include <__boost_container_gen_is_container_selector_hpp__>
+``
+[endsect]
+
+[section Test]
+[test__is_container_selector]
+[endsect]
+
+[endsect] [/ is_container_selector]
+

Added: sandbox/container_gen/libs/container_gen/doc/ref_is_flat_assoc_selector.qbk
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ sandbox/container_gen/libs/container_gen/doc/ref_is_flat_assoc_selector.qbk 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84957)
@@ -0,0 +1,38 @@
+[/=============================================================================
+ 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:is_flat_assoc_selector `is_flat_associative_selector`]
+
+[section Synopsis]
+[reference__is_flat_associative_selector]
+[endsect]
+
+[section Description]
+Returns __mpl_true__ if the type to be returned by __container_gen__ will be a
+__Flat_Associative_Container__ -- that is, if it will model the
+__Sorted_Associative_Container__ concept and its iterator type will model the
+__Random_Access_Iterator__ concept -- __mpl_false__ otherwise.
+
+If __MPL_CFG_NO_HAS_XXX__ is defined, then you must specialize this
+metafunction to return __mpl_true__ for your custom selector if and
+only if the type to be returned by __container_gen__ is a
+__Flat_Associative_Container__.
+[endsect]
+
+[section:definition Where defined]
+``
+#include <__boost_container_gen_is_flat_assoc_selector_hpp__>
+``
+[endsect]
+
+[section Test]
+[test__is_flat_associative_selector]
+[endsect]
+
+[endsect] [/ is_flat_associative_selector]
+

Added: sandbox/container_gen/libs/container_gen/doc/ref_is_hashed_assoc_sel.qbk
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ sandbox/container_gen/libs/container_gen/doc/ref_is_hashed_assoc_sel.qbk 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84957)
@@ -0,0 +1,36 @@
+[/=============================================================================
+ 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:is_hashed_assoc_selector `is_hashed_associative_selector`]
+
+[section Synopsis]
+[reference__is_hashed_associative_selector]
+[endsect]
+
+[section Description]
+Returns __mpl_true__ if the type to be returned by __container_gen__ will model
+the __Hashed_Associative_Container__ concept, __mpl_false__ otherwise.
+
+If __MPL_CFG_NO_HAS_XXX__ is defined, then you must specialize this
+metafunction to return __mpl_true__ for your custom selector if and
+only if the type to be returned by __container_gen__ models
+the __Hashed_Associative_Container__ concept.
+[endsect]
+
+[section:definition Where defined]
+``
+#include <__boost_container_gen_is_hashed_assoc_selector_hpp__>
+``
+[endsect]
+
+[section Test]
+[test__is_hashed_associative_selector]
+[endsect]
+
+[endsect] [/ is_hashed_associative_selector]
+

Added: sandbox/container_gen/libs/container_gen/doc/ref_is_hasher_selector.qbk
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ sandbox/container_gen/libs/container_gen/doc/ref_is_hasher_selector.qbk 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84957)
@@ -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:is_hasher_selector `is_hasher_selector`]
+
+[section Synopsis]
+[reference__is_hasher_selector]
+[endsect]
+
+[section Description]
+Returns __mpl_true__ if the specified selector is a
+__Unary_Metafunction_Class__ that takes in a value type and returns a
+__Hash_Function__ model, __mpl_false__ otherwise.
+
+If either __MPL_CFG_NO_HAS_XXX__ or __MPL_CFG_NO_HAS_XXX_TEMPLATE__ are
+defined, then you must specialize this metafunction to return __mpl_true__ for
+your custom selector.
+[endsect]
+
+[section:definition Where defined]
+``
+#include <__boost_container_gen_is_hasher_selector_hpp__>
+``
+[endsect]
+
+[section Test]
+[test__is_hasher_selector]
+[endsect]
+
+[endsect] [/ is_hasher_selector]
+

Added: sandbox/container_gen/libs/container_gen/doc/ref_is_heap_selector.qbk
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ sandbox/container_gen/libs/container_gen/doc/ref_is_heap_selector.qbk 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84957)
@@ -0,0 +1,35 @@
+[/=============================================================================
+ 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:is_heap_selector `is_heap_selector`]
+
+[section Synopsis]
+[reference__is_heap_selector]
+[endsect]
+
+[section Description]
+Returns __mpl_true__ if the specified selector will cause __container_gen__ to
+return a __Boost_Heap__ model type, __mpl_false__ otherwise.
+
+If __MPL_CFG_NO_HAS_XXX__ is defined, then you must specialize this
+metafunction to return __mpl_true__ for your custom selector if and only if
+the type to be returned by __container_gen__ is a __Boost_Heap__ model type.
+[endsect]
+
+[section:definition Where defined]
+``
+#include <__boost_container_gen_is_heap_selector_hpp__>
+``
+[endsect]
+
+[section Test]
+[test__is_heap_selector]
+[endsect]
+
+[endsect] [/ is_heap_selector]
+

Added: sandbox/container_gen/libs/container_gen/doc/ref_is_iter_heap_selector.qbk
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ sandbox/container_gen/libs/container_gen/doc/ref_is_iter_heap_selector.qbk 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84957)
@@ -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:is_iter_heap_selector `is_iteratable_heap_selector`]
+
+[section Synopsis]
+[reference__is_iteratable_heap_selector]
+[endsect]
+
+[section Description]
+Returns __mpl_true__ if the specified selector will cause __container_gen__ to
+return an iteratable __Boost_Heap__ model type, __mpl_false__ otherwise.
+
+If __MPL_CFG_NO_HAS_XXX__ is defined, then you must specialize this
+metafunction to return __mpl_true__ for your custom selector if and only if
+the type to be returned by __container_gen__ is an iteratable __Boost_Heap__
+model type.
+[endsect]
+
+[section:definition Where defined]
+``
+#include <__boost_container_gen_is_iteratable_heap_selector_hpp__>
+``
+[endsect]
+
+[section Test]
+[test__is_iteratable_heap_selector]
+[endsect]
+
+[endsect] [/ is_iteratable_heap_selector]
+

Added: sandbox/container_gen/libs/container_gen/doc/ref_is_merge_heap_selector.qbk
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ sandbox/container_gen/libs/container_gen/doc/ref_is_merge_heap_selector.qbk 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84957)
@@ -0,0 +1,57 @@
+[/=============================================================================
+ 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:is_mergeable_heap_selector `is_mergeable_heap_selector`]
+
+[section Synopsis]
+[reference__is_mergeable_heap_selector]
+[endsect]
+
+[section Description]
+A __Boost_Heap__ model type is *mergeable* if and only if it defines a member
+function `merge()` that takes in a reference-to-non-`const` object of its own
+type and returns `void`. This metafunction returns __mpl_true__ if the
+specified selector will cause __container_gen__ to return a mergeable
+__Boost_Heap__ model type, __mpl_false__ otherwise.
+
+If __MPL_CFG_NO_HAS_XXX__ is defined, then you must specialize this
+metafunction to return __mpl_true__ for your custom selector if and only if
+the type to be returned by __container_gen__ is a mergeable __Boost_Heap__
+model type.
+[endsect]
+
+[section:definition Where defined]
+``
+#include <__boost_container_gen_is_mergeable_heap_selector_hpp__>
+``
+[endsect]
+
+[section Example]
+The __heap_merge__ function is the only way to merge two objects of different
+__Boost_Heap__ model types or of the same __Boost_Heap__ model type that is
+otherwise not mergeable.
+
+[example__is_mergeable_heap_selector__false]
+
+However, the __heap_merge__ function may be less efficient than the `merge()`
+member function of mergeable __Boost_Heap__ model types.
+
+[example__is_mergeable_heap_selector__true]
+
+Use this metafunction to choose the correct and most efficient merge
+implementation.
+
+[example__is_mergeable_heap_selector]
+[endsect]
+
+[section Test]
+[test__is_mergeable_heap_selector]
+[endsect]
+
+[endsect] [/ is_mergeable_heap_selector]
+

Added: sandbox/container_gen/libs/container_gen/doc/ref_is_multiple_assoc_sel.qbk
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ sandbox/container_gen/libs/container_gen/doc/ref_is_multiple_assoc_sel.qbk 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84957)
@@ -0,0 +1,36 @@
+[/=============================================================================
+ 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:is_multiple_assoc_selector `is_multiple_associative_selector`]
+
+[section Synopsis]
+[reference__is_multiple_associative_selector]
+[endsect]
+
+[section Description]
+Returns __mpl_true__ if the type to be returned by __container_gen__ will model
+the __Multiple_Associative_Container__ concept, __mpl_false__ otherwise.
+
+If both __TYPEOF_EMULATION__ and __MPL_CFG_NO_HAS_XXX__ are defined, then you
+must specialize this metafunction to return __mpl_true__ for your custom
+selector if and only if the type to be returned by __container_gen__ models the
+__Multiple_Associative_Container__ concept.
+[endsect]
+
+[section:definition Where defined]
+``
+#include <__boost_container_gen_is_multiple_assoc_selector_hpp__>
+``
+[endsect]
+
+[section Test]
+[test__is_multiple_associative_selector]
+[endsect]
+
+[endsect] [/ is_multiple_associative_selector]
+

Added: sandbox/container_gen/libs/container_gen/doc/ref_is_muta_heap_selector.qbk
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ sandbox/container_gen/libs/container_gen/doc/ref_is_muta_heap_selector.qbk 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84957)
@@ -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:is_mutable_heap_selector `is_mutable_heap_selector`]
+
+[section Synopsis]
+[reference__is_mutable_heap_selector]
+[endsect]
+
+[section Description]
+A __Boost_Heap__ model type is *mutable* if and only if:
+
+ * It defines a nested `handle_type` type.
+ * Its `push()` member function returns an object of type `handle_type`.
+ * It defines two `update()` member function overloads--one taking in
+ only a reference-to-`const` `handle_type`, the other also taking in
+ a reference-to-`const` `value_type`--both of which update the invoking
+ heap to reflect the change in priority.
+ * It defines two `increase()` member function overloads--one taking in
+ only a reference-to-`const` `handle_type`, the other also taking in
+ a reference-to-`const` `value_type`--both of which update the invoking
+ heap to reflect the change in priority.
+ * It defines two `decrease()` member function overloads--one taking in
+ only a reference-to-`const` `handle_type`, the other also taking in
+ a reference-to-`const` `value_type`--both of which update the invoking
+ heap to reflect the change in priority.
+
+This metafunction returns __mpl_true__ if the specified selector will cause
+__container_gen__ to return a mutable __Boost_Heap__ model type, __mpl_false__
+otherwise.
+
+If __MPL_CFG_NO_HAS_XXX__ is defined, then you must specialize this
+metafunction to return __mpl_true__ for your custom selector if and only if
+the type to be returned by __container_gen__ is a mutable __Boost_Heap__ model
+type.
+[endsect]
+
+[section:definition Where defined]
+``
+#include <__boost_container_gen_is_mutable_heap_selector_hpp__>
+``
+[endsect]
+
+[section Example]
+__Boost_Heap__ model types that are mutable can be used by sorting algorithms
+that need to handle changing priority values, e.g. weighted pathfinding.
+
+[example__is_mutable_heap_selector__true]
+
+On the other hand, __Boost_Heap__ model types that are not mutable are more
+lightweight for simpler sorting algorithms.
+
+[example__is_mutable_heap_selector__false]
+
+This metafunction differentiates between the two categories.
+
+[example__is_mutable_heap_selector]
+[endsect]
+
+[section Test]
+[test__is_mutable_heap_selector]
+[endsect]
+
+[endsect] [/ is_mutable_heap_selector]
+

Added: sandbox/container_gen/libs/container_gen/doc/ref_is_o_iter_heap_selector.qbk
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ sandbox/container_gen/libs/container_gen/doc/ref_is_o_iter_heap_selector.qbk 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84957)
@@ -0,0 +1,37 @@
+[/=============================================================================
+ 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:is_ord_iter_heap_selector `is_order_iteratable_heap_selector`]
+
+[section Synopsis]
+[reference__is_order_iteratable_heap_selector]
+[endsect]
+
+[section Description]
+Returns __mpl_true__ if the type to be returned by __container_gen__ is a
+__Boost_Heap__ model type that supports ordered iterators, __mpl_false__
+otherwise.
+
+If __MPL_CFG_NO_HAS_XXX__ is defined, then you must specialize this
+metafunction to return __mpl_true__ for your custom selector if and only if
+the type to be returned by __container_gen__ is a __Boost_Heap__ model type
+that supports ordered iterators.
+[endsect]
+
+[section:definition Where defined]
+``
+#include <__boost_container_gen_is_order_iter_heap_selector_hpp__>
+``
+[endsect]
+
+[section Test]
+[test__is_order_iteratable_heap_selector]
+[endsect]
+
+[endsect] [/ is_order_iteratable_heap_selector]
+

Added: sandbox/container_gen/libs/container_gen/doc/ref_is_ptr_selector.qbk
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ sandbox/container_gen/libs/container_gen/doc/ref_is_ptr_selector.qbk 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84957)
@@ -0,0 +1,31 @@
+[/=============================================================================
+ 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:is_ptr_selector `is_ptr_selector`]
+
+[section Synopsis]
+[reference__is_ptr_selector]
+[endsect]
+
+[section Description]
+Returns __mpl_true__ if the specified selector will cause __container_gen__ to
+return a __Boost_Pointer_Container__ type, __mpl_false__ otherwise.
+[endsect]
+
+[section:definition Where defined]
+``
+#include <__boost_container_gen_is_ptr_selector_hpp__>
+``
+[endsect]
+
+[section Test]
+[test__is_ptr_selector]
+[endsect]
+
+[endsect] [/ is_ptr_selector]
+

Added: sandbox/container_gen/libs/container_gen/doc/ref_is_queue_selector.qbk
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ sandbox/container_gen/libs/container_gen/doc/ref_is_queue_selector.qbk 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84957)
@@ -0,0 +1,31 @@
+[/=============================================================================
+ 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:is_queue_selector `is_queue_selector`]
+
+[section Synopsis]
+[reference__is_queue_selector]
+[endsect]
+
+[section Description]
+Returns __mpl_true__ if the specified selector will cause __container_gen__ to
+return a __std_queue__ template instantiation, __mpl_false__ otherwise.
+[endsect]
+
+[section:definition Where defined]
+``
+#include <__boost_container_gen_is_queue_selector_hpp__>
+``
+[endsect]
+
+[section Test]
+[test__is_queue_selector]
+[endsect]
+
+[endsect] [/ is_queue_selector]
+

Added: sandbox/container_gen/libs/container_gen/doc/ref_is_rand_access_selector.qbk
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ sandbox/container_gen/libs/container_gen/doc/ref_is_rand_access_selector.qbk 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84957)
@@ -0,0 +1,39 @@
+[/=============================================================================
+ 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:is_random_access_selector `is_random_access_selector`]
+
+[section Synopsis]
+[reference__is_random_access_selector]
+[endsect]
+
+[section Description]
+The __graph_adjacency_list__ class template uses this metafunction to determine
+whether or not it will provide an internal property map that associates its
+vertex descriptors with unique indices. Returns __mpl_true__ if the type to be
+returned by __container_gen__ will model the __Random_Access_Container__
+concept, __mpl_false__ otherwise.
+
+If __MPL_CFG_NO_HAS_XXX__ is defined, then you must specialize this
+metafunction to return __mpl_true__ for your custom selector if and only if
+the __container_gen__ return type models the __Random_Access_Container__
+concept.
+[endsect]
+
+[section:definition Where defined]
+``
+#include <__boost_container_gen_is_random_access_selector_hpp__>
+``
+[endsect]
+
+[section Test]
+[test__is_random_access_selector]
+[endsect]
+
+[endsect] [/ is_random_access_selector]
+

Added: sandbox/container_gen/libs/container_gen/doc/ref_is_recursive_selector.qbk
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ sandbox/container_gen/libs/container_gen/doc/ref_is_recursive_selector.qbk 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84957)
@@ -0,0 +1,34 @@
+[/=============================================================================
+ Copyright (C) 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:is_recursive_selector `is_recursive_selector`]
+
+[section Synopsis]
+[reference__is_recursive_selector]
+[endsect]
+
+[section Description]
+Returns __mpl_true__ if the type to be returned by __container_gen__ can be
+used to define a __Recursive_Container__, __mpl_false__ otherwise.
+
+The current implementation returns __mpl_true__ when passed in selectors
+for which __container_gen__ will return a __Boost_Container__ type, a
+__Boost_Pointer_Container__ type, or a __Boost_Unordered__ container; it will
+return __mpl_false__ for all other types of selectors. Specialize this
+metafunction to return __mpl_true__ for your custom selector if and only if the
+type to be returned by __container_gen__ supports __recursive_data_types__.
+[endsect]
+
+[section:definition Where defined]
+``
+#include <__boost_container_gen_is_recursive_selector_hpp__>
+``
+[endsect]
+
+[endsect] [/ is_recursive_selector]
+

Added: sandbox/container_gen/libs/container_gen/doc/ref_is_reversible_selector.qbk
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ sandbox/container_gen/libs/container_gen/doc/ref_is_reversible_selector.qbk 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84957)
@@ -0,0 +1,36 @@
+[/=============================================================================
+ 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:is_reversible_selector `is_reversible_selector`]
+
+[section Synopsis]
+[reference__is_reversible_selector]
+[endsect]
+
+[section Description]
+Returns __mpl_true__ if the type to be returned by __container_gen__ will model
+the __Reversible_Container__ concept, __mpl_false__ otherwise.
+
+If __MPL_CFG_NO_HAS_XXX__ is defined, then you must specialize this
+metafunction to return __mpl_false__ for your custom selector if and only if
+the __container_gen__ return type does *not* model the __Reversible_Container__
+concept.
+[endsect]
+
+[section:definition Where defined]
+``
+#include <__boost_container_gen_is_reversible_selector_hpp__>
+``
+[endsect]
+
+[section Test]
+[test__is_reversible_selector]
+[endsect]
+
+[endsect] [/ is_reversible_selector]
+

Added: sandbox/container_gen/libs/container_gen/doc/ref_is_stack_selector.qbk
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ sandbox/container_gen/libs/container_gen/doc/ref_is_stack_selector.qbk 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84957)
@@ -0,0 +1,31 @@
+[/=============================================================================
+ 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:is_stack_selector `is_stack_selector`]
+
+[section Synopsis]
+[reference__is_stack_selector]
+[endsect]
+
+[section Description]
+Returns __mpl_true__ if the specified selector will cause __container_gen__ to
+return a __std_stack__ template instantiation, __mpl_false__ otherwise.
+[endsect]
+
+[section:definition Where defined]
+``
+#include <__boost_container_gen_is_stack_selector_hpp__>
+``
+[endsect]
+
+[section Test]
+[test__is_stack_selector]
+[endsect]
+
+[endsect] [/ is_stack_selector]
+

Added: sandbox/container_gen/libs/container_gen/doc/ref_is_std_heap_selector.qbk
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ sandbox/container_gen/libs/container_gen/doc/ref_is_std_heap_selector.qbk 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84957)
@@ -0,0 +1,31 @@
+[/=============================================================================
+ 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:is_std_heap_selector `is_std_heap_selector`]
+
+[section Synopsis]
+[reference__is_std_heap_selector]
+[endsect]
+
+[section Description]
+Returns __mpl_true__ if the specified selector will cause __container_gen__ to
+return a __std_priority_queue__ type, __mpl_false__ otherwise.
+[endsect]
+
+[section:definition Where defined]
+``
+#include <__boost_container_gen_is_std_heap_selector_hpp__>
+``
+[endsect]
+
+[section Test]
+[test__is_std_heap_selector]
+[endsect]
+
+[endsect] [/ is_std_heap_selector]
+

Added: sandbox/container_gen/libs/container_gen/doc/ref_is_tr1_selector.qbk
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ sandbox/container_gen/libs/container_gen/doc/ref_is_tr1_selector.qbk 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84957)
@@ -0,0 +1,34 @@
+[/=============================================================================
+ 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:is_tr1_selector `is_tr1_selector`]
+
+[section Synopsis]
+[reference__is_tr1_selector]
+[endsect]
+
+[section Description]
+Returns __mpl_true__ if the specified selector type is `tr1_hash_selector` or
+`tr1_binary_predicate_selector`, or if the type to be returned by
+__container_gen__ is a __tr1_array__, a __tr1_unordered_set__, a
+__tr1_unordered_multiset__, a __tr1_unordered_map__, or a
+__tr1_unordered_multimap__; __mpl_false__ otherwise.
+[endsect]
+
+[section:definition Where defined]
+``
+#include <__boost_container_gen_is_tr1_selector_hpp__>
+``
+[endsect]
+
+[section Test]
+[test__is_tr1_selector]
+[endsect]
+
+[endsect] [/ is_tr1_selector]
+

Added: sandbox/container_gen/libs/container_gen/doc/ref_is_unique_assoc_sel.qbk
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ sandbox/container_gen/libs/container_gen/doc/ref_is_unique_assoc_sel.qbk 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84957)
@@ -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:is_unique_assoc_selector `is_unique_associative_selector`]
+
+[section Synopsis]
+[reference__is_unique_associative_selector]
+[endsect]
+
+[section Description]
+The __graph_parallel_edge_traits__ metafunction uses this metafunction to
+specify whether or not the storage type returned by __container_gen__ will
+allow parallel edges--that is, if the storage type will *not* model the
+__Unique_Associative_Container__ concept. Returns __mpl_true__ if the storage
+type *will* model the __Unique_Associative_Container__ concept, __mpl_false__
+otherwise.
+
+If both __TYPEOF_EMULATION__ and __MPL_CFG_NO_HAS_XXX__ are defined, then you
+must specialize this metafunction to return __mpl_true__ for your custom
+selector if and only if the type to be returned by __container_gen__ models the
+__Unique_Associative_Container__ concept.
+[endsect]
+
+[section:definition Where defined]
+``
+#include <__boost_container_gen_is_unique_assoc_selector_hpp__>
+``
+[endsect]
+
+[section Test]
+[test__is_unique_associative_selector]
+[endsect]
+
+[endsect] [/ is_unique_associative_selector]
+

Added: sandbox/container_gen/libs/container_gen/doc/ref_push_range_function_gen.qbk
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ sandbox/container_gen/libs/container_gen/doc/ref_push_range_function_gen.qbk 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84957)
@@ -0,0 +1,81 @@
+[/=============================================================================
+ 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:push_range_function_gen `push_range_function_gen`]
+
+[section Synopsis]
+[reference__push_range_function_gen]
+[endsect]
+
+[section Description]
+Returns a __Default_Constructible__ function object type whose call operator
+will take in a reference to a container and either two __Input_Iterator__
+arguments or a __Single_Pass_Range__ argument. In practice, the type of the
+container must be produced by __container_gen__ when given the same selector
+template argument.
+
+If the container type models the __Random_Access_Container__ concept, then the
+function object will append the range specified by the other argument(s) to the
+back of the container. The call operator's return value will be a
+__Single_Pass_Range__ over the elements inserted in the container.
+
+If the container type models the __Sequence__ concept, then the function object
+will forward the other argument(s) to the container's range insertion method;
+furthermore, if the container type models the __Front_Insertion_Sequence__
+concept, then the point of insertion will be before the beginning; otherwise,
+if the container type models the __Back_Insertion_Sequence__ concept, then the
+point of insertion will be the container's past-the-end iterator. The call
+operator's return value will be a __Single_Pass_Range__ over the elements
+inserted in the container.
+
+If the container type models the __Associative_Container__ concept, then the
+function object will forward each element in the specified range to the
+container's insertion method. If __has_stable_iterators_selector__ evaluates
+to __mpl_true__ for the specified selector, then the call operator's return
+value will be a __Single_Pass_Range__ of iterators pointing to each of the
+elements that were successfully inserted in the container.
+
+The return type of this metafunction also defines an indexing operator that
+accepts a reference to a container and returns a proxy object that allows range
+insertion function calls to be chained together, much like __Boost_Assign__.
+[endsect]
+
+[section:definition Where defined]
+``
+#include <__boost_container_gen_push_range_function_gen_hpp__>
+``
+[endsect]
+
+[section Example]
+Use the __range_equal__ algorithm to test two ranges for equality. To handle
+the case where the range returned from a call to the `push_range_function_gen`
+return function type is a __Single_Pass_Range__ of iterators, use
+__range_adaptors_indirect__.
+
+[test__result_range]
+
+Use the __emplace_function_gen__ metafunction to construct containers using
+individual elements, then use this metafunction to append the elements of
+one container to another in a single step. Use the __insert_range_result_gen__
+metafunction to store the result of the operation.
+
+[test__push_range_function_gen]
+
+Test this metafunction across a wide variety of selector types.
+
+[test__push_range_function_gen__main]
+
+The complete test program spans the following source files:
+
+ * __libs_container_gen_test_result_range_hpp__
+ * __libs_container_gen_test_push_range_function_gen_cpp__
+
+[endsect]
+
+[endsect] [/ push_range_function_gen]
+

Added: sandbox/container_gen/libs/container_gen/doc/ref_selectors.qbk
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ sandbox/container_gen/libs/container_gen/doc/ref_selectors.qbk 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84957)
@@ -0,0 +1,275 @@
+[/=============================================================================
+ 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 Selectors]
+
+[section Synopsis]
+This library provides several selector templates, one for each
+__STL_Container__ model, __Boost_Container__, __Boost_Unordered__ container,
+__Boost_Pointer_Container__, STL container adaptor, and __Boost_Heap__ data
+structure to which it corresponds.
+
+[reference__container_selector_templates]
+
+In turn, some of the default arguments of these selector templates are
+themselves selector types.
+
+[reference__template_argument_selectors]
+
+To instantiate a model of __Associative_Container__ that stores C-style strings
+as keys, pass the appropriate one of these types as the `CompareSelector`
+argument to the corresponding container selector template.
+
+[reference__c_str_compare_selectors]
+
+This library also retains the old selector types and, for completeness,
+provides type definitions of the selector templates with default arguments.
+
+[reference__container_selector_typedefs]
+[endsect]
+
+[section Description]
+Selector templates determine the return type of the __container_gen__
+metafunction. Since the container models are not templatized on just their
+value types, the selector templates must take in analogous arguments in order
+to provide maximum flexibility. The following example demonstrates how a
+__std_list__ with a custom allocator type can become the `OutEdgeList` of a
+__graph_adjacency_list__.
+
+[example__container_gen__list_with_custom_allocator_selector]
+
+Selector templates evaluate each parameter the same way, so the following table
+will suffice in documenting the parameters. Note that fully qualified template
+parameters must be explicitly named if required by the container return type or
+when overriding the default argument type unless the table specifies that the
+argument types to which they are bound can be deduced.
+
+[table
+ [[Parameter][__Boost_Parameter__ Name][Description][Deducible?]]
+ [
+ [`ConstantSize`]
+ [`boost::constant_size_arg`]
+ [
+ An __Integral_Constant__ that determines the size of the __array__
+ or __tr1_array__ type to be returned by __container_gen__.
+ ]
+ [Yes, by __is_mpl_integral_constant__.]
+ ]
+ [
+ [`IsBoostNotStd`]
+ [`boost::is_boost_not_std_arg`]
+ [
+ A __Boolean_Integral_Constant__ that determines whether
+ __container_gen__ will return the appropriate __Boost_Container__
+ type or the corresponding C++ standard container.
+ ]
+ [Yes, by __is_mpl_boolean_constant__.]
+ ]
+ [
+ [`IsTR1NotBoost`]
+ [`boost::is_tr1_not_boost_arg`]
+ [
+ A __Boolean_Integral_Constant__ that determines whether
+ __container_gen__ will return the appropriate __Boost_TR1__
+ container type or the corresponding Boost container type.
+ ]
+ [Yes, by __is_mpl_boolean_constant__.]
+ ]
+ [
+ [`AllocatorSelector`]
+ [`boost::allocator_selector_arg`]
+ [
+ A __Unary_Metafunction_Class__ that takes in the value type and
+ returns an allocator model. The return type will become the
+ container template's `Allocator` or __heap_allocator__ argument.
+ ]
+ [Yes, by __is_allocator_selector__.]
+ ]
+ [
+ [`CompareSelector`]
+ [`boost::compare_selector_arg`]
+ [
+ If the selector template causes __container_gen__ to return a
+ __Sorted_Associative_Container__ model, a __std_priority_queue__
+ template class, or a __Boost_Heap__ data structure, then a
+ __Unary_Metafunction_Class__ that takes in the value type and
+ returns a __Strict_Weak_Ordering__ model. If the selector template
+ causes __container_gen__ to return a
+ __Hashed_Associative_Container__ model, then a
+ __Unary_Metafunction_Class__ that takes in the value type and
+ returns a __Binary_Predicate__ model. The return type of the
+ selector template will become the container template's `Compare`,
+ `Pred`, or __heap_compare__ argument.
+
+ If the selector template is `equivalence_selector`, then a
+ __Unary_Metafunction_Class__ that takes in the argument type and
+ returns a __Strict_Weak_Ordering__ model. The return type of
+ `equivalence_selector` will be the same as that of
+ __equivalence_function_gen__ passed in the __Strict_Weak_Ordering__
+ model.
+
+ By way of example, as discussed in the __Selectors_synopsis__,
+ the `c_str_equal_to_selector` type can be passed as the
+ `CompareSelector` argument to the `hash_set_selector` template,
+ which in turn can be passed to __container_gen__ to return a
+ __Hashed_Associative_Container__ model that stores C-style strings
+ as keys.
+ ]
+ [Yes, by __is_compare_selector__.]
+ ]
+ [
+ [`HashSelector`]
+ [`boost::hasher_selector_arg`]
+ [
+ A __Unary_Metafunction_Class__ that takes in the value type and
+ returns a __Hash_Function__ model. The return type will become the
+ container template's `Hash` argument.
+ ]
+ [Yes, by __is_hasher_selector__.]
+ ]
+ [
+ [`SequenceSelector`]
+ [`boost::sequence_selector_arg`]
+ [
+ A __Unary_Metafunction_Class__ that takes in the value type and
+ returns a __Sequence__ model. The return type will become the
+ container adaptor template's `Sequence` argument.
+ ]
+ [Yes, by __is_container_selector__.]
+ ]
+ [
+ [`CloneAllocator`]
+ [`boost::ptr_clone_allocator_arg`]
+ [
+ A __Clone_Allocator__ model that will become the container
+ template's corresponding argument.
+ ]
+ [
+ Yes, as long as the __MPL_CFG_NO_HAS_XXX__ preprocessor token is
+ not defined.
+ ]
+ ]
+ [
+ [`Allocator`]
+ [`boost::ptr_allocator_arg`]
+ [
+ An allocator model that will become the container template's
+ corresponding argument.
+ ]
+ [
+ Yes, as long as the __MPL_CFG_NO_HAS_XXX__ preprocessor token is
+ not defined.
+ ]
+ ]
+ [
+ [`IsStable`]
+ [__heap_stable__]
+ [
+ Causes __container_gen__ to return a __Boost_Heap__ data structure
+ that either orders elements with the same priority according to
+ insertion time or does not, depending on the value of the boolean
+ non-type template argument. The default value is `false`.
+ ]
+ [No.]
+ ]
+ [
+ [`IsMutable`]
+ [__heap_mutable__]
+ [
+ Causes __container_gen__ to return a __Boost_Heap__ data structure
+ that either allows the priority of its elements to be changed or
+ does not, depending on the value of the boolean non-type template
+ argument. The default value is `false`.
+ ]
+ [No.]
+ ]
+ [
+ [`StabilityCounterType`]
+ [__heap_stability_counter_type__]
+ [
+ Causes __container_gen__ to return a __Boost_Heap__ data structure
+ that associates an integer version count with each element in order
+ to distinguish between elements with the same priority. The
+ default type is `boost::uintmax_t`.
+ ]
+ [No.]
+ ]
+ [
+ [`ConstantTimeSize`]
+ [__heap_constant_time_size__]
+ [
+ Causes __container_gen__ to return a __Boost_Heap__ data structure
+ whose `size()` member function either has constant time complexity
+ or does not, depending on the value of the boolean non-type
+ template argument. The default value is `true`.
+ ]
+ [No.]
+ ]
+ [
+ [`Arity`]
+ [__heap_arity__]
+ [
+ Please consult the class reference of the __Boost_Heap__ data
+ structure which the selector template will cause __container_gen__
+ to return.
+ ]
+ [No.]
+ ]
+ [
+ [`StoresParentPointer`]
+ [__heap_store_parent_pointer__]
+ [
+ Please consult the class reference of the __Boost_Heap__ data
+ structure which the selector template will cause __container_gen__
+ to return.
+ ]
+ [No.]
+ ]
+]
+[endsect] [/ Description]
+
+[section:definition Where defined]
+C-style string comparator selectors:
+
+``
+#include <__boost_container_gen_c_str_cmp_selectors_hpp__>
+``
+
+Forward declarations:
+
+``
+#include <__boost_container_gen_c_str_cmp_selectors_fwd_hpp__>
+``
+
+To register them under __Boost_Typeof__:
+
+``
+#include <__boost_typeof_boost_container_gen_c_str_cmp_selectors_hpp__>
+``
+
+All other selectors and selector templates:
+
+``
+#include <__boost_container_gen_selectors_hpp__>
+``
+
+Forward declarations:
+
+``
+#include <__boost_container_gen_selectors_fwd_hpp__>
+``
+
+To register them under __Boost_Typeof__:
+
+``
+#include <__boost_typeof_boost_container_gen_selectors_hpp__>
+``
+[endsect]
+
+[endsect] [/ Selectors]
+

Added: sandbox/container_gen/libs/container_gen/doc/ref_splice_function_gen.qbk
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ sandbox/container_gen/libs/container_gen/doc/ref_splice_function_gen.qbk 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84957)
@@ -0,0 +1,85 @@
+[/=============================================================================
+ 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:splice_function_gen `splice_function_gen`]
+
+[section Synopsis]
+[reference__splice_function_gen]
+[endsect]
+
+[section Description]
+Returns a __Default_Constructible__ function object type whose call operator
+will take in a reference to the destination container, a valid iterator
+representing the point of insertion, a reference to the source container, and
+one of the following:
+
+ * A valid iterator representing the point of erasure from the source
+ container.
+ * Two __Input_Iterator__ arguments representing the source container or a
+ subrange.
+
+The container type must model the __Sequence__ concept. In practice, the
+container type must be produced by __container_gen__ when given the same
+selector template argument.
+
+The function call operator that takes in a single iterator to the source
+container will transfer that element to the destination container at the
+specified point of insertion. The return value will be an iterator pointing
+to the inserted element. If the points of insertion and erasure are the same,
+then the operation will have no effect.
+
+The function call operators that take in a subrange of the source container
+will transfer the elements in the subrange to the destination container at the
+specified point of insertion. The return value will be a __Single_Pass_Range__
+over the elements inserted in the container. The source and destination
+containers can be the same as long as the point of insertion lies outside
+the subrange. (If the point of insertion is at the beginning or just
+past-the-end of the subrange, then the operation will have no effect.)
+
+The return type of this metafunction also defines an indexing operator that
+accepts a reference to a container and returns a proxy object that allows
+splice function calls to be chained together, much like __Boost_Assign__.
+[endsect]
+
+[section:definition Where defined]
+``
+#include <__boost_container_gen_splice_function_gen_hpp__>
+``
+[endsect]
+
+[section Example]
+Use the __range_equal__ algorithm to test two ranges for equality.
+
+[test__result_range]
+
+Use the __emplace_function_gen__ metafunction to construct containers using
+individual elements, then use this metafunction to append the elements of
+one container to another in a single step. Use the __insert_range_result_gen__
+metafunction to store the result of the operation.
+
+[test__splice_function_gen]
+
+Remember that the splice operation can be performed in place--with the source
+and destination containers being the same--as long as the destination iterator
+points to a position outside the source range of input iterators.
+
+[test__splice_function_gen_in_place]
+
+Test this metafunction across a wide variety of selector types.
+
+[test__splice_function_gen__main]
+
+The complete test program spans the following source files:
+
+ * __libs_container_gen_test_result_range_hpp__
+ * __libs_container_gen_test_splice_function_gen_cpp__
+
+[endsect]
+
+[endsect] [/ splice_function_gen]
+

Added: sandbox/container_gen/libs/container_gen/doc/reference.qbk
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ sandbox/container_gen/libs/container_gen/doc/reference.qbk 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84957)
@@ -0,0 +1,84 @@
+[/=============================================================================
+ 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_selectors.qbk]
+[include ref_container_gen.qbk]
+[include ref_emplace_function_gen.qbk]
+[include ref_emplace_assoc_func_gen.qbk]
+[include ref_push_range_function_gen.qbk]
+[include ref_ins_range_function_gen.qbk]
+[include ref_splice_function_gen.qbk]
+[include ref_insert_range_result_gen.qbk]
+[include ref_is_compare_selector.qbk]
+[include ref_is_hasher_selector.qbk]
+[include ref_is_allocator_selector.qbk]
+[include ref_is_container_selector.qbk]
+[include ref_is_reversible_selector.qbk]
+[include ref_is_rand_access_selector.qbk]
+[include ref_is_associative_selector.qbk]
+[include ref_is_unique_assoc_sel.qbk]
+[include ref_is_multiple_assoc_sel.qbk]
+[include ref_is_flat_assoc_selector.qbk]
+[include ref_is_hashed_assoc_sel.qbk]
+[include ref_is_tr1_selector.qbk]
+[include ref_is_ptr_selector.qbk]
+[include ref_is_queue_selector.qbk]
+[include ref_is_stack_selector.qbk]
+[include ref_is_std_heap_selector.qbk]
+[include ref_is_heap_selector.qbk]
+[include ref_is_iter_heap_selector.qbk]
+[include ref_is_o_iter_heap_selector.qbk]
+[include ref_is_muta_heap_selector.qbk]
+[include ref_is_merge_heap_selector.qbk]
+[include ref_is_recursive_selector.qbk]
+[include ref_has_stable_iters_sel.qbk]
+[include ref_has_emplace_mfunc_sel.qbk]
+
+ * __Selectors__
+
+[heading Type Generation Metafunctions]
+
+ * __container_gen__
+ * __emplace_function_gen__
+ * __emplace_associative_function_gen__
+ * __push_range_function_gen__
+ * __insert_range_function_gen__
+ * __splice_function_gen__
+ * __insert_range_result_gen__
+
+[heading Selector Introspection Metafunctions]
+
+ * __is_container_selector__
+ * __is_compare_selector__
+ * __is_hasher_selector__
+ * __is_allocator_selector__
+ * __is_reversible_selector__
+ * __is_random_access_selector__
+ * __is_associative_selector__
+ * __is_unique_associative_selector__
+ * __is_multiple_associative_selector__
+ * __is_flat_associative_selector__
+ * __is_hashed_associative_selector__
+ * __is_tr1_selector__
+ * __is_ptr_selector__
+ * __is_queue_selector__
+ * __is_stack_selector__
+ * __is_std_heap_selector__
+ * __is_heap_selector__
+ * __is_iteratable_heap_selector__
+ * __is_order_iteratable_heap_selector__
+ * __is_mutable_heap_selector__
+ * __is_mergeable_heap_selector__
+ * __is_recursive_selector__
+ * __has_stable_iterators_selector__
+ * __has_emplace_member_function_selector__
+
+[endsect] [/ Reference]
+

Added: sandbox/container_gen/libs/container_gen/test/emplace_function_gen.cpp
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ sandbox/container_gen/libs/container_gen/test/emplace_function_gen.cpp 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84957)
@@ -0,0 +1,774 @@
+// 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)
+
+#include <boost/config.hpp>
+
+#if defined BOOST_MSVC
+ #pragma warning (push)
+ #pragma warning (disable : 4996) // fn called w/params that may be unsafe
+#endif
+
+#include <utility>
+#include <cstring>
+#include <boost/mpl/bool.hpp>
+#include <boost/mpl/or.hpp>
+#include <boost/range/algorithm/equal.hpp>
+#include <boost/mpl/if.hpp>
+#include <boost/heap/heap_merge.hpp>
+#include <boost/container_gen/selectors.hpp>
+#include <boost/container_gen/container_gen.hpp>
+#include <boost/container_gen/emplace_function_gen.hpp>
+#include <boost/container_gen/is_unique_assoc_selector.hpp>
+#include <boost/container_gen/is_mutable_heap_selector.hpp>
+#include <boost/container_gen/is_mergeable_heap_selector.hpp>
+#include "type_definitions.hpp"
+#include <boost/test/minimal.hpp>
+
+template <typename Emplacer, typename C>
+void
+ test_emplacer(
+ Emplacer const& emplacer
+ , C& c
+ , bool should_be_successful
+ , char const* value
+ )
+{
+ typename C::size_type old_size = c.size();
+ std::pair<typename C::iterator,bool> p = emplacer(c, value);
+
+ BOOST_CHECK(p.second == should_be_successful);
+
+ if (p.second)
+ {
+ BOOST_CHECK(!strcmp(p.first->c_str(), value));
+ BOOST_CHECK(c.size() == old_size + 1);
+ }
+ else
+ {
+ BOOST_CHECK(c.size() == old_size);
+ }
+}
+
+template <typename S1, typename S2>
+void test_emplace_function_gen_bare()
+{
+ typename boost::container_gen<S1,test_string>::type test_container_1;
+ typename boost::emplace_function_gen<S1>::type emplacer_1;
+ bool is_multi = !boost::is_unique_associative_selector<S1>::value;
+
+ test_emplacer(emplacer_1, test_container_1, true, "able");
+ test_emplacer(emplacer_1, test_container_1, true, "fox");
+ test_emplacer(emplacer_1, test_container_1, true, "baker");
+ test_emplacer(emplacer_1, test_container_1, true, "charlie");
+ test_emplacer(emplacer_1, test_container_1, true, "dog");
+ test_emplacer(emplacer_1, test_container_1, is_multi, "able");
+ test_emplacer(emplacer_1, test_container_1, is_multi, "fox");
+ test_emplacer(emplacer_1, test_container_1, is_multi, "baker");
+ test_emplacer(emplacer_1, test_container_1, is_multi, "charlie");
+ test_emplacer(emplacer_1, test_container_1, is_multi, "dog");
+
+ typename boost::container_gen<S2,test_string>::type test_container_2;
+ typename boost::emplace_function_gen<S2>::type emplacer_2;
+
+ emplacer_2[test_container_2]
+ ("able")("fox")("baker")("charlie")("dog")
+ ("able")("fox")("baker")("charlie")("dog");
+
+ BOOST_CHECK(boost::range::equal(test_container_1, test_container_2));
+}
+
+template <typename Selector>
+void test_emplace_function_gen()
+{
+ test_emplace_function_gen_bare<Selector,Selector>();
+}
+
+template <typename Pair1, typename Pair2>
+void test_emplace_results(Pair1 const& p1, Pair2 const& p2)
+{
+ BOOST_CHECK(p1.second == p2.second);
+
+ if (p1.second)
+ {
+ BOOST_CHECK(*p1.first == *p2.first);
+ }
+}
+
+template <typename Selector1, typename Selector2>
+void test_emplace_function_gens()
+{
+ test_emplace_function_gen_bare<Selector1,Selector2>();
+ test_emplace_function_gen_bare<Selector2,Selector1>();
+
+ typename boost::container_gen<Selector1,test_string>::type container_1;
+ typename boost::container_gen<Selector2,test_string>::type container_2;
+ typename boost::emplace_function_gen<Selector1>::type adder_1;
+ typename boost::emplace_function_gen<Selector2>::type adder_2;
+
+ test_emplace_results(
+ adder_1(container_1, "able")
+ , adder_2(container_2, "able")
+ );
+ BOOST_CHECK(boost::range::equal(container_1, container_2));
+ test_emplace_results(
+ adder_1(container_1, "fox")
+ , adder_2(container_2, "fox")
+ );
+ BOOST_CHECK(boost::range::equal(container_1, container_2));
+ test_emplace_results(adder_1(container_1), adder_2(container_2));
+ BOOST_CHECK(boost::range::equal(container_1, container_2));
+ test_emplace_results(
+ adder_1(container_1, "baker")
+ , adder_2(container_2, "baker")
+ );
+ BOOST_CHECK(boost::range::equal(container_1, container_2));
+ test_emplace_results(
+ adder_1(container_1, "charlie")
+ , adder_2(container_2, "charlie")
+ );
+ BOOST_CHECK(boost::range::equal(container_1, container_2));
+ test_emplace_results(
+ adder_1(container_1, "dog")
+ , adder_2(container_2, "dog")
+ );
+ BOOST_CHECK(boost::range::equal(container_1, container_2));
+ test_emplace_results(
+ adder_1(container_1, "able")
+ , adder_2(container_2, "able")
+ );
+ BOOST_CHECK(boost::range::equal(container_1, container_2));
+ test_emplace_results(
+ adder_1(container_1, "fox")
+ , adder_2(container_2, "fox")
+ );
+ BOOST_CHECK(boost::range::equal(container_1, container_2));
+ test_emplace_results(adder_1(container_1), adder_2(container_2));
+ BOOST_CHECK(boost::range::equal(container_1, container_2));
+ test_emplace_results(
+ adder_1(container_1, "baker")
+ , adder_2(container_2, "baker")
+ );
+ BOOST_CHECK(boost::range::equal(container_1, container_2));
+ test_emplace_results(
+ adder_1(container_1, "charlie")
+ , adder_2(container_2, "charlie")
+ );
+ BOOST_CHECK(boost::range::equal(container_1, container_2));
+ test_emplace_results(
+ adder_1(container_1, "dog")
+ , adder_2(container_2, "dog")
+ );
+ BOOST_CHECK(boost::range::equal(container_1, container_2));
+}
+
+template <typename T>
+void test_recursive_element(T const& t)
+{
+ BOOST_CHECK(
+ !strcmp(t.word.c_str(), "") || !strcmp(t.word.c_str(), "secret")
+ );
+ BOOST_CHECK((t.number == 0) || (t.number == 42));
+ BOOST_CHECK((t.letter == '\0') || (t.letter == 'X'));
+
+ typedef typename T::next_level_t C;
+ typename C::const_iterator itr_end = t.next_level.end();
+
+ for (
+ typename C::const_iterator itr = t.next_level.begin();
+ itr != itr_end;
+ ++itr
+ )
+ {
+ BOOST_CHECK(itr->previous_level == &t);
+ test_recursive_element(*itr);
+ }
+}
+
+template <typename Emplacer, typename T>
+void
+ test_emplacer_recursive(
+ Emplacer const& emplacer
+ , T& t
+ , bool should_be_successful
+ )
+{
+ typedef typename T::next_level_t C;
+ typename C::size_type old_size = t.next_level.size();
+ std::pair<typename C::iterator,bool> p = emplacer(t.next_level);
+
+ BOOST_CHECK(p.second == should_be_successful);
+
+ if (p.second)
+ {
+ test_recursive_element(*p.first);
+ BOOST_CHECK(!strcmp(p.first->word.c_str(), ""));
+ BOOST_CHECK(p.first->number == 0);
+ BOOST_CHECK(p.first->letter == '\0');
+ BOOST_CHECK(!p.first->flag);
+ BOOST_CHECK(t.next_level.size() == old_size + 1);
+ }
+ else
+ {
+ BOOST_CHECK(t.next_level.size() == old_size);
+ }
+}
+
+template <typename Emplacer, typename T>
+void
+ test_emplacer_recursive(
+ Emplacer const& emplacer
+ , T& t
+ , bool should_be_successful
+ , char const* word
+ )
+{
+ typedef typename T::next_level_t C;
+ typename C::size_type old_size = t.next_level.size();
+ std::pair<typename C::iterator,bool> p = emplacer(t.next_level, word);
+
+ BOOST_CHECK(p.second == should_be_successful);
+
+ if (p.second)
+ {
+ test_recursive_element(*p.first);
+ BOOST_CHECK(!strcmp(p.first->word.c_str(), word));
+ BOOST_CHECK(p.first->number == 0);
+ BOOST_CHECK(p.first->letter == '\0');
+ BOOST_CHECK(!p.first->flag);
+ BOOST_CHECK(t.next_level.size() == old_size + 1);
+ }
+ else
+ {
+ BOOST_CHECK(t.next_level.size() == old_size);
+ }
+}
+
+template <typename Emplacer, typename T>
+void
+ test_emplacer_recursive(
+ Emplacer const& emplacer
+ , T& t
+ , bool should_be_successful
+ , char const* word
+ , long n
+ )
+{
+ typedef typename T::next_level_t C;
+ typename C::size_type old_size = t.next_level.size();
+ std::pair<typename C::iterator,bool> p = emplacer(t.next_level, word, n);
+
+ BOOST_CHECK(p.second == should_be_successful);
+
+ if (p.second)
+ {
+ test_recursive_element(*p.first);
+ BOOST_CHECK(!strcmp(p.first->word.c_str(), word));
+ BOOST_CHECK(p.first->number == n);
+ BOOST_CHECK(p.first->letter == '\0');
+ BOOST_CHECK(!p.first->flag);
+ BOOST_CHECK(t.next_level.size() == old_size + 1);
+ }
+ else
+ {
+ BOOST_CHECK(t.next_level.size() == old_size);
+ }
+}
+
+template <typename Emplacer, typename T>
+void
+ test_emplacer_recursive(
+ Emplacer const& emplacer
+ , T& t
+ , bool should_be_successful
+ , char const* word
+ , long n
+ , char letter
+ )
+{
+ typedef typename T::next_level_t C;
+ typename C::size_type old_size = t.next_level.size();
+ std::pair<
+ typename C::iterator
+ , bool
+ > p = emplacer(t.next_level, word, n, letter);
+
+ BOOST_CHECK(p.second == should_be_successful);
+
+ if (p.second)
+ {
+ test_recursive_element(*p.first);
+ BOOST_CHECK(!strcmp(p.first->word.c_str(), word));
+ BOOST_CHECK(p.first->number == n);
+ BOOST_CHECK(p.first->letter == letter);
+ BOOST_CHECK(!p.first->flag);
+ BOOST_CHECK(t.next_level.size() == old_size + 1);
+ }
+ else
+ {
+ BOOST_CHECK(t.next_level.size() == old_size);
+ }
+}
+
+template <typename Emplacer, typename T>
+void
+ test_emplacer_recursive(
+ Emplacer const& emplacer
+ , T& t
+ , bool should_be_successful
+ , char const* word
+ , long n
+ , char letter
+ , bool b
+ )
+{
+ typedef typename T::next_level_t C;
+ typename C::size_type old_size = t.next_level.size();
+ std::pair<
+ typename C::iterator
+ , bool
+ > p = emplacer(t.next_level, word, n, letter, b);
+
+ BOOST_CHECK(p.second == should_be_successful);
+
+ if (p.second)
+ {
+ test_recursive_element(*p.first);
+ BOOST_CHECK(!strcmp(p.first->word.c_str(), word));
+ BOOST_CHECK(p.first->number == n);
+ BOOST_CHECK(p.first->letter == letter);
+ BOOST_CHECK(p.first->flag == b);
+ BOOST_CHECK(t.next_level.size() == old_size + 1);
+ }
+ else
+ {
+ BOOST_CHECK(t.next_level.size() == old_size);
+ }
+}
+
+template <typename Selector>
+void test_emplace_function_gen_recursive()
+{
+ test_recursive_data<Selector> top;
+ typename boost::emplace_function_gen<Selector>::type emplacer;
+
+ test_emplacer_recursive(emplacer, top, true);
+ test_emplacer_recursive(emplacer, top, true, "secret");
+ test_emplacer_recursive(
+ emplacer
+ , *(++top.next_level.begin())
+ , true
+ , "secret"
+ , 42
+ );
+ test_emplacer_recursive(
+ emplacer
+ , *(++top.next_level.begin())
+ , true
+ , "secret"
+ , 42
+ , 'X'
+ );
+ test_emplacer_recursive(emplacer, top, true, "secret", 42, 'X', true);
+}
+
+template <typename Selector>
+void test_emplace_stack()
+{
+ typename boost::container_gen<Selector,int>::type int_stack;
+ typename boost::emplace_function_gen<Selector>::type pusher;
+
+ pusher[int_stack](3)(5)(1);
+ BOOST_CHECK(1 == int_stack.top());
+ int_stack.pop();
+ BOOST_CHECK(5 == int_stack.top());
+ int_stack.pop();
+ BOOST_CHECK(3 == int_stack.top());
+ int_stack.pop();
+ BOOST_CHECK(int_stack.empty());
+}
+
+template <typename Selector>
+void test_emplace_queue()
+{
+ typename boost::container_gen<Selector,int>::type int_queue;
+ typename boost::emplace_function_gen<Selector>::type pusher;
+
+ pusher[int_queue](3)(5)(1);
+ BOOST_CHECK(3 == int_queue.front());
+ int_queue.pop();
+ BOOST_CHECK(5 == int_queue.front());
+ int_queue.pop();
+ BOOST_CHECK(1 == int_queue.front());
+ int_queue.pop();
+ BOOST_CHECK(int_queue.empty());
+}
+
+//[example__is_mergeable_heap_selector__true
+template <typename Heap>
+void test_heap_merge(Heap& heap1, Heap& heap2, boost::mpl::true_)
+{
+ heap1.merge(heap2);
+}
+//]
+
+//[example__is_mergeable_heap_selector__false
+template <typename Heap>
+void test_heap_merge(Heap& heap1, Heap& heap2, boost::mpl::false_)
+{
+ boost::heap::heap_merge(heap1, heap2);
+}
+//]
+
+//[example__is_mergeable_heap_selector
+template <typename Selector>
+void test_heap_merge()
+{
+ typename boost::container_gen<Selector,int>::type heap_1, heap_2;
+ typename boost::emplace_function_gen<Selector>::type pusher;
+
+ pusher[heap_1](3)(5)(1);
+ pusher[heap_2](2)(4)(0);
+ test_heap_merge(
+ heap_1
+ , heap_2
+ , boost::is_mergeable_heap_selector<Selector>()
+ );
+
+ for (BOOST_CHECK(heap_2.empty()); !heap_2.empty(); heap_2.pop())
+ {
+ }
+
+ BOOST_CHECK(5 == heap_1.top());
+ heap_1.pop();
+ BOOST_CHECK(4 == heap_1.top());
+ heap_1.pop();
+ BOOST_CHECK(3 == heap_1.top());
+ heap_1.pop();
+ BOOST_CHECK(2 == heap_1.top());
+ heap_1.pop();
+ BOOST_CHECK(1 == heap_1.top());
+ heap_1.pop();
+ BOOST_CHECK(0 == heap_1.top());
+ heap_1.pop();
+ BOOST_CHECK(heap_1.empty());
+}
+//]
+
+//[example__is_mutable_heap_selector__true
+template <typename Selector>
+void test_emplace_heap(boost::mpl::true_)
+{
+ typedef typename boost::container_gen<Selector,int>::type Heap;
+
+ Heap heap;
+ typename boost::emplace_function_gen<Selector>::type pusher;
+ typename Heap::handle_type handle_1 = pusher(heap, 3);
+ typename Heap::handle_type handle_2 = pusher(heap, 5);
+ typename Heap::handle_type handle_3 = pusher(heap, 1);
+
+ heap.update(handle_1, 4);
+ heap.increase(handle_2, 7);
+ heap.decrease(handle_3, 0);
+ BOOST_CHECK(7 == heap.top());
+ heap.pop();
+ BOOST_CHECK(4 == heap.top());
+ heap.pop();
+ BOOST_CHECK(0 == heap.top());
+ heap.pop();
+ BOOST_CHECK(heap.empty());
+}
+//]
+
+//[example__is_mutable_heap_selector__false
+template <typename Selector>
+void test_emplace_heap(boost::mpl::false_)
+{
+ typename boost::container_gen<Selector,int>::type heap;
+ typename boost::emplace_function_gen<Selector>::type pusher;
+
+ pusher[heap](2)(4)(0);
+ BOOST_CHECK(4 == heap.top());
+ heap.pop();
+ BOOST_CHECK(2 == heap.top());
+ heap.pop();
+ BOOST_CHECK(0 == heap.top());
+ heap.pop();
+ BOOST_CHECK(heap.empty());
+}
+//]
+
+//[example__is_mutable_heap_selector
+template <typename Selector>
+void test_emplace_heap()
+{
+ test_emplace_heap<Selector>(
+ boost::is_mutable_heap_selector<Selector>()
+ );
+ // ...
+ //<-
+ test_heap_merge<Selector>();
+ //->
+}
+//]
+
+#if defined BOOST_MSVC
+ #pragma warning (pop)
+#endif
+
+int test_main(int argc, char** argv)
+{
+ test_emplace_function_gen<boost::vecS>();
+ test_emplace_function_gen<boost::dequeS>();
+ test_emplace_function_gen<boost::listS>();
+ test_emplace_function_gen<boost::ptr_vecS>();
+ test_emplace_function_gen<boost::ptr_dequeS>();
+ test_emplace_function_gen<boost::ptr_listS>();
+#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION || \
+ !defined BOOST_NO_SLIST
+ test_emplace_function_gen<boost::slistS>();
+#endif
+ test_emplace_function_gen<boost::setS>();
+ test_emplace_function_gen<boost::mapS>();
+ test_emplace_function_gen<boost::multisetS>();
+ test_emplace_function_gen<boost::multimapS>();
+#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION || defined BOOST_HAS_HASH
+ test_emplace_function_gen<boost::hash_setS>();
+ test_emplace_function_gen<boost::hash_mapS>();
+ test_emplace_function_gen<boost::hash_multisetS>();
+ test_emplace_function_gen<boost::hash_multimapS>();
+#endif
+ test_emplace_function_gen<boost::ptr_setS>();
+ test_emplace_function_gen<boost::ptr_mapS>();
+ test_emplace_function_gen<boost::ptr_multisetS>();
+ test_emplace_function_gen<boost::ptr_multimapS>();
+#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+ test_emplace_function_gen<boost::ptr_hash_setS>();
+ test_emplace_function_gen<boost::ptr_hash_mapS>();
+ test_emplace_function_gen<boost::ptr_hash_multisetS>();
+ test_emplace_function_gen<boost::ptr_hash_multimapS>();
+ test_emplace_function_gen<boost::vector_selector<boost::mpl::true_> >();
+ test_emplace_function_gen<boost::deque_selector<boost::mpl::true_> >();
+ test_emplace_function_gen<boost::list_selector<boost::mpl::true_> >();
+ test_emplace_function_gen<boost::set_selector<boost::mpl::true_> >();
+ test_emplace_function_gen<boost::map_selector<boost::mpl::true_> >();
+ test_emplace_function_gen<boost::multiset_selector<boost::mpl::true_> >();
+ test_emplace_function_gen<boost::multimap_selector<boost::mpl::true_> >();
+ test_emplace_function_gen<boost::hash_set_selector<boost::mpl::true_> >();
+ test_emplace_function_gen<boost::hash_map_selector<boost::mpl::true_> >();
+ test_emplace_function_gen<
+ boost::hash_multiset_selector<boost::mpl::true_>
+ >();
+ test_emplace_function_gen<
+ boost::hash_multimap_selector<boost::mpl::true_>
+ >();
+ test_emplace_function_gen<boost::flat_setS>();
+ test_emplace_function_gen<boost::flat_mapS>();
+ test_emplace_function_gen<boost::flat_multisetS>();
+ test_emplace_function_gen<boost::flat_multimapS>();
+#endif // !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+
+ test_emplace_function_gens<boost::vecS,boost::dequeS>();
+ test_emplace_function_gens<boost::vecS,boost::listS>();
+ test_emplace_function_gens<boost::vecS,boost::ptr_vecS>();
+ test_emplace_function_gens<boost::vecS,boost::ptr_dequeS>();
+ test_emplace_function_gens<boost::vecS,boost::ptr_listS>();
+ test_emplace_function_gens<boost::dequeS,boost::listS>();
+ test_emplace_function_gens<boost::dequeS,boost::ptr_vecS>();
+ test_emplace_function_gens<boost::dequeS,boost::ptr_dequeS>();
+ test_emplace_function_gens<boost::dequeS,boost::ptr_listS>();
+ test_emplace_function_gens<boost::listS,boost::ptr_vecS>();
+ test_emplace_function_gens<boost::listS,boost::ptr_dequeS>();
+ test_emplace_function_gens<boost::listS,boost::ptr_listS>();
+ test_emplace_function_gens<boost::ptr_vecS,boost::ptr_dequeS>();
+ test_emplace_function_gens<boost::ptr_vecS,boost::ptr_listS>();
+ test_emplace_function_gens<boost::ptr_dequeS,boost::ptr_listS>();
+#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION || defined BOOST_HAS_HASH
+ test_emplace_function_gens<boost::hash_setS,boost::hash_mapS>();
+ test_emplace_function_gens<boost::hash_multisetS,boost::hash_multimapS>();
+#endif
+ test_emplace_function_gens<boost::setS,boost::mapS>();
+ test_emplace_function_gens<boost::setS,boost::ptr_setS>();
+ test_emplace_function_gens<boost::setS,boost::ptr_mapS>();
+ test_emplace_function_gens<boost::mapS,boost::ptr_setS>();
+ test_emplace_function_gens<boost::mapS,boost::ptr_mapS>();
+ test_emplace_function_gens<boost::ptr_setS,boost::ptr_mapS>();
+ test_emplace_function_gens<boost::multisetS,boost::multimapS>();
+ test_emplace_function_gens<boost::multisetS,boost::ptr_multisetS>();
+ test_emplace_function_gens<boost::multisetS,boost::ptr_multimapS>();
+ test_emplace_function_gens<boost::multimapS,boost::ptr_multisetS>();
+ test_emplace_function_gens<boost::multimapS,boost::ptr_multimapS>();
+ test_emplace_function_gens<boost::ptr_multisetS,boost::ptr_multimapS>();
+#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+ test_emplace_function_gens<boost::ptr_hash_setS,boost::ptr_hash_mapS>();
+ test_emplace_function_gens<
+ boost::ptr_hash_multisetS
+ , boost::ptr_hash_multimapS
+ >();
+ test_emplace_function_gens<
+ boost::vecS
+ , boost::vector_selector<boost::mpl::true_>
+ >();
+ test_emplace_function_gens<
+ boost::vecS
+ , boost::deque_selector<boost::mpl::true_>
+ >();
+ test_emplace_function_gens<
+ boost::vecS
+ , boost::list_selector<boost::mpl::true_>
+ >();
+ test_emplace_function_gens<
+ boost::dequeS
+ , boost::vector_selector<boost::mpl::true_>
+ >();
+ test_emplace_function_gens<
+ boost::dequeS
+ , boost::deque_selector<boost::mpl::true_>
+ >();
+ test_emplace_function_gens<
+ boost::dequeS
+ , boost::list_selector<boost::mpl::true_>
+ >();
+ test_emplace_function_gens<
+ boost::listS
+ , boost::vector_selector<boost::mpl::true_>
+ >();
+ test_emplace_function_gens<
+ boost::listS
+ , boost::deque_selector<boost::mpl::true_>
+ >();
+ test_emplace_function_gens<
+ boost::listS
+ , boost::list_selector<boost::mpl::true_>
+ >();
+ test_emplace_function_gens<
+ boost::ptr_vecS
+ , boost::vector_selector<boost::mpl::true_>
+ >();
+ test_emplace_function_gens<
+ boost::ptr_vecS
+ , boost::deque_selector<boost::mpl::true_>
+ >();
+ test_emplace_function_gens<
+ boost::ptr_vecS
+ , boost::list_selector<boost::mpl::true_>
+ >();
+ test_emplace_function_gens<
+ boost::ptr_dequeS
+ , boost::vector_selector<boost::mpl::true_>
+ >();
+ test_emplace_function_gens<
+ boost::ptr_dequeS
+ , boost::deque_selector<boost::mpl::true_>
+ >();
+ test_emplace_function_gens<
+ boost::ptr_dequeS
+ , boost::list_selector<boost::mpl::true_>
+ >();
+ test_emplace_function_gens<
+ boost::ptr_listS
+ , boost::vector_selector<boost::mpl::true_>
+ >();
+ test_emplace_function_gens<
+ boost::ptr_listS
+ , boost::deque_selector<boost::mpl::true_>
+ >();
+ test_emplace_function_gens<
+ boost::ptr_listS
+ , boost::list_selector<boost::mpl::true_>
+ >();
+ test_emplace_function_gens<
+ boost::vector_selector<boost::mpl::true_>
+ , boost::deque_selector<boost::mpl::true_>
+ >();
+ test_emplace_function_gens<
+ boost::vector_selector<boost::mpl::true_>
+ , boost::list_selector<boost::mpl::true_>
+ >();
+ test_emplace_function_gens<
+ boost::deque_selector<boost::mpl::true_>
+ , boost::list_selector<boost::mpl::true_>
+ >();
+ test_emplace_function_gens<
+ boost::setS
+ , boost::set_selector<boost::mpl::true_>
+ >();
+ test_emplace_function_gens<
+ boost::mapS
+ , boost::map_selector<boost::mpl::true_>
+ >();
+ test_emplace_function_gens<
+ boost::multisetS
+ , boost::multiset_selector<boost::mpl::true_>
+ >();
+ test_emplace_function_gens<
+ boost::multimapS
+ , boost::multimap_selector<boost::mpl::true_>
+ >();
+ test_emplace_function_gens<
+ boost::ptr_setS
+ , boost::set_selector<boost::mpl::true_>
+ >();
+ test_emplace_function_gens<
+ boost::ptr_mapS
+ , boost::map_selector<boost::mpl::true_>
+ >();
+ test_emplace_function_gens<
+ boost::ptr_multisetS
+ , boost::multiset_selector<boost::mpl::true_>
+ >();
+ test_emplace_function_gens<
+ boost::ptr_multimapS
+ , boost::multimap_selector<boost::mpl::true_>
+ >();
+ test_emplace_function_gens<boost::setS,boost::flat_setS>();
+ test_emplace_function_gens<boost::mapS,boost::flat_mapS>();
+ test_emplace_function_gens<boost::multisetS,boost::flat_multisetS>();
+ test_emplace_function_gens<boost::multimapS,boost::flat_multimapS>();
+ test_emplace_function_gens<boost::ptr_setS,boost::flat_setS>();
+ test_emplace_function_gens<boost::ptr_mapS,boost::flat_mapS>();
+ test_emplace_function_gens<boost::ptr_multisetS,boost::flat_multisetS>();
+ test_emplace_function_gens<boost::ptr_multimapS,boost::flat_multimapS>();
+#endif // !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+
+ test_emplace_function_gen_recursive<boost::ptr_vecS>();
+ test_emplace_function_gen_recursive<boost::ptr_dequeS>();
+ test_emplace_function_gen_recursive<boost::ptr_listS>();
+#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+ test_emplace_function_gen_recursive<boost::slistS>();
+ test_emplace_function_gen_recursive<
+ boost::vector_selector<boost::mpl::true_>
+ >();
+ test_emplace_function_gen_recursive<
+ boost::deque_selector<boost::mpl::true_>
+ >();
+ test_emplace_function_gen_recursive<
+ boost::list_selector<boost::mpl::true_>
+ >();
+#endif // !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+
+ test_emplace_stack<boost::stackS>();
+ test_emplace_queue<boost::queueS>();
+ test_emplace_heap<boost::std_heapS>(boost::mpl::false_());
+#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+ test_emplace_heap<boost::priority_queueS>();
+ test_emplace_heap<boost::d_ary_heap_selector<boost::heap::arity<4> > >();
+ test_emplace_heap<
+ boost::d_ary_heap_selector<
+ boost::heap::mutable_<true>
+ , boost::heap::arity<4>
+ >
+ >();
+ test_emplace_heap<boost::binomial_heapS>();
+ test_emplace_heap<boost::fibonacci_heapS>();
+ test_emplace_heap<boost::pairing_heapS>();
+ test_emplace_heap<boost::skew_heapS>();
+ test_emplace_heap<
+ boost::skew_heap_selector<boost::heap::mutable_<true> >
+ >();
+#endif // !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+
+ return 0;
+}
+

Added: sandbox/container_gen/libs/container_gen/test/selectors.cpp
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ sandbox/container_gen/libs/container_gen/test/selectors.cpp 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84957)
@@ -0,0 +1,7507 @@
+// 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)
+
+#define BOOST_TYPEOF_COMPLIANT
+
+#include <boost/config.hpp>
+#include <boost/mpl/bool.hpp>
+#include <boost/mpl/int.hpp>
+#include <boost/container_gen/selectors.hpp>
+#include <boost/container_gen/c_str_cmp_selectors.hpp>
+#include <boost/container_gen/is_compare_selector.hpp>
+#include <boost/container_gen/is_hasher_selector.hpp>
+#include <boost/container_gen/is_allocator_selector.hpp>
+#include <boost/container_gen/is_container_selector.hpp>
+#include <boost/container_gen/is_reversible_selector.hpp>
+#include <boost/container_gen/is_random_access_selector.hpp>
+#include <boost/container_gen/is_associative_selector.hpp>
+#include <boost/container_gen/is_unique_assoc_selector.hpp>
+#include <boost/container_gen/is_multiple_assoc_selector.hpp>
+#include <boost/container_gen/is_hashed_assoc_selector.hpp>
+#include <boost/container_gen/is_flat_assoc_selector.hpp>
+#include <boost/container_gen/is_ptr_selector.hpp>
+#include <boost/container_gen/is_queue_selector.hpp>
+#include <boost/container_gen/is_stack_selector.hpp>
+#include <boost/container_gen/is_std_heap_selector.hpp>
+#include <boost/container_gen/is_heap_selector.hpp>
+#include <boost/container_gen/is_iteratable_heap_selector.hpp>
+#include <boost/container_gen/is_order_iter_heap_selector.hpp>
+#include <boost/container_gen/is_mutable_heap_selector.hpp>
+#include <boost/container_gen/is_mergeable_heap_selector.hpp>
+#include <boost/container_gen/has_stable_iters_selector.hpp>
+#include <boost/container_gen/is_tr1_selector.hpp>
+#include <boost/container_gen/is_recursive_selector.hpp>
+
+#if defined BOOST_MPL_CFG_NO_HAS_XXX || defined BOOST_TYPEOF_EMULATION
+#include <boost/typeof/std/vector.hpp>
+#include <boost/typeof/std/deque.hpp>
+#include <boost/typeof/std/list.hpp>
+#include <boost/typeof/std/set.hpp>
+#include <boost/typeof/std/map.hpp>
+#include <boost/typeof/std/stack.hpp>
+#include <boost/typeof/std/queue.hpp>
+#include <boost/typeof/boost/ptr_container/ptr_vector.hpp>
+#include <boost/typeof/boost/ptr_container/ptr_deque.hpp>
+#include <boost/typeof/boost/ptr_container/ptr_list.hpp>
+#include <boost/typeof/boost/ptr_container/ptr_set.hpp>
+#include <boost/typeof/boost/ptr_container/ptr_map.hpp>
+
+#if !defined BOOST_MSVC
+#include <boost/typeof/std/tr1/array.hpp>
+#include <boost/typeof/boost/array.hpp>
+#include <boost/typeof/boost/ptr_container/ptr_array.hpp>
+#endif
+
+#if defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+#include <boost/typeof/std/slist.hpp>
+#include <boost/typeof/std/hash_set.hpp>
+#include <boost/typeof/std/hash_map.hpp>
+#else
+#include <boost/typeof/std/tr1/unordered_set.hpp>
+#include <boost/typeof/std/tr1/unordered_map.hpp>
+#include <boost/typeof/boost/unordered/unordered_set.hpp>
+#include <boost/typeof/boost/unordered/unordered_map.hpp>
+#include <boost/typeof/boost/ptr_container/ptr_unordered_set.hpp>
+#include <boost/typeof/boost/ptr_container/ptr_unordered_map.hpp>
+#include <boost/typeof/boost/container/vector.hpp>
+#include <boost/typeof/boost/container/stable_vector.hpp>
+#include <boost/typeof/boost/container/deque.hpp>
+#include <boost/typeof/boost/container/list.hpp>
+#include <boost/typeof/boost/container/slist.hpp>
+#include <boost/typeof/boost/container/set.hpp>
+#include <boost/typeof/boost/container/map.hpp>
+#include <boost/typeof/boost/container/flat_set.hpp>
+#include <boost/typeof/boost/container/flat_map.hpp>
+#include <boost/typeof/boost/heap/policies.hpp>
+#include <boost/typeof/boost/heap/priority_queue.hpp>
+#include <boost/typeof/boost/heap/d_ary_heap.hpp>
+#include <boost/typeof/boost/heap/binomial_heap.hpp>
+#include <boost/typeof/boost/heap/fibonacci_heap.hpp>
+#include <boost/typeof/boost/heap/pairing_heap.hpp>
+#include <boost/typeof/boost/heap/skew_heap.hpp>
+#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+#endif // BOOST_MPL_CFG_NO_HAS_XXX, BOOST_TYPEOF_EMULATION
+
+#include <boost/mpl/assert.hpp>
+#include <boost/mpl/aux_/test.hpp>
+
+//[test__is_compare_selector
+MPL_TEST_CASE()
+{
+ BOOST_MPL_ASSERT_NOT((boost::is_compare_selector<boost::vecS>));
+ BOOST_MPL_ASSERT_NOT((boost::is_compare_selector<boost::dequeS>));
+ BOOST_MPL_ASSERT_NOT((boost::is_compare_selector<boost::listS>));
+//<-
+#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION || \
+ !defined BOOST_NO_SLIST
+//->
+ BOOST_MPL_ASSERT_NOT((boost::is_compare_selector<boost::slistS>));
+//<-
+#endif
+//->
+ BOOST_MPL_ASSERT_NOT((boost::is_compare_selector<boost::setS>));
+ BOOST_MPL_ASSERT_NOT((boost::is_compare_selector<boost::mapS>));
+ BOOST_MPL_ASSERT_NOT((boost::is_compare_selector<boost::multisetS>));
+ BOOST_MPL_ASSERT_NOT((boost::is_compare_selector<boost::multimapS>));
+//<-
+#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION || defined BOOST_HAS_HASH
+//->
+ BOOST_MPL_ASSERT_NOT((boost::is_compare_selector<boost::hash_setS>));
+ BOOST_MPL_ASSERT_NOT((boost::is_compare_selector<boost::hash_mapS>));
+ BOOST_MPL_ASSERT_NOT((boost::is_compare_selector<boost::hash_multisetS>));
+ BOOST_MPL_ASSERT_NOT((boost::is_compare_selector<boost::hash_multimapS>));
+//<-
+#endif
+//->
+ BOOST_MPL_ASSERT_NOT((boost::is_compare_selector<boost::ptr_vecS>));
+ BOOST_MPL_ASSERT_NOT((boost::is_compare_selector<boost::ptr_dequeS>));
+ BOOST_MPL_ASSERT_NOT((boost::is_compare_selector<boost::ptr_listS>));
+ BOOST_MPL_ASSERT_NOT((boost::is_compare_selector<boost::ptr_setS>));
+ BOOST_MPL_ASSERT_NOT((boost::is_compare_selector<boost::ptr_mapS>));
+ BOOST_MPL_ASSERT_NOT((boost::is_compare_selector<boost::ptr_multisetS>));
+ BOOST_MPL_ASSERT_NOT((boost::is_compare_selector<boost::ptr_multimapS>));
+ BOOST_MPL_ASSERT_NOT((boost::is_compare_selector<boost::stackS>));
+ BOOST_MPL_ASSERT_NOT((boost::is_compare_selector<boost::queueS>));
+ BOOST_MPL_ASSERT_NOT((boost::is_compare_selector<boost::std_heapS>));
+//<-
+#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+//->
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_compare_selector<boost::ptr_hash_setS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_compare_selector<boost::ptr_hash_mapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_compare_selector<boost::ptr_hash_multisetS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_compare_selector<boost::ptr_hash_multimapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_compare_selector<
+ boost::vector_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_compare_selector<boost::stable_vecS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_compare_selector<
+ boost::deque_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_compare_selector<
+ boost::list_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_compare_selector<
+ boost::set_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_compare_selector<
+ boost::map_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_compare_selector<
+ boost::multiset_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_compare_selector<
+ boost::multimap_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_compare_selector<
+ boost::hash_set_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_tr1_not_boost_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_compare_selector<
+ boost::hash_map_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_tr1_not_boost_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_compare_selector<
+ boost::hash_multiset_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_tr1_not_boost_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_compare_selector<
+ boost::hash_multimap_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_tr1_not_boost_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_compare_selector<boost::flat_setS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_compare_selector<boost::flat_mapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_compare_selector<boost::flat_multisetS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_compare_selector<boost::flat_multimapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_compare_selector<boost::priority_queueS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_compare_selector<
+ boost::d_ary_heap_selector<boost::heap::arity<4> >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_compare_selector<boost::binomial_heapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_compare_selector<boost::fibonacci_heapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_compare_selector<boost::pairing_heapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_compare_selector<boost::skew_heapS>
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_compare_selector<boost::tr1_binary_predicate_selector>
+ ));
+//<-
+#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+//->
+ BOOST_MPL_ASSERT((
+ boost::is_compare_selector<boost::equal_to_selector>
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_compare_selector<boost::less_than_selector>
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_compare_selector<boost::greater_than_selector>
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_compare_selector<boost::binary_predicate_selector>
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_compare_selector<boost::equivalenceS>
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_compare_selector<boost::c_str_less_than_selector>
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_compare_selector<boost::c_str_greater_than_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_compare_selector<boost::boost_hash_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_compare_selector<boost::tr1_hash_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_compare_selector<boost::std_allocator_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_compare_selector<boost::std_flat_allocator_selector>
+ ));
+}
+//]
+
+//[test__is_hasher_selector
+MPL_TEST_CASE()
+{
+ BOOST_MPL_ASSERT_NOT((boost::is_hasher_selector<boost::vecS>));
+ BOOST_MPL_ASSERT_NOT((boost::is_hasher_selector<boost::dequeS>));
+ BOOST_MPL_ASSERT_NOT((boost::is_hasher_selector<boost::listS>));
+//<-
+#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION || \
+ !defined BOOST_NO_SLIST
+//->
+ BOOST_MPL_ASSERT_NOT((boost::is_hasher_selector<boost::slistS>));
+//<-
+#endif
+//->
+ BOOST_MPL_ASSERT_NOT((boost::is_hasher_selector<boost::setS>));
+ BOOST_MPL_ASSERT_NOT((boost::is_hasher_selector<boost::mapS>));
+ BOOST_MPL_ASSERT_NOT((boost::is_hasher_selector<boost::multisetS>));
+ BOOST_MPL_ASSERT_NOT((boost::is_hasher_selector<boost::multimapS>));
+//<-
+#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION || defined BOOST_HAS_HASH
+//->
+ BOOST_MPL_ASSERT_NOT((boost::is_hasher_selector<boost::hash_setS>));
+ BOOST_MPL_ASSERT_NOT((boost::is_hasher_selector<boost::hash_mapS>));
+ BOOST_MPL_ASSERT_NOT((boost::is_hasher_selector<boost::hash_multisetS>));
+ BOOST_MPL_ASSERT_NOT((boost::is_hasher_selector<boost::hash_multimapS>));
+//<-
+#endif
+//->
+ BOOST_MPL_ASSERT_NOT((boost::is_hasher_selector<boost::ptr_vecS>));
+ BOOST_MPL_ASSERT_NOT((boost::is_hasher_selector<boost::ptr_dequeS>));
+ BOOST_MPL_ASSERT_NOT((boost::is_hasher_selector<boost::ptr_listS>));
+ BOOST_MPL_ASSERT_NOT((boost::is_hasher_selector<boost::ptr_setS>));
+ BOOST_MPL_ASSERT_NOT((boost::is_hasher_selector<boost::ptr_mapS>));
+ BOOST_MPL_ASSERT_NOT((boost::is_hasher_selector<boost::ptr_multisetS>));
+ BOOST_MPL_ASSERT_NOT((boost::is_hasher_selector<boost::ptr_multimapS>));
+ BOOST_MPL_ASSERT_NOT((boost::is_hasher_selector<boost::stackS>));
+ BOOST_MPL_ASSERT_NOT((boost::is_hasher_selector<boost::queueS>));
+ BOOST_MPL_ASSERT_NOT((boost::is_hasher_selector<boost::std_heapS>));
+//<-
+#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+//->
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_hasher_selector<boost::ptr_hash_setS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_hasher_selector<boost::ptr_hash_mapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_hasher_selector<boost::ptr_hash_multisetS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_hasher_selector<boost::ptr_hash_multimapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_hasher_selector<
+ boost::vector_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_hasher_selector<boost::stable_vecS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_hasher_selector<
+ boost::deque_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_hasher_selector<
+ boost::list_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_hasher_selector<
+ boost::set_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_hasher_selector<
+ boost::map_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_hasher_selector<
+ boost::multiset_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_hasher_selector<
+ boost::multimap_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_hasher_selector<
+ boost::hash_set_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_tr1_not_boost_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_hasher_selector<
+ boost::hash_map_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_tr1_not_boost_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_hasher_selector<
+ boost::hash_multiset_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_tr1_not_boost_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_hasher_selector<
+ boost::hash_multimap_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_tr1_not_boost_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_hasher_selector<boost::flat_setS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_hasher_selector<boost::flat_mapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_hasher_selector<boost::flat_multisetS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_hasher_selector<boost::flat_multimapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_hasher_selector<boost::priority_queueS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_hasher_selector<
+ boost::d_ary_heap_selector<boost::heap::arity<4> >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_hasher_selector<boost::binomial_heapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_hasher_selector<boost::fibonacci_heapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_hasher_selector<boost::pairing_heapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_hasher_selector<boost::skew_heapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_hasher_selector<boost::tr1_binary_predicate_selector>
+ ));
+//<-
+#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+//->
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_hasher_selector<boost::equal_to_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_hasher_selector<boost::less_than_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_hasher_selector<boost::greater_than_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_hasher_selector<boost::binary_predicate_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_hasher_selector<boost::equivalenceS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_hasher_selector<boost::c_str_less_than_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_hasher_selector<boost::c_str_greater_than_selector>
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_hasher_selector<boost::boost_hash_selector>
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_hasher_selector<boost::tr1_hash_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_hasher_selector<boost::std_allocator_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_hasher_selector<boost::std_flat_allocator_selector>
+ ));
+}
+//]
+
+//[test__is_allocator_selector
+MPL_TEST_CASE()
+{
+ BOOST_MPL_ASSERT_NOT((boost::is_allocator_selector<boost::vecS>));
+ BOOST_MPL_ASSERT_NOT((boost::is_allocator_selector<boost::dequeS>));
+ BOOST_MPL_ASSERT_NOT((boost::is_allocator_selector<boost::listS>));
+//<-
+#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION || \
+ !defined BOOST_NO_SLIST
+//->
+ BOOST_MPL_ASSERT_NOT((boost::is_allocator_selector<boost::slistS>));
+//<-
+#endif
+//->
+ BOOST_MPL_ASSERT_NOT((boost::is_allocator_selector<boost::setS>));
+ BOOST_MPL_ASSERT_NOT((boost::is_allocator_selector<boost::mapS>));
+ BOOST_MPL_ASSERT_NOT((boost::is_allocator_selector<boost::multisetS>));
+ BOOST_MPL_ASSERT_NOT((boost::is_allocator_selector<boost::multimapS>));
+//<-
+#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION || defined BOOST_HAS_HASH
+//->
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_allocator_selector<boost::hash_setS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_allocator_selector<boost::hash_mapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_allocator_selector<boost::hash_multisetS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_allocator_selector<boost::hash_multimapS>
+ ));
+//<-
+#endif
+//->
+ BOOST_MPL_ASSERT_NOT((boost::is_allocator_selector<boost::ptr_vecS>));
+ BOOST_MPL_ASSERT_NOT((boost::is_allocator_selector<boost::ptr_dequeS>));
+ BOOST_MPL_ASSERT_NOT((boost::is_allocator_selector<boost::ptr_listS>));
+ BOOST_MPL_ASSERT_NOT((boost::is_allocator_selector<boost::ptr_setS>));
+ BOOST_MPL_ASSERT_NOT((boost::is_allocator_selector<boost::ptr_mapS>));
+ BOOST_MPL_ASSERT_NOT((boost::is_allocator_selector<boost::ptr_multisetS>));
+ BOOST_MPL_ASSERT_NOT((boost::is_allocator_selector<boost::ptr_multimapS>));
+ BOOST_MPL_ASSERT_NOT((boost::is_allocator_selector<boost::stackS>));
+ BOOST_MPL_ASSERT_NOT((boost::is_allocator_selector<boost::queueS>));
+ BOOST_MPL_ASSERT_NOT((boost::is_allocator_selector<boost::std_heapS>));
+//<-
+#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+//->
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_allocator_selector<boost::ptr_hash_setS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_allocator_selector<boost::ptr_hash_mapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_allocator_selector<boost::ptr_hash_multisetS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_allocator_selector<boost::ptr_hash_multimapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_allocator_selector<
+ boost::vector_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_allocator_selector<boost::stable_vecS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_allocator_selector<
+ boost::deque_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_allocator_selector<
+ boost::list_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_allocator_selector<
+ boost::set_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_allocator_selector<
+ boost::map_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_allocator_selector<
+ boost::multiset_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_allocator_selector<
+ boost::multimap_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_allocator_selector<
+ boost::hash_set_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_tr1_not_boost_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_allocator_selector<
+ boost::hash_map_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_tr1_not_boost_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_allocator_selector<
+ boost::hash_multiset_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_tr1_not_boost_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_allocator_selector<
+ boost::hash_multimap_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_tr1_not_boost_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_allocator_selector<boost::flat_setS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_allocator_selector<boost::flat_mapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_allocator_selector<boost::flat_multisetS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_allocator_selector<boost::flat_multimapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_allocator_selector<boost::priority_queueS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_allocator_selector<
+ boost::d_ary_heap_selector<boost::heap::arity<4> >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_allocator_selector<boost::binomial_heapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_allocator_selector<boost::fibonacci_heapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_allocator_selector<boost::pairing_heapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_allocator_selector<boost::skew_heapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_allocator_selector<boost::tr1_binary_predicate_selector>
+ ));
+//<-
+#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+//->
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_allocator_selector<boost::equal_to_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_allocator_selector<boost::less_than_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_allocator_selector<boost::greater_than_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_allocator_selector<boost::binary_predicate_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_allocator_selector<boost::equivalenceS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_allocator_selector<boost::c_str_less_than_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_allocator_selector<boost::c_str_greater_than_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_allocator_selector<boost::boost_hash_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_allocator_selector<boost::tr1_hash_selector>
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_allocator_selector<boost::std_allocator_selector>
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_allocator_selector<boost::std_flat_allocator_selector>
+ ));
+}
+//]
+
+//[test__is_container_selector
+MPL_TEST_CASE()
+{
+ BOOST_MPL_ASSERT((boost::is_container_selector<boost::vecS>));
+ BOOST_MPL_ASSERT((boost::is_container_selector<boost::dequeS>));
+ BOOST_MPL_ASSERT((boost::is_container_selector<boost::listS>));
+//<-
+#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION || \
+ !defined BOOST_NO_SLIST
+//->
+ BOOST_MPL_ASSERT((boost::is_container_selector<boost::slistS>));
+//<-
+#endif
+//->
+ BOOST_MPL_ASSERT((boost::is_container_selector<boost::setS>));
+ BOOST_MPL_ASSERT((boost::is_container_selector<boost::mapS>));
+ BOOST_MPL_ASSERT((boost::is_container_selector<boost::multisetS>));
+ BOOST_MPL_ASSERT((boost::is_container_selector<boost::multimapS>));
+//<-
+#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION || defined BOOST_HAS_HASH
+//->
+ BOOST_MPL_ASSERT((boost::is_container_selector<boost::hash_setS>));
+ BOOST_MPL_ASSERT((boost::is_container_selector<boost::hash_mapS>));
+ BOOST_MPL_ASSERT((boost::is_container_selector<boost::hash_multisetS>));
+ BOOST_MPL_ASSERT((boost::is_container_selector<boost::hash_multimapS>));
+//<-
+#endif
+//->
+ BOOST_MPL_ASSERT((boost::is_container_selector<boost::ptr_vecS>));
+ BOOST_MPL_ASSERT((boost::is_container_selector<boost::ptr_dequeS>));
+ BOOST_MPL_ASSERT((boost::is_container_selector<boost::ptr_listS>));
+ BOOST_MPL_ASSERT((boost::is_container_selector<boost::ptr_setS>));
+ BOOST_MPL_ASSERT((boost::is_container_selector<boost::ptr_mapS>));
+ BOOST_MPL_ASSERT((boost::is_container_selector<boost::ptr_multisetS>));
+ BOOST_MPL_ASSERT((boost::is_container_selector<boost::ptr_multimapS>));
+ BOOST_MPL_ASSERT((boost::is_container_selector<boost::stackS>));
+ BOOST_MPL_ASSERT((boost::is_container_selector<boost::queueS>));
+ BOOST_MPL_ASSERT((boost::is_container_selector<boost::std_heapS>));
+//<-
+#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+//->
+ BOOST_MPL_ASSERT((
+ boost::is_container_selector<boost::ptr_hash_setS>
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_container_selector<boost::ptr_hash_mapS>
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_container_selector<boost::ptr_hash_multisetS>
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_container_selector<boost::ptr_hash_multimapS>
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_container_selector<
+ boost::vector_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_container_selector<boost::stable_vecS>
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_container_selector<
+ boost::deque_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_container_selector<
+ boost::list_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_container_selector<
+ boost::set_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_container_selector<
+ boost::map_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_container_selector<
+ boost::multiset_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_container_selector<
+ boost::multimap_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_container_selector<
+ boost::hash_set_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_tr1_not_boost_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_container_selector<
+ boost::hash_map_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_tr1_not_boost_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_container_selector<
+ boost::hash_multiset_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_tr1_not_boost_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_container_selector<
+ boost::hash_multimap_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_tr1_not_boost_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_container_selector<boost::flat_setS>
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_container_selector<boost::flat_mapS>
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_container_selector<boost::flat_multisetS>
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_container_selector<boost::flat_multimapS>
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_container_selector<boost::priority_queueS>
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_container_selector<
+ boost::d_ary_heap_selector<boost::heap::arity<4> >
+ >
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_container_selector<boost::binomial_heapS>
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_container_selector<boost::fibonacci_heapS>
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_container_selector<boost::pairing_heapS>
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_container_selector<boost::skew_heapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_container_selector<boost::tr1_binary_predicate_selector>
+ ));
+//<-
+#endif // !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+//->
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_container_selector<boost::equal_to_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_container_selector<boost::less_than_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_container_selector<boost::greater_than_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_container_selector<boost::binary_predicate_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_container_selector<boost::equivalenceS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_container_selector<boost::c_str_less_than_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_container_selector<boost::c_str_greater_than_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_container_selector<boost::boost_hash_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_container_selector<boost::tr1_hash_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_container_selector<boost::std_allocator_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_container_selector<boost::std_flat_allocator_selector>
+ ));
+}
+//]
+
+//[test__is_reversible_selector
+MPL_TEST_CASE()
+{
+ BOOST_MPL_ASSERT((boost::is_reversible_selector<boost::vecS>));
+ BOOST_MPL_ASSERT((boost::is_reversible_selector<boost::dequeS>));
+ BOOST_MPL_ASSERT((boost::is_reversible_selector<boost::listS>));
+//<-
+#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION || \
+ !defined BOOST_NO_SLIST
+//->
+ BOOST_MPL_ASSERT_NOT((boost::is_reversible_selector<boost::slistS>));
+//<-
+#endif
+//->
+ BOOST_MPL_ASSERT((boost::is_reversible_selector<boost::setS>));
+ BOOST_MPL_ASSERT((boost::is_reversible_selector<boost::mapS>));
+ BOOST_MPL_ASSERT((boost::is_reversible_selector<boost::multisetS>));
+ BOOST_MPL_ASSERT((boost::is_reversible_selector<boost::multimapS>));
+//<-
+#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION || defined BOOST_HAS_HASH
+//->
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_reversible_selector<boost::hash_setS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_reversible_selector<boost::hash_mapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_reversible_selector<boost::hash_multisetS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_reversible_selector<boost::hash_multimapS>
+ ));
+//<-
+#endif
+//->
+ BOOST_MPL_ASSERT((boost::is_reversible_selector<boost::ptr_vecS>));
+ BOOST_MPL_ASSERT((boost::is_reversible_selector<boost::ptr_dequeS>));
+ BOOST_MPL_ASSERT((boost::is_reversible_selector<boost::ptr_listS>));
+ BOOST_MPL_ASSERT((boost::is_reversible_selector<boost::ptr_setS>));
+ BOOST_MPL_ASSERT((boost::is_reversible_selector<boost::ptr_mapS>));
+ BOOST_MPL_ASSERT((boost::is_reversible_selector<boost::ptr_multisetS>));
+ BOOST_MPL_ASSERT((boost::is_reversible_selector<boost::ptr_multimapS>));
+ BOOST_MPL_ASSERT_NOT((boost::is_reversible_selector<boost::stackS>));
+ BOOST_MPL_ASSERT_NOT((boost::is_reversible_selector<boost::queueS>));
+ BOOST_MPL_ASSERT_NOT((boost::is_reversible_selector<boost::std_heapS>));
+//<-
+#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+//->
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_reversible_selector<boost::ptr_hash_setS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_reversible_selector<boost::ptr_hash_mapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_reversible_selector<boost::ptr_hash_multisetS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_reversible_selector<boost::ptr_hash_multimapS>
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_reversible_selector<
+ boost::vector_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_reversible_selector<boost::stable_vecS>
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_reversible_selector<
+ boost::deque_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_reversible_selector<
+ boost::list_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_reversible_selector<
+ boost::set_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_reversible_selector<
+ boost::map_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_reversible_selector<
+ boost::multiset_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_reversible_selector<
+ boost::multimap_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_reversible_selector<
+ boost::hash_set_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_tr1_not_boost_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_reversible_selector<
+ boost::hash_map_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_tr1_not_boost_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_reversible_selector<
+ boost::hash_multiset_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_tr1_not_boost_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_reversible_selector<
+ boost::hash_multimap_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_tr1_not_boost_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_reversible_selector<boost::flat_setS>
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_reversible_selector<boost::flat_mapS>
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_reversible_selector<boost::flat_multisetS>
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_reversible_selector<boost::flat_multimapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_reversible_selector<boost::priority_queueS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_reversible_selector<
+ boost::d_ary_heap_selector<boost::heap::arity<4> >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_reversible_selector<boost::binomial_heapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_reversible_selector<boost::fibonacci_heapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_reversible_selector<boost::pairing_heapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_reversible_selector<boost::skew_heapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_reversible_selector<boost::tr1_binary_predicate_selector>
+ ));
+//<-
+#endif // !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+//->
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_reversible_selector<boost::equal_to_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_reversible_selector<boost::less_than_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_reversible_selector<boost::greater_than_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_reversible_selector<boost::binary_predicate_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_reversible_selector<boost::equivalenceS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_reversible_selector<boost::c_str_less_than_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_reversible_selector<boost::c_str_greater_than_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_reversible_selector<boost::boost_hash_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_reversible_selector<boost::tr1_hash_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_reversible_selector<boost::std_allocator_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_reversible_selector<boost::std_flat_allocator_selector>
+ ));
+}
+//]
+
+//[test__is_random_access_selector
+MPL_TEST_CASE()
+{
+ BOOST_MPL_ASSERT((boost::is_random_access_selector<boost::vecS>));
+ BOOST_MPL_ASSERT((boost::is_random_access_selector<boost::dequeS>));
+ BOOST_MPL_ASSERT_NOT((boost::is_random_access_selector<boost::listS>));
+//<-
+#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION || \
+ !defined BOOST_NO_SLIST
+//->
+ BOOST_MPL_ASSERT_NOT((boost::is_random_access_selector<boost::slistS>));
+//<-
+#endif
+//->
+ BOOST_MPL_ASSERT_NOT((boost::is_random_access_selector<boost::setS>));
+ BOOST_MPL_ASSERT_NOT((boost::is_random_access_selector<boost::mapS>));
+ BOOST_MPL_ASSERT_NOT((boost::is_random_access_selector<boost::multisetS>));
+ BOOST_MPL_ASSERT_NOT((boost::is_random_access_selector<boost::multimapS>));
+//<-
+#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION || defined BOOST_HAS_HASH
+//->
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_random_access_selector<boost::hash_setS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_random_access_selector<boost::hash_mapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_random_access_selector<boost::hash_multisetS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_random_access_selector<boost::hash_multimapS>
+ ));
+//<-
+#endif
+//->
+ BOOST_MPL_ASSERT((
+ boost::is_random_access_selector<boost::ptr_vecS>
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_random_access_selector<boost::ptr_dequeS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_random_access_selector<boost::ptr_listS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_random_access_selector<boost::ptr_setS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_random_access_selector<boost::ptr_mapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_random_access_selector<boost::ptr_multisetS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_random_access_selector<boost::ptr_multimapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_random_access_selector<boost::stackS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_random_access_selector<boost::queueS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_random_access_selector<boost::std_heapS>
+ ));
+//<-
+#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+//->
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_random_access_selector<boost::ptr_hash_setS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_random_access_selector<boost::ptr_hash_mapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_random_access_selector<boost::ptr_hash_multisetS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_random_access_selector<boost::ptr_hash_multimapS>
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_random_access_selector<
+ boost::vector_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_random_access_selector<boost::stable_vecS>
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_random_access_selector<
+ boost::deque_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_random_access_selector<
+ boost::list_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_random_access_selector<
+ boost::set_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_random_access_selector<
+ boost::map_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_random_access_selector<
+ boost::multiset_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_random_access_selector<
+ boost::multimap_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_random_access_selector<
+ boost::hash_set_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_tr1_not_boost_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_random_access_selector<
+ boost::hash_map_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_tr1_not_boost_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_random_access_selector<
+ boost::hash_multiset_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_tr1_not_boost_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_random_access_selector<
+ boost::hash_multimap_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_tr1_not_boost_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_random_access_selector<boost::flat_setS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_random_access_selector<boost::flat_mapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_random_access_selector<boost::flat_multisetS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_random_access_selector<boost::flat_multimapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_random_access_selector<boost::priority_queueS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_random_access_selector<
+ boost::d_ary_heap_selector<boost::heap::arity<4> >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_random_access_selector<boost::binomial_heapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_random_access_selector<boost::fibonacci_heapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_random_access_selector<boost::pairing_heapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_random_access_selector<boost::skew_heapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_random_access_selector<boost::tr1_binary_predicate_selector>
+ ));
+//<-
+#endif // !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+//->
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_random_access_selector<boost::equal_to_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_random_access_selector<boost::greater_than_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_random_access_selector<boost::less_than_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_random_access_selector<boost::binary_predicate_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_random_access_selector<boost::equivalenceS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_random_access_selector<boost::c_str_less_than_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_random_access_selector<boost::c_str_greater_than_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_random_access_selector<boost::boost_hash_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_random_access_selector<boost::tr1_hash_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_random_access_selector<boost::std_allocator_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_random_access_selector<boost::std_flat_allocator_selector>
+ ));
+}
+//]
+
+//[test__is_associative_selector
+MPL_TEST_CASE()
+{
+ BOOST_MPL_ASSERT_NOT((boost::is_associative_selector<boost::vecS>));
+ BOOST_MPL_ASSERT_NOT((boost::is_associative_selector<boost::dequeS>));
+ BOOST_MPL_ASSERT_NOT((boost::is_associative_selector<boost::listS>));
+//<-
+#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION || \
+ !defined BOOST_NO_SLIST
+//->
+ BOOST_MPL_ASSERT_NOT((boost::is_associative_selector<boost::slistS>));
+//<-
+#endif
+//->
+ BOOST_MPL_ASSERT((boost::is_associative_selector<boost::setS>));
+ BOOST_MPL_ASSERT((boost::is_associative_selector<boost::mapS>));
+ BOOST_MPL_ASSERT((boost::is_associative_selector<boost::multisetS>));
+ BOOST_MPL_ASSERT((boost::is_associative_selector<boost::multimapS>));
+//<-
+#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION || defined BOOST_HAS_HASH
+//->
+ BOOST_MPL_ASSERT((boost::is_associative_selector<boost::hash_setS>));
+ BOOST_MPL_ASSERT((boost::is_associative_selector<boost::hash_mapS>));
+ BOOST_MPL_ASSERT((boost::is_associative_selector<boost::hash_multisetS>));
+ BOOST_MPL_ASSERT((boost::is_associative_selector<boost::hash_multimapS>));
+//<-
+#endif
+//->
+ BOOST_MPL_ASSERT_NOT((boost::is_associative_selector<boost::ptr_vecS>));
+ BOOST_MPL_ASSERT_NOT((boost::is_associative_selector<boost::ptr_dequeS>));
+ BOOST_MPL_ASSERT_NOT((boost::is_associative_selector<boost::ptr_listS>));
+ BOOST_MPL_ASSERT((boost::is_associative_selector<boost::ptr_setS>));
+ BOOST_MPL_ASSERT((boost::is_associative_selector<boost::ptr_mapS>));
+ BOOST_MPL_ASSERT((boost::is_associative_selector<boost::ptr_multisetS>));
+ BOOST_MPL_ASSERT((boost::is_associative_selector<boost::ptr_multimapS>));
+ BOOST_MPL_ASSERT_NOT((boost::is_associative_selector<boost::stackS>));
+ BOOST_MPL_ASSERT_NOT((boost::is_associative_selector<boost::queueS>));
+ BOOST_MPL_ASSERT_NOT((boost::is_associative_selector<boost::std_heapS>));
+//<-
+#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+//->
+ BOOST_MPL_ASSERT((
+ boost::is_associative_selector<boost::ptr_hash_setS>
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_associative_selector<boost::ptr_hash_mapS>
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_associative_selector<boost::ptr_hash_multisetS>
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_associative_selector<boost::ptr_hash_multimapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_associative_selector<
+ boost::vector_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_associative_selector<boost::stable_vecS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_associative_selector<
+ boost::deque_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_associative_selector<
+ boost::list_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_associative_selector<
+ boost::set_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_associative_selector<
+ boost::map_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_associative_selector<
+ boost::multiset_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_associative_selector<
+ boost::multimap_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_associative_selector<
+ boost::hash_set_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_tr1_not_boost_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_associative_selector<
+ boost::hash_map_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_tr1_not_boost_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_associative_selector<
+ boost::hash_multiset_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_tr1_not_boost_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_associative_selector<
+ boost::hash_multimap_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_tr1_not_boost_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_associative_selector<boost::flat_setS>
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_associative_selector<boost::flat_mapS>
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_associative_selector<boost::flat_multisetS>
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_associative_selector<boost::flat_multimapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_associative_selector<boost::priority_queueS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_associative_selector<
+ boost::d_ary_heap_selector<boost::heap::arity<4> >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_associative_selector<boost::binomial_heapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_associative_selector<boost::fibonacci_heapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_associative_selector<boost::pairing_heapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_associative_selector<boost::skew_heapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_associative_selector<boost::tr1_binary_predicate_selector>
+ ));
+//<-
+#endif // !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+//->
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_associative_selector<boost::equal_to_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_associative_selector<boost::less_than_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_associative_selector<boost::greater_than_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_associative_selector<boost::binary_predicate_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_associative_selector<boost::equivalenceS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_associative_selector<boost::c_str_less_than_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_associative_selector<boost::c_str_greater_than_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_associative_selector<boost::boost_hash_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_associative_selector<boost::tr1_hash_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_associative_selector<boost::std_allocator_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_associative_selector<boost::std_flat_allocator_selector>
+ ));
+}
+//]
+
+//[test__is_unique_associative_selector
+MPL_TEST_CASE()
+{
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_unique_associative_selector<boost::vecS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_unique_associative_selector<boost::dequeS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_unique_associative_selector<boost::listS>
+ ));
+//<-
+#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION || \
+ !defined BOOST_NO_SLIST
+//->
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_unique_associative_selector<boost::slistS>
+ ));
+//<-
+#endif
+//->
+ BOOST_MPL_ASSERT((
+ boost::is_unique_associative_selector<boost::setS>
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_unique_associative_selector<boost::mapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_unique_associative_selector<boost::multisetS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_unique_associative_selector<boost::multimapS>
+ ));
+//<-
+#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION || defined BOOST_HAS_HASH
+//->
+ BOOST_MPL_ASSERT((
+ boost::is_unique_associative_selector<boost::hash_setS>
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_unique_associative_selector<boost::hash_mapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_unique_associative_selector<boost::hash_multisetS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_unique_associative_selector<boost::hash_multimapS>
+ ));
+//<-
+#endif
+//->
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_unique_associative_selector<boost::ptr_vecS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_unique_associative_selector<boost::ptr_dequeS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_unique_associative_selector<boost::ptr_listS>
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_unique_associative_selector<boost::ptr_setS>
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_unique_associative_selector<boost::ptr_mapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_unique_associative_selector<boost::ptr_multisetS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_unique_associative_selector<boost::ptr_multimapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_unique_associative_selector<boost::stackS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_unique_associative_selector<boost::queueS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_unique_associative_selector<boost::std_heapS>
+ ));
+//<-
+#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+//->
+ BOOST_MPL_ASSERT((
+ boost::is_unique_associative_selector<boost::ptr_hash_setS>
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_unique_associative_selector<boost::ptr_hash_mapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_unique_associative_selector<boost::ptr_hash_multisetS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_unique_associative_selector<boost::ptr_hash_multimapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_unique_associative_selector<
+ boost::vector_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_unique_associative_selector<boost::stable_vecS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_unique_associative_selector<
+ boost::deque_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_unique_associative_selector<
+ boost::list_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_unique_associative_selector<
+ boost::set_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_unique_associative_selector<
+ boost::map_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_unique_associative_selector<
+ boost::multiset_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_unique_associative_selector<
+ boost::multimap_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_unique_associative_selector<
+ boost::hash_set_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_tr1_not_boost_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_unique_associative_selector<
+ boost::hash_map_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_tr1_not_boost_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_unique_associative_selector<
+ boost::hash_multiset_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_tr1_not_boost_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_unique_associative_selector<
+ boost::hash_multimap_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_tr1_not_boost_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_unique_associative_selector<boost::flat_setS>
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_unique_associative_selector<boost::flat_mapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_unique_associative_selector<boost::flat_multisetS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_unique_associative_selector<boost::flat_multimapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_unique_associative_selector<boost::priority_queueS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_unique_associative_selector<
+ boost::d_ary_heap_selector<boost::heap::arity<4> >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_unique_associative_selector<boost::binomial_heapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_unique_associative_selector<boost::fibonacci_heapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_unique_associative_selector<boost::pairing_heapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_unique_associative_selector<boost::skew_heapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_unique_associative_selector<
+ boost::tr1_binary_predicate_selector
+ >
+ ));
+//<-
+#endif // !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+//->
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_unique_associative_selector<boost::equal_to_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_unique_associative_selector<boost::less_than_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_unique_associative_selector<boost::greater_than_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_unique_associative_selector<boost::binary_predicate_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_unique_associative_selector<boost::equivalenceS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_unique_associative_selector<boost::c_str_less_than_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_unique_associative_selector<
+ boost::c_str_greater_than_selector
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_unique_associative_selector<boost::boost_hash_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_unique_associative_selector<boost::tr1_hash_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_unique_associative_selector<boost::std_allocator_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_unique_associative_selector<
+ boost::std_flat_allocator_selector
+ >
+ ));
+}
+//]
+
+//[test__is_multiple_associative_selector
+MPL_TEST_CASE()
+{
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_multiple_associative_selector<boost::vecS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_multiple_associative_selector<boost::dequeS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_multiple_associative_selector<boost::listS>
+ ));
+//<-
+#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION || \
+ !defined BOOST_NO_SLIST
+//->
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_multiple_associative_selector<boost::slistS>
+ ));
+//<-
+#endif
+//->
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_multiple_associative_selector<boost::setS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_multiple_associative_selector<boost::mapS>
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_multiple_associative_selector<boost::multisetS>
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_multiple_associative_selector<boost::multimapS>
+ ));
+//<-
+#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION || defined BOOST_HAS_HASH
+//->
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_multiple_associative_selector<boost::hash_setS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_multiple_associative_selector<boost::hash_mapS>
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_multiple_associative_selector<boost::hash_multisetS>
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_multiple_associative_selector<boost::hash_multimapS>
+ ));
+//<-
+#endif
+//->
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_multiple_associative_selector<boost::ptr_vecS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_multiple_associative_selector<boost::ptr_dequeS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_multiple_associative_selector<boost::ptr_listS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_multiple_associative_selector<boost::ptr_setS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_multiple_associative_selector<boost::ptr_mapS>
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_multiple_associative_selector<boost::ptr_multisetS>
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_multiple_associative_selector<boost::ptr_multimapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_multiple_associative_selector<boost::stackS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_multiple_associative_selector<boost::queueS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_multiple_associative_selector<boost::std_heapS>
+ ));
+//<-
+#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+//->
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_multiple_associative_selector<boost::ptr_hash_setS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_multiple_associative_selector<boost::ptr_hash_mapS>
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_multiple_associative_selector<boost::ptr_hash_multisetS>
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_multiple_associative_selector<boost::ptr_hash_multimapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_multiple_associative_selector<
+ boost::vector_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_multiple_associative_selector<boost::stable_vecS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_multiple_associative_selector<
+ boost::deque_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_multiple_associative_selector<
+ boost::list_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_multiple_associative_selector<
+ boost::set_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_multiple_associative_selector<
+ boost::map_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_multiple_associative_selector<
+ boost::multiset_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_multiple_associative_selector<
+ boost::multimap_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_multiple_associative_selector<
+ boost::hash_set_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_tr1_not_boost_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_multiple_associative_selector<
+ boost::hash_map_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_tr1_not_boost_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_multiple_associative_selector<
+ boost::hash_multiset_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_tr1_not_boost_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_multiple_associative_selector<
+ boost::hash_multimap_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_tr1_not_boost_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_multiple_associative_selector<boost::flat_setS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_multiple_associative_selector<boost::flat_mapS>
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_multiple_associative_selector<boost::flat_multisetS>
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_multiple_associative_selector<boost::flat_multimapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_multiple_associative_selector<boost::priority_queueS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_multiple_associative_selector<
+ boost::d_ary_heap_selector<boost::heap::arity<4> >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_multiple_associative_selector<boost::binomial_heapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_multiple_associative_selector<boost::fibonacci_heapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_multiple_associative_selector<boost::pairing_heapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_multiple_associative_selector<boost::skew_heapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_multiple_associative_selector<
+ boost::tr1_binary_predicate_selector
+ >
+ ));
+//<-
+#endif // !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+//->
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_multiple_associative_selector<boost::equal_to_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_multiple_associative_selector<boost::less_than_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_multiple_associative_selector<boost::greater_than_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_multiple_associative_selector<
+ boost::binary_predicate_selector
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_multiple_associative_selector<boost::equivalenceS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_multiple_associative_selector<
+ boost::c_str_less_than_selector
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_multiple_associative_selector<
+ boost::c_str_greater_than_selector
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_multiple_associative_selector<boost::boost_hash_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_multiple_associative_selector<boost::tr1_hash_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_multiple_associative_selector<boost::std_allocator_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_multiple_associative_selector<
+ boost::std_flat_allocator_selector
+ >
+ ));
+}
+//]
+
+//[test__is_hashed_associative_selector
+MPL_TEST_CASE()
+{
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_hashed_associative_selector<boost::vecS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_hashed_associative_selector<boost::dequeS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_hashed_associative_selector<boost::listS>
+ ));
+//<-
+#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION || \
+ !defined BOOST_NO_SLIST
+//->
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_hashed_associative_selector<boost::slistS>
+ ));
+//<-
+#endif
+//->
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_hashed_associative_selector<boost::setS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_hashed_associative_selector<boost::mapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_hashed_associative_selector<boost::multisetS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_hashed_associative_selector<boost::multimapS>
+ ));
+//<-
+#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION || defined BOOST_HAS_HASH
+//->
+ BOOST_MPL_ASSERT((
+ boost::is_hashed_associative_selector<boost::hash_setS>
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_hashed_associative_selector<boost::hash_mapS>
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_hashed_associative_selector<boost::hash_multisetS>
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_hashed_associative_selector<boost::hash_multimapS>
+ ));
+//<-
+#endif
+//->
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_hashed_associative_selector<boost::ptr_vecS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_hashed_associative_selector<boost::ptr_dequeS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_hashed_associative_selector<boost::ptr_listS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_hashed_associative_selector<boost::ptr_setS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_hashed_associative_selector<boost::ptr_mapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_hashed_associative_selector<boost::ptr_multisetS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_hashed_associative_selector<boost::ptr_multimapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_hashed_associative_selector<boost::stackS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_hashed_associative_selector<boost::queueS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_hashed_associative_selector<boost::std_heapS>
+ ));
+//<-
+#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+//->
+ BOOST_MPL_ASSERT((
+ boost::is_hashed_associative_selector<boost::ptr_hash_setS>
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_hashed_associative_selector<boost::ptr_hash_mapS>
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_hashed_associative_selector<boost::ptr_hash_multisetS>
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_hashed_associative_selector<boost::ptr_hash_multimapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_hashed_associative_selector<
+ boost::vector_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_hashed_associative_selector<boost::stable_vecS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_hashed_associative_selector<
+ boost::deque_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_hashed_associative_selector<
+ boost::list_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_hashed_associative_selector<
+ boost::set_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_hashed_associative_selector<
+ boost::map_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_hashed_associative_selector<
+ boost::multiset_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_hashed_associative_selector<
+ boost::multimap_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_hashed_associative_selector<
+ boost::hash_set_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_tr1_not_boost_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_hashed_associative_selector<
+ boost::hash_map_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_tr1_not_boost_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_hashed_associative_selector<
+ boost::hash_multiset_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_tr1_not_boost_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_hashed_associative_selector<
+ boost::hash_multimap_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_tr1_not_boost_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_hashed_associative_selector<boost::flat_setS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_hashed_associative_selector<boost::flat_mapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_hashed_associative_selector<boost::flat_multisetS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_hashed_associative_selector<boost::flat_multimapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_hashed_associative_selector<boost::priority_queueS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_hashed_associative_selector<
+ boost::d_ary_heap_selector<boost::heap::arity<4> >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_hashed_associative_selector<boost::binomial_heapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_hashed_associative_selector<boost::fibonacci_heapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_hashed_associative_selector<boost::pairing_heapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_hashed_associative_selector<boost::skew_heapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_hashed_associative_selector<
+ boost::tr1_binary_predicate_selector
+ >
+ ));
+//<-
+#endif // !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+//->
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_hashed_associative_selector<boost::equal_to_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_hashed_associative_selector<boost::less_than_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_hashed_associative_selector<boost::greater_than_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_hashed_associative_selector<boost::binary_predicate_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_hashed_associative_selector<boost::equivalenceS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_hashed_associative_selector<boost::c_str_less_than_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_hashed_associative_selector<
+ boost::c_str_greater_than_selector
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_hashed_associative_selector<boost::boost_hash_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_hashed_associative_selector<boost::tr1_hash_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_hashed_associative_selector<boost::std_allocator_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_hashed_associative_selector<
+ boost::std_flat_allocator_selector
+ >
+ ));
+}
+//]
+
+//[test__is_flat_associative_selector
+MPL_TEST_CASE()
+{
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_flat_associative_selector<boost::vecS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_flat_associative_selector<boost::dequeS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_flat_associative_selector<boost::listS>
+ ));
+//<-
+#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION || \
+ !defined BOOST_NO_SLIST
+//->
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_flat_associative_selector<boost::slistS>
+ ));
+//<-
+#endif
+//->
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_flat_associative_selector<boost::setS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_flat_associative_selector<boost::mapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_flat_associative_selector<boost::multisetS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_flat_associative_selector<boost::multimapS>
+ ));
+//<-
+#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION || defined BOOST_HAS_HASH
+//->
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_flat_associative_selector<boost::hash_setS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_flat_associative_selector<boost::hash_mapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_flat_associative_selector<boost::hash_multisetS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_flat_associative_selector<boost::hash_multimapS>
+ ));
+//<-
+#endif
+//->
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_flat_associative_selector<boost::ptr_vecS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_flat_associative_selector<boost::ptr_dequeS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_flat_associative_selector<boost::ptr_listS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_flat_associative_selector<boost::ptr_setS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_flat_associative_selector<boost::ptr_mapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_flat_associative_selector<boost::ptr_multisetS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_flat_associative_selector<boost::ptr_multimapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_flat_associative_selector<boost::stackS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_flat_associative_selector<boost::queueS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_flat_associative_selector<boost::std_heapS>
+ ));
+//<-
+#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+//->
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_flat_associative_selector<boost::ptr_hash_setS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_flat_associative_selector<boost::ptr_hash_mapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_flat_associative_selector<boost::ptr_hash_multisetS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_flat_associative_selector<boost::ptr_hash_multimapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_flat_associative_selector<
+ boost::vector_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_flat_associative_selector<boost::stable_vecS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_flat_associative_selector<
+ boost::deque_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_flat_associative_selector<
+ boost::list_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_flat_associative_selector<
+ boost::set_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_flat_associative_selector<
+ boost::map_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_flat_associative_selector<
+ boost::multiset_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_flat_associative_selector<
+ boost::multimap_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_flat_associative_selector<
+ boost::hash_set_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_tr1_not_boost_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_flat_associative_selector<
+ boost::hash_map_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_tr1_not_boost_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_flat_associative_selector<
+ boost::hash_multiset_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_tr1_not_boost_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_flat_associative_selector<
+ boost::hash_multimap_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_tr1_not_boost_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_flat_associative_selector<boost::flat_setS>
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_flat_associative_selector<boost::flat_mapS>
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_flat_associative_selector<boost::flat_multisetS>
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_flat_associative_selector<boost::flat_multimapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_flat_associative_selector<boost::priority_queueS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_flat_associative_selector<
+ boost::d_ary_heap_selector<boost::heap::arity<4> >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_flat_associative_selector<boost::binomial_heapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_flat_associative_selector<boost::fibonacci_heapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_flat_associative_selector<boost::pairing_heapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_flat_associative_selector<boost::skew_heapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_flat_associative_selector<
+ boost::tr1_binary_predicate_selector
+ >
+ ));
+//<-
+#endif // !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+//->
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_flat_associative_selector<boost::equal_to_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_flat_associative_selector<boost::less_than_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_flat_associative_selector<boost::greater_than_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_flat_associative_selector<boost::binary_predicate_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_flat_associative_selector<boost::equivalenceS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_flat_associative_selector<boost::c_str_less_than_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_flat_associative_selector<boost::c_str_greater_than_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_flat_associative_selector<boost::boost_hash_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_flat_associative_selector<boost::tr1_hash_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_flat_associative_selector<boost::std_allocator_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_flat_associative_selector<boost::std_flat_allocator_selector>
+ ));
+}
+//]
+
+//[test__is_ptr_selector
+MPL_TEST_CASE()
+{
+ BOOST_MPL_ASSERT_NOT((boost::is_ptr_selector<boost::vecS>));
+ BOOST_MPL_ASSERT_NOT((boost::is_ptr_selector<boost::dequeS>));
+ BOOST_MPL_ASSERT_NOT((boost::is_ptr_selector<boost::listS>));
+//<-
+#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION || \
+ !defined BOOST_NO_SLIST
+//->
+ BOOST_MPL_ASSERT_NOT((boost::is_ptr_selector<boost::slistS>));
+//<-
+#endif
+//->
+ BOOST_MPL_ASSERT_NOT((boost::is_ptr_selector<boost::setS>));
+ BOOST_MPL_ASSERT_NOT((boost::is_ptr_selector<boost::mapS>));
+ BOOST_MPL_ASSERT_NOT((boost::is_ptr_selector<boost::multisetS>));
+ BOOST_MPL_ASSERT_NOT((boost::is_ptr_selector<boost::multimapS>));
+//<-
+#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION || defined BOOST_HAS_HASH
+//->
+ BOOST_MPL_ASSERT_NOT((boost::is_ptr_selector<boost::hash_setS>));
+ BOOST_MPL_ASSERT_NOT((boost::is_ptr_selector<boost::hash_mapS>));
+ BOOST_MPL_ASSERT_NOT((boost::is_ptr_selector<boost::hash_multisetS>));
+ BOOST_MPL_ASSERT_NOT((boost::is_ptr_selector<boost::hash_multimapS>));
+//<-
+#endif
+//->
+ BOOST_MPL_ASSERT((boost::is_ptr_selector<boost::ptr_vecS>));
+ BOOST_MPL_ASSERT((boost::is_ptr_selector<boost::ptr_dequeS>));
+ BOOST_MPL_ASSERT((boost::is_ptr_selector<boost::ptr_listS>));
+ BOOST_MPL_ASSERT((boost::is_ptr_selector<boost::ptr_setS>));
+ BOOST_MPL_ASSERT((boost::is_ptr_selector<boost::ptr_mapS>));
+ BOOST_MPL_ASSERT((boost::is_ptr_selector<boost::ptr_multisetS>));
+ BOOST_MPL_ASSERT((boost::is_ptr_selector<boost::ptr_multimapS>));
+ BOOST_MPL_ASSERT_NOT((boost::is_ptr_selector<boost::stackS>));
+ BOOST_MPL_ASSERT_NOT((boost::is_ptr_selector<boost::queueS>));
+ BOOST_MPL_ASSERT_NOT((boost::is_ptr_selector<boost::std_heapS>));
+//<-
+#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+//->
+ BOOST_MPL_ASSERT((
+ boost::is_ptr_selector<boost::ptr_hash_setS>
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_ptr_selector<boost::ptr_hash_mapS>
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_ptr_selector<boost::ptr_hash_multisetS>
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_ptr_selector<boost::ptr_hash_multimapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_ptr_selector<
+ boost::vector_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_ptr_selector<boost::stable_vecS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_ptr_selector<
+ boost::deque_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_ptr_selector<
+ boost::list_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_ptr_selector<
+ boost::set_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_ptr_selector<
+ boost::map_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_ptr_selector<
+ boost::multiset_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_ptr_selector<
+ boost::multimap_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_ptr_selector<
+ boost::hash_set_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_tr1_not_boost_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_ptr_selector<
+ boost::hash_map_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_tr1_not_boost_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_ptr_selector<
+ boost::hash_multiset_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_tr1_not_boost_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_ptr_selector<
+ boost::hash_multimap_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_tr1_not_boost_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_ptr_selector<boost::flat_setS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_ptr_selector<boost::flat_mapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_ptr_selector<boost::flat_multisetS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_ptr_selector<boost::flat_multimapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_ptr_selector<boost::priority_queueS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_ptr_selector<
+ boost::d_ary_heap_selector<boost::heap::arity<4> >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_ptr_selector<boost::binomial_heapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_ptr_selector<boost::fibonacci_heapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_ptr_selector<boost::pairing_heapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_ptr_selector<boost::skew_heapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_ptr_selector<boost::tr1_binary_predicate_selector>
+ ));
+//<-
+#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+//->
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_ptr_selector<boost::equal_to_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_ptr_selector<boost::less_than_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_ptr_selector<boost::greater_than_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_ptr_selector<boost::binary_predicate_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_ptr_selector<boost::equivalenceS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_ptr_selector<boost::c_str_less_than_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_ptr_selector<boost::c_str_greater_than_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_ptr_selector<boost::boost_hash_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_ptr_selector<boost::tr1_hash_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_ptr_selector<boost::std_allocator_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_ptr_selector<boost::std_flat_allocator_selector>
+ ));
+}
+//]
+
+//[test__is_queue_selector
+MPL_TEST_CASE()
+{
+ BOOST_MPL_ASSERT_NOT((boost::is_queue_selector<boost::vecS>));
+ BOOST_MPL_ASSERT_NOT((boost::is_queue_selector<boost::dequeS>));
+ BOOST_MPL_ASSERT_NOT((boost::is_queue_selector<boost::listS>));
+//<-
+#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION || \
+ !defined BOOST_NO_SLIST
+//->
+ BOOST_MPL_ASSERT_NOT((boost::is_queue_selector<boost::slistS>));
+//<-
+#endif
+//->
+ BOOST_MPL_ASSERT_NOT((boost::is_queue_selector<boost::setS>));
+ BOOST_MPL_ASSERT_NOT((boost::is_queue_selector<boost::mapS>));
+ BOOST_MPL_ASSERT_NOT((boost::is_queue_selector<boost::multisetS>));
+ BOOST_MPL_ASSERT_NOT((boost::is_queue_selector<boost::multimapS>));
+//<-
+#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION || defined BOOST_HAS_HASH
+//->
+ BOOST_MPL_ASSERT_NOT((boost::is_queue_selector<boost::hash_setS>));
+ BOOST_MPL_ASSERT_NOT((boost::is_queue_selector<boost::hash_mapS>));
+ BOOST_MPL_ASSERT_NOT((boost::is_queue_selector<boost::hash_multisetS>));
+ BOOST_MPL_ASSERT_NOT((boost::is_queue_selector<boost::hash_multimapS>));
+//<-
+#endif
+//->
+ BOOST_MPL_ASSERT_NOT((boost::is_queue_selector<boost::ptr_vecS>));
+ BOOST_MPL_ASSERT_NOT((boost::is_queue_selector<boost::ptr_dequeS>));
+ BOOST_MPL_ASSERT_NOT((boost::is_queue_selector<boost::ptr_listS>));
+ BOOST_MPL_ASSERT_NOT((boost::is_queue_selector<boost::ptr_setS>));
+ BOOST_MPL_ASSERT_NOT((boost::is_queue_selector<boost::ptr_mapS>));
+ BOOST_MPL_ASSERT_NOT((boost::is_queue_selector<boost::ptr_multisetS>));
+ BOOST_MPL_ASSERT_NOT((boost::is_queue_selector<boost::ptr_multimapS>));
+ BOOST_MPL_ASSERT_NOT((boost::is_queue_selector<boost::stackS>));
+ BOOST_MPL_ASSERT((boost::is_queue_selector<boost::queueS>));
+ BOOST_MPL_ASSERT_NOT((boost::is_queue_selector<boost::std_heapS>));
+//<-
+#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+//->
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_queue_selector<boost::ptr_hash_setS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_queue_selector<boost::ptr_hash_mapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_queue_selector<boost::ptr_hash_multisetS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_queue_selector<boost::ptr_hash_multimapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_queue_selector<
+ boost::vector_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_queue_selector<boost::stable_vecS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_queue_selector<
+ boost::deque_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_queue_selector<
+ boost::list_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_queue_selector<
+ boost::set_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_queue_selector<
+ boost::map_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_queue_selector<
+ boost::multiset_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_queue_selector<
+ boost::multimap_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_queue_selector<
+ boost::hash_set_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_tr1_not_boost_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_queue_selector<
+ boost::hash_map_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_tr1_not_boost_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_queue_selector<
+ boost::hash_multiset_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_tr1_not_boost_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_queue_selector<
+ boost::hash_multimap_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_tr1_not_boost_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_queue_selector<boost::flat_setS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_queue_selector<boost::flat_mapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_queue_selector<boost::flat_multisetS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_queue_selector<boost::flat_multimapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_queue_selector<boost::priority_queueS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_queue_selector<
+ boost::d_ary_heap_selector<boost::heap::arity<4> >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_queue_selector<boost::binomial_heapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_queue_selector<boost::fibonacci_heapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_queue_selector<boost::pairing_heapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_queue_selector<boost::skew_heapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_queue_selector<boost::tr1_binary_predicate_selector>
+ ));
+//<-
+#endif // !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+//->
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_queue_selector<boost::equal_to_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_queue_selector<boost::less_than_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_queue_selector<boost::greater_than_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_queue_selector<boost::binary_predicate_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_queue_selector<boost::equivalenceS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_queue_selector<boost::c_str_less_than_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_queue_selector<boost::c_str_greater_than_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_queue_selector<boost::boost_hash_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_queue_selector<boost::tr1_hash_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_queue_selector<boost::std_allocator_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_queue_selector<boost::std_flat_allocator_selector>
+ ));
+}
+//]
+
+//[test__is_stack_selector
+MPL_TEST_CASE()
+{
+ BOOST_MPL_ASSERT_NOT((boost::is_stack_selector<boost::vecS>));
+ BOOST_MPL_ASSERT_NOT((boost::is_stack_selector<boost::dequeS>));
+ BOOST_MPL_ASSERT_NOT((boost::is_stack_selector<boost::listS>));
+//<-
+#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION || \
+ !defined BOOST_NO_SLIST
+//->
+ BOOST_MPL_ASSERT_NOT((boost::is_stack_selector<boost::slistS>));
+//<-
+#endif
+//->
+ BOOST_MPL_ASSERT_NOT((boost::is_stack_selector<boost::setS>));
+ BOOST_MPL_ASSERT_NOT((boost::is_stack_selector<boost::mapS>));
+ BOOST_MPL_ASSERT_NOT((boost::is_stack_selector<boost::multisetS>));
+ BOOST_MPL_ASSERT_NOT((boost::is_stack_selector<boost::multimapS>));
+//<-
+#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION || defined BOOST_HAS_HASH
+//->
+ BOOST_MPL_ASSERT_NOT((boost::is_stack_selector<boost::hash_setS>));
+ BOOST_MPL_ASSERT_NOT((boost::is_stack_selector<boost::hash_mapS>));
+ BOOST_MPL_ASSERT_NOT((boost::is_stack_selector<boost::hash_multisetS>));
+ BOOST_MPL_ASSERT_NOT((boost::is_stack_selector<boost::hash_multimapS>));
+//<-
+#endif
+//->
+ BOOST_MPL_ASSERT_NOT((boost::is_stack_selector<boost::ptr_vecS>));
+ BOOST_MPL_ASSERT_NOT((boost::is_stack_selector<boost::ptr_dequeS>));
+ BOOST_MPL_ASSERT_NOT((boost::is_stack_selector<boost::ptr_listS>));
+ BOOST_MPL_ASSERT_NOT((boost::is_stack_selector<boost::ptr_setS>));
+ BOOST_MPL_ASSERT_NOT((boost::is_stack_selector<boost::ptr_mapS>));
+ BOOST_MPL_ASSERT_NOT((boost::is_stack_selector<boost::ptr_multisetS>));
+ BOOST_MPL_ASSERT_NOT((boost::is_stack_selector<boost::ptr_multimapS>));
+ BOOST_MPL_ASSERT((boost::is_stack_selector<boost::stackS>));
+ BOOST_MPL_ASSERT_NOT((boost::is_stack_selector<boost::queueS>));
+ BOOST_MPL_ASSERT_NOT((boost::is_stack_selector<boost::std_heapS>));
+//<-
+#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+//->
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_stack_selector<boost::ptr_hash_setS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_stack_selector<boost::ptr_hash_mapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_stack_selector<boost::ptr_hash_multisetS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_stack_selector<boost::ptr_hash_multimapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_stack_selector<
+ boost::vector_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_stack_selector<boost::stable_vecS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_stack_selector<
+ boost::deque_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_stack_selector<
+ boost::list_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_stack_selector<
+ boost::set_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_stack_selector<
+ boost::map_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_stack_selector<
+ boost::multiset_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_stack_selector<
+ boost::multimap_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_stack_selector<
+ boost::hash_set_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_tr1_not_boost_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_stack_selector<
+ boost::hash_map_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_tr1_not_boost_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_stack_selector<
+ boost::hash_multiset_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_tr1_not_boost_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_stack_selector<
+ boost::hash_multimap_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_tr1_not_boost_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_stack_selector<boost::flat_setS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_stack_selector<boost::flat_mapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_stack_selector<boost::flat_multisetS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_stack_selector<boost::flat_multimapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_stack_selector<boost::priority_queueS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_stack_selector<
+ boost::d_ary_heap_selector<boost::heap::arity<4> >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_stack_selector<boost::binomial_heapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_stack_selector<boost::fibonacci_heapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_stack_selector<boost::pairing_heapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_stack_selector<boost::skew_heapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_stack_selector<boost::tr1_binary_predicate_selector>
+ ));
+//<-
+#endif // !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+//->
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_stack_selector<boost::equal_to_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_stack_selector<boost::less_than_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_stack_selector<boost::greater_than_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_stack_selector<boost::binary_predicate_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_stack_selector<boost::equivalenceS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_stack_selector<boost::c_str_less_than_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_stack_selector<boost::c_str_greater_than_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_stack_selector<boost::boost_hash_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_stack_selector<boost::tr1_hash_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_stack_selector<boost::std_allocator_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_stack_selector<boost::std_flat_allocator_selector>
+ ));
+}
+//]
+
+//[test__is_std_heap_selector
+MPL_TEST_CASE()
+{
+ BOOST_MPL_ASSERT_NOT((boost::is_std_heap_selector<boost::vecS>));
+ BOOST_MPL_ASSERT_NOT((boost::is_std_heap_selector<boost::dequeS>));
+ BOOST_MPL_ASSERT_NOT((boost::is_std_heap_selector<boost::listS>));
+//<-
+#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION || \
+ !defined BOOST_NO_SLIST
+//->
+ BOOST_MPL_ASSERT_NOT((boost::is_std_heap_selector<boost::slistS>));
+//<-
+#endif
+//->
+ BOOST_MPL_ASSERT_NOT((boost::is_std_heap_selector<boost::setS>));
+ BOOST_MPL_ASSERT_NOT((boost::is_std_heap_selector<boost::mapS>));
+ BOOST_MPL_ASSERT_NOT((boost::is_std_heap_selector<boost::multisetS>));
+ BOOST_MPL_ASSERT_NOT((boost::is_std_heap_selector<boost::multimapS>));
+//<-
+#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION || defined BOOST_HAS_HASH
+//->
+ BOOST_MPL_ASSERT_NOT((boost::is_std_heap_selector<boost::hash_setS>));
+ BOOST_MPL_ASSERT_NOT((boost::is_std_heap_selector<boost::hash_mapS>));
+ BOOST_MPL_ASSERT_NOT((boost::is_std_heap_selector<boost::hash_multisetS>));
+ BOOST_MPL_ASSERT_NOT((boost::is_std_heap_selector<boost::hash_multimapS>));
+//<-
+#endif
+//->
+ BOOST_MPL_ASSERT_NOT((boost::is_std_heap_selector<boost::ptr_vecS>));
+ BOOST_MPL_ASSERT_NOT((boost::is_std_heap_selector<boost::ptr_dequeS>));
+ BOOST_MPL_ASSERT_NOT((boost::is_std_heap_selector<boost::ptr_listS>));
+ BOOST_MPL_ASSERT_NOT((boost::is_std_heap_selector<boost::ptr_setS>));
+ BOOST_MPL_ASSERT_NOT((boost::is_std_heap_selector<boost::ptr_mapS>));
+ BOOST_MPL_ASSERT_NOT((boost::is_std_heap_selector<boost::ptr_multisetS>));
+ BOOST_MPL_ASSERT_NOT((boost::is_std_heap_selector<boost::ptr_multimapS>));
+ BOOST_MPL_ASSERT_NOT((boost::is_std_heap_selector<boost::stackS>));
+ BOOST_MPL_ASSERT_NOT((boost::is_std_heap_selector<boost::queueS>));
+ BOOST_MPL_ASSERT((boost::is_std_heap_selector<boost::std_heapS>));
+//<-
+#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+//->
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_std_heap_selector<boost::ptr_hash_setS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_std_heap_selector<boost::ptr_hash_mapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_std_heap_selector<boost::ptr_hash_multisetS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_std_heap_selector<boost::ptr_hash_multimapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_std_heap_selector<
+ boost::vector_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_std_heap_selector<boost::stable_vecS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_std_heap_selector<
+ boost::deque_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_std_heap_selector<
+ boost::list_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_std_heap_selector<
+ boost::set_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_std_heap_selector<
+ boost::map_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_std_heap_selector<
+ boost::multiset_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_std_heap_selector<
+ boost::multimap_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_std_heap_selector<
+ boost::hash_set_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_tr1_not_boost_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_std_heap_selector<
+ boost::hash_map_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_tr1_not_boost_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_std_heap_selector<
+ boost::hash_multiset_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_tr1_not_boost_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_std_heap_selector<
+ boost::hash_multimap_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_tr1_not_boost_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_std_heap_selector<boost::flat_setS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_std_heap_selector<boost::flat_mapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_std_heap_selector<boost::flat_multisetS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_std_heap_selector<boost::flat_multimapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_std_heap_selector<boost::priority_queueS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_std_heap_selector<
+ boost::d_ary_heap_selector<boost::heap::arity<4> >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_std_heap_selector<boost::binomial_heapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_std_heap_selector<boost::fibonacci_heapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_std_heap_selector<boost::pairing_heapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_std_heap_selector<boost::skew_heapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_std_heap_selector<boost::tr1_binary_predicate_selector>
+ ));
+//<-
+#endif // !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+//->
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_std_heap_selector<boost::equal_to_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_std_heap_selector<boost::less_than_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_std_heap_selector<boost::greater_than_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_std_heap_selector<boost::binary_predicate_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_std_heap_selector<boost::equivalenceS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_std_heap_selector<boost::c_str_less_than_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_std_heap_selector<boost::c_str_greater_than_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_std_heap_selector<boost::boost_hash_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_std_heap_selector<boost::tr1_hash_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_std_heap_selector<boost::std_allocator_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_std_heap_selector<boost::std_flat_allocator_selector>
+ ));
+}
+//]
+
+//[test__is_heap_selector
+MPL_TEST_CASE()
+{
+ BOOST_MPL_ASSERT_NOT((boost::is_heap_selector<boost::vecS>));
+ BOOST_MPL_ASSERT_NOT((boost::is_heap_selector<boost::dequeS>));
+ BOOST_MPL_ASSERT_NOT((boost::is_heap_selector<boost::listS>));
+//<-
+#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION || \
+ !defined BOOST_NO_SLIST
+//->
+ BOOST_MPL_ASSERT_NOT((boost::is_heap_selector<boost::slistS>));
+//<-
+#endif
+//->
+ BOOST_MPL_ASSERT_NOT((boost::is_heap_selector<boost::setS>));
+ BOOST_MPL_ASSERT_NOT((boost::is_heap_selector<boost::mapS>));
+ BOOST_MPL_ASSERT_NOT((boost::is_heap_selector<boost::multisetS>));
+ BOOST_MPL_ASSERT_NOT((boost::is_heap_selector<boost::multimapS>));
+//<-
+#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION || defined BOOST_HAS_HASH
+//->
+ BOOST_MPL_ASSERT_NOT((boost::is_heap_selector<boost::hash_setS>));
+ BOOST_MPL_ASSERT_NOT((boost::is_heap_selector<boost::hash_mapS>));
+ BOOST_MPL_ASSERT_NOT((boost::is_heap_selector<boost::hash_multisetS>));
+ BOOST_MPL_ASSERT_NOT((boost::is_heap_selector<boost::hash_multimapS>));
+//<-
+#endif
+//->
+ BOOST_MPL_ASSERT_NOT((boost::is_heap_selector<boost::ptr_vecS>));
+ BOOST_MPL_ASSERT_NOT((boost::is_heap_selector<boost::ptr_dequeS>));
+ BOOST_MPL_ASSERT_NOT((boost::is_heap_selector<boost::ptr_listS>));
+ BOOST_MPL_ASSERT_NOT((boost::is_heap_selector<boost::ptr_setS>));
+ BOOST_MPL_ASSERT_NOT((boost::is_heap_selector<boost::ptr_mapS>));
+ BOOST_MPL_ASSERT_NOT((boost::is_heap_selector<boost::ptr_multisetS>));
+ BOOST_MPL_ASSERT_NOT((boost::is_heap_selector<boost::ptr_multimapS>));
+ BOOST_MPL_ASSERT_NOT((boost::is_heap_selector<boost::stackS>));
+ BOOST_MPL_ASSERT_NOT((boost::is_heap_selector<boost::queueS>));
+ BOOST_MPL_ASSERT_NOT((boost::is_heap_selector<boost::std_heapS>));
+//<-
+#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+//->
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_heap_selector<boost::ptr_hash_setS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_heap_selector<boost::ptr_hash_mapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_heap_selector<boost::ptr_hash_multisetS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_heap_selector<boost::ptr_hash_multimapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_heap_selector<
+ boost::vector_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_heap_selector<boost::stable_vecS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_heap_selector<
+ boost::deque_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_heap_selector<
+ boost::list_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_heap_selector<
+ boost::set_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_heap_selector<
+ boost::map_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_heap_selector<
+ boost::multiset_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_heap_selector<
+ boost::multimap_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_heap_selector<
+ boost::hash_set_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_tr1_not_boost_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_heap_selector<
+ boost::hash_map_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_tr1_not_boost_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_heap_selector<
+ boost::hash_multiset_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_tr1_not_boost_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_heap_selector<
+ boost::hash_multimap_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_tr1_not_boost_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_heap_selector<boost::flat_setS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_heap_selector<boost::flat_mapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_heap_selector<boost::flat_multisetS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_heap_selector<boost::flat_multimapS>
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_heap_selector<boost::priority_queueS>
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_heap_selector<
+ boost::d_ary_heap_selector<boost::heap::arity<4> >
+ >
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_heap_selector<boost::binomial_heapS>
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_heap_selector<boost::fibonacci_heapS>
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_heap_selector<boost::pairing_heapS>
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_heap_selector<boost::skew_heapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_heap_selector<boost::tr1_binary_predicate_selector>
+ ));
+//<-
+#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+//->
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_heap_selector<boost::equal_to_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_heap_selector<boost::less_than_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_heap_selector<boost::greater_than_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_heap_selector<boost::binary_predicate_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_heap_selector<boost::equivalenceS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_heap_selector<boost::c_str_less_than_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_heap_selector<boost::c_str_greater_than_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_heap_selector<boost::boost_hash_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_heap_selector<boost::tr1_hash_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_heap_selector<boost::std_allocator_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_heap_selector<boost::std_flat_allocator_selector>
+ ));
+}
+//]
+
+//[test__is_iteratable_heap_selector
+MPL_TEST_CASE()
+{
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_iteratable_heap_selector<boost::vecS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_iteratable_heap_selector<boost::dequeS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_iteratable_heap_selector<boost::listS>
+ ));
+//<-
+#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION || \
+ !defined BOOST_NO_SLIST
+//->
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_iteratable_heap_selector<boost::slistS>
+ ));
+//<-
+#endif
+//->
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_iteratable_heap_selector<boost::setS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_iteratable_heap_selector<boost::mapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_iteratable_heap_selector<boost::multisetS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_iteratable_heap_selector<boost::multimapS>
+ ));
+//<-
+#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION || defined BOOST_HAS_HASH
+//->
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_iteratable_heap_selector<boost::hash_setS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_iteratable_heap_selector<boost::hash_mapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_iteratable_heap_selector<boost::hash_multisetS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_iteratable_heap_selector<boost::hash_multimapS>
+ ));
+//<-
+#endif
+//->
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_iteratable_heap_selector<boost::ptr_vecS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_iteratable_heap_selector<boost::ptr_dequeS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_iteratable_heap_selector<boost::ptr_listS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_iteratable_heap_selector<boost::ptr_setS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_iteratable_heap_selector<boost::ptr_mapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_iteratable_heap_selector<boost::ptr_multisetS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_iteratable_heap_selector<boost::ptr_multimapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_iteratable_heap_selector<boost::stackS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_iteratable_heap_selector<boost::queueS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_iteratable_heap_selector<boost::std_heapS>
+ ));
+//<-
+#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+//->
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_iteratable_heap_selector<boost::ptr_hash_setS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_iteratable_heap_selector<boost::ptr_hash_mapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_iteratable_heap_selector<boost::ptr_hash_multisetS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_iteratable_heap_selector<boost::ptr_hash_multimapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_iteratable_heap_selector<
+ boost::vector_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_iteratable_heap_selector<boost::stable_vecS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_iteratable_heap_selector<
+ boost::deque_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_iteratable_heap_selector<
+ boost::list_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_iteratable_heap_selector<
+ boost::set_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_iteratable_heap_selector<
+ boost::map_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_iteratable_heap_selector<
+ boost::multiset_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_iteratable_heap_selector<
+ boost::multimap_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_iteratable_heap_selector<
+ boost::hash_set_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_tr1_not_boost_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_iteratable_heap_selector<
+ boost::hash_map_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_tr1_not_boost_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_iteratable_heap_selector<
+ boost::hash_multiset_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_tr1_not_boost_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_iteratable_heap_selector<
+ boost::hash_multimap_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_tr1_not_boost_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_iteratable_heap_selector<boost::flat_setS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_iteratable_heap_selector<boost::flat_mapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_iteratable_heap_selector<boost::flat_multisetS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_iteratable_heap_selector<boost::flat_multimapS>
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_iteratable_heap_selector<boost::priority_queueS>
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_iteratable_heap_selector<
+ boost::d_ary_heap_selector<boost::heap::arity<4> >
+ >
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_iteratable_heap_selector<boost::binomial_heapS>
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_iteratable_heap_selector<boost::fibonacci_heapS>
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_iteratable_heap_selector<boost::pairing_heapS>
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_iteratable_heap_selector<boost::skew_heapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_iteratable_heap_selector<
+ boost::tr1_binary_predicate_selector
+ >
+ ));
+//<-
+#endif // !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+//->
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_iteratable_heap_selector<boost::equal_to_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_iteratable_heap_selector<boost::less_than_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_iteratable_heap_selector<boost::greater_than_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_iteratable_heap_selector<boost::binary_predicate_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_iteratable_heap_selector<boost::equivalenceS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_iteratable_heap_selector<boost::c_str_less_than_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_iteratable_heap_selector<boost::c_str_greater_than_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_iteratable_heap_selector<boost::boost_hash_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_iteratable_heap_selector<boost::tr1_hash_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_iteratable_heap_selector<boost::std_allocator_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_iteratable_heap_selector<boost::std_flat_allocator_selector>
+ ));
+}
+//]
+
+//[test__is_order_iteratable_heap_selector
+MPL_TEST_CASE()
+{
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_order_iteratable_heap_selector<boost::vecS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_order_iteratable_heap_selector<boost::dequeS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_order_iteratable_heap_selector<boost::listS>
+ ));
+//<-
+#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION || \
+ !defined BOOST_NO_SLIST
+//->
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_order_iteratable_heap_selector<boost::slistS>
+ ));
+//<-
+#endif
+//->
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_order_iteratable_heap_selector<boost::setS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_order_iteratable_heap_selector<boost::mapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_order_iteratable_heap_selector<boost::multisetS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_order_iteratable_heap_selector<boost::multimapS>
+ ));
+//<-
+#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION || defined BOOST_HAS_HASH
+//->
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_order_iteratable_heap_selector<boost::hash_setS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_order_iteratable_heap_selector<boost::hash_mapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_order_iteratable_heap_selector<boost::hash_multisetS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_order_iteratable_heap_selector<boost::hash_multimapS>
+ ));
+//<-
+#endif
+//->
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_order_iteratable_heap_selector<boost::ptr_vecS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_order_iteratable_heap_selector<boost::ptr_dequeS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_order_iteratable_heap_selector<boost::ptr_listS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_order_iteratable_heap_selector<boost::ptr_setS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_order_iteratable_heap_selector<boost::ptr_mapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_order_iteratable_heap_selector<boost::ptr_multisetS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_order_iteratable_heap_selector<boost::ptr_multimapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_order_iteratable_heap_selector<boost::stackS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_order_iteratable_heap_selector<boost::queueS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_order_iteratable_heap_selector<boost::std_heapS>
+ ));
+//<-
+#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+//->
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_order_iteratable_heap_selector<boost::ptr_hash_setS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_order_iteratable_heap_selector<boost::ptr_hash_mapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_order_iteratable_heap_selector<boost::ptr_hash_multisetS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_order_iteratable_heap_selector<boost::ptr_hash_multimapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_order_iteratable_heap_selector<
+ boost::vector_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_order_iteratable_heap_selector<boost::stable_vecS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_order_iteratable_heap_selector<
+ boost::deque_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_order_iteratable_heap_selector<
+ boost::list_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_order_iteratable_heap_selector<
+ boost::set_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_order_iteratable_heap_selector<
+ boost::map_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_order_iteratable_heap_selector<
+ boost::multiset_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_order_iteratable_heap_selector<
+ boost::multimap_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_order_iteratable_heap_selector<
+ boost::hash_set_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_tr1_not_boost_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_order_iteratable_heap_selector<
+ boost::hash_map_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_tr1_not_boost_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_order_iteratable_heap_selector<
+ boost::hash_multiset_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_tr1_not_boost_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_order_iteratable_heap_selector<
+ boost::hash_multimap_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_tr1_not_boost_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_order_iteratable_heap_selector<boost::flat_setS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_order_iteratable_heap_selector<boost::flat_mapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_order_iteratable_heap_selector<boost::flat_multisetS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_order_iteratable_heap_selector<boost::flat_multimapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_order_iteratable_heap_selector<boost::priority_queueS>
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_order_iteratable_heap_selector<
+ boost::d_ary_heap_selector<boost::heap::arity<4> >
+ >
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_order_iteratable_heap_selector<boost::binomial_heapS>
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_order_iteratable_heap_selector<boost::fibonacci_heapS>
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_order_iteratable_heap_selector<boost::pairing_heapS>
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_order_iteratable_heap_selector<boost::skew_heapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_order_iteratable_heap_selector<
+ boost::tr1_binary_predicate_selector
+ >
+ ));
+//<-
+#endif // !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+//->
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_order_iteratable_heap_selector<boost::equal_to_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_order_iteratable_heap_selector<boost::less_than_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_order_iteratable_heap_selector<boost::greater_than_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_order_iteratable_heap_selector<
+ boost::binary_predicate_selector
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_order_iteratable_heap_selector<boost::equivalenceS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_order_iteratable_heap_selector<
+ boost::c_str_less_than_selector
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_order_iteratable_heap_selector<
+ boost::c_str_greater_than_selector
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_order_iteratable_heap_selector<boost::boost_hash_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_order_iteratable_heap_selector<boost::tr1_hash_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_order_iteratable_heap_selector<boost::std_allocator_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_order_iteratable_heap_selector<
+ boost::std_flat_allocator_selector
+ >
+ ));
+}
+//]
+
+//[test__is_mutable_heap_selector
+MPL_TEST_CASE()
+{
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_mutable_heap_selector<boost::vecS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_mutable_heap_selector<boost::dequeS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_mutable_heap_selector<boost::listS>
+ ));
+//<-
+#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION || \
+ !defined BOOST_NO_SLIST
+//->
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_mutable_heap_selector<boost::slistS>
+ ));
+//<-
+#endif
+//->
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_mutable_heap_selector<boost::setS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_mutable_heap_selector<boost::mapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_mutable_heap_selector<boost::multisetS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_mutable_heap_selector<boost::multimapS>
+ ));
+//<-
+#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION || defined BOOST_HAS_HASH
+//->
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_mutable_heap_selector<boost::hash_setS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_mutable_heap_selector<boost::hash_mapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_mutable_heap_selector<boost::hash_multisetS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_mutable_heap_selector<boost::hash_multimapS>
+ ));
+//<-
+#endif
+//->
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_mutable_heap_selector<boost::ptr_vecS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_mutable_heap_selector<boost::ptr_dequeS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_mutable_heap_selector<boost::ptr_listS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_mutable_heap_selector<boost::ptr_setS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_mutable_heap_selector<boost::ptr_mapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_mutable_heap_selector<boost::ptr_multisetS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_mutable_heap_selector<boost::ptr_multimapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_mutable_heap_selector<boost::stackS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_mutable_heap_selector<boost::queueS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_mutable_heap_selector<boost::std_heapS>
+ ));
+//<-
+#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+//->
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_mutable_heap_selector<boost::ptr_hash_setS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_mutable_heap_selector<boost::ptr_hash_mapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_mutable_heap_selector<boost::ptr_hash_multisetS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_mutable_heap_selector<boost::ptr_hash_multimapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_mutable_heap_selector<
+ boost::vector_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_mutable_heap_selector<boost::stable_vecS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_mutable_heap_selector<
+ boost::deque_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_mutable_heap_selector<
+ boost::list_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_mutable_heap_selector<
+ boost::set_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_mutable_heap_selector<
+ boost::map_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_mutable_heap_selector<
+ boost::multiset_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_mutable_heap_selector<
+ boost::multimap_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_mutable_heap_selector<
+ boost::hash_set_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_tr1_not_boost_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_mutable_heap_selector<
+ boost::hash_map_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_tr1_not_boost_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_mutable_heap_selector<
+ boost::hash_multiset_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_tr1_not_boost_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_mutable_heap_selector<
+ boost::hash_multimap_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_tr1_not_boost_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_mutable_heap_selector<boost::flat_setS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_mutable_heap_selector<boost::flat_mapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_mutable_heap_selector<boost::flat_multisetS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_mutable_heap_selector<boost::flat_multimapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_mutable_heap_selector<boost::priority_queueS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_mutable_heap_selector<
+ boost::d_ary_heap_selector<boost::heap::arity<4> >
+ >
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_mutable_heap_selector<
+//<-
+// boost::d_ary_heap_selector<boost::heap::mutable_<true>,int_<4> >
+//->
+ boost::d_ary_heap_selector<
+ boost::heap::mutable_<true>
+ , boost::heap::arity<4>
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_mutable_heap_selector<boost::binomial_heapS>
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_mutable_heap_selector<boost::fibonacci_heapS>
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_mutable_heap_selector<boost::pairing_heapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_mutable_heap_selector<boost::skew_heapS>
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_mutable_heap_selector<
+ boost::skew_heap_selector<boost::heap::mutable_<true> >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_mutable_heap_selector<boost::tr1_binary_predicate_selector>
+ ));
+//<-
+#endif // !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+//->
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_mutable_heap_selector<boost::equal_to_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_mutable_heap_selector<boost::less_than_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_mutable_heap_selector<boost::greater_than_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_mutable_heap_selector<boost::binary_predicate_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_mutable_heap_selector<boost::equivalenceS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_mutable_heap_selector<boost::c_str_less_than_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_mutable_heap_selector<boost::c_str_greater_than_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_mutable_heap_selector<boost::boost_hash_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_mutable_heap_selector<boost::tr1_hash_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_mutable_heap_selector<boost::std_allocator_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_mutable_heap_selector<boost::std_flat_allocator_selector>
+ ));
+}
+//]
+
+//[test__is_mergeable_heap_selector
+MPL_TEST_CASE()
+{
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_mergeable_heap_selector<boost::vecS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_mergeable_heap_selector<boost::dequeS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_mergeable_heap_selector<boost::listS>
+ ));
+//<-
+#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION || \
+ !defined BOOST_NO_SLIST
+//->
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_mergeable_heap_selector<boost::slistS>
+ ));
+//<-
+#endif
+//->
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_mergeable_heap_selector<boost::setS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_mergeable_heap_selector<boost::mapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_mergeable_heap_selector<boost::multisetS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_mergeable_heap_selector<boost::multimapS>
+ ));
+//<-
+#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION || defined BOOST_HAS_HASH
+//->
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_mergeable_heap_selector<boost::hash_setS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_mergeable_heap_selector<boost::hash_mapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_mergeable_heap_selector<boost::hash_multisetS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_mergeable_heap_selector<boost::hash_multimapS>
+ ));
+//<-
+#endif
+//->
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_mergeable_heap_selector<boost::ptr_vecS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_mergeable_heap_selector<boost::ptr_dequeS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_mergeable_heap_selector<boost::ptr_listS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_mergeable_heap_selector<boost::ptr_setS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_mergeable_heap_selector<boost::ptr_mapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_mergeable_heap_selector<boost::ptr_multisetS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_mergeable_heap_selector<boost::ptr_multimapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_mergeable_heap_selector<boost::stackS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_mergeable_heap_selector<boost::queueS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_mergeable_heap_selector<boost::std_heapS>
+ ));
+//<-
+#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+//->
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_mergeable_heap_selector<boost::ptr_hash_setS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_mergeable_heap_selector<boost::ptr_hash_mapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_mergeable_heap_selector<boost::ptr_hash_multisetS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_mergeable_heap_selector<boost::ptr_hash_multimapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_mergeable_heap_selector<
+ boost::vector_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_mergeable_heap_selector<boost::stable_vecS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_mutable_heap_selector<
+ boost::deque_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_mergeable_heap_selector<
+ boost::list_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_mergeable_heap_selector<
+ boost::set_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_mergeable_heap_selector<
+ boost::map_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_mergeable_heap_selector<
+ boost::multiset_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_mergeable_heap_selector<
+ boost::multimap_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_mergeable_heap_selector<
+ boost::hash_set_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_tr1_not_boost_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_mergeable_heap_selector<
+ boost::hash_map_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_tr1_not_boost_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_mergeable_heap_selector<
+ boost::hash_multiset_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_tr1_not_boost_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_mergeable_heap_selector<
+ boost::hash_multimap_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_tr1_not_boost_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_mergeable_heap_selector<boost::flat_setS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_mergeable_heap_selector<boost::flat_mapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_mergeable_heap_selector<boost::flat_multisetS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_mergeable_heap_selector<boost::flat_multimapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_mergeable_heap_selector<boost::priority_queueS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_mergeable_heap_selector<
+ boost::d_ary_heap_selector<boost::heap::arity<4> >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_mergeable_heap_selector<
+//<-
+// boost::d_ary_heap_selector<boost::heap::mutable_<true>,int_<4> >
+//->
+ boost::d_ary_heap_selector<
+ boost::heap::mutable_<true>
+ , boost::heap::arity<4>
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_mergeable_heap_selector<boost::binomial_heapS>
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_mergeable_heap_selector<boost::fibonacci_heapS>
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_mergeable_heap_selector<boost::pairing_heapS>
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_mergeable_heap_selector<boost::skew_heapS>
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_mergeable_heap_selector<
+ boost::skew_heap_selector<boost::heap::mutable_<true> >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_mergeable_heap_selector<boost::tr1_binary_predicate_selector>
+ ));
+//<-
+#endif // !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+//->
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_mergeable_heap_selector<boost::equal_to_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_mergeable_heap_selector<boost::less_than_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_mergeable_heap_selector<boost::greater_than_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_mergeable_heap_selector<boost::binary_predicate_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_mergeable_heap_selector<boost::equivalenceS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_mergeable_heap_selector<boost::c_str_less_than_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_mergeable_heap_selector<boost::c_str_greater_than_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_mergeable_heap_selector<boost::boost_hash_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_mergeable_heap_selector<boost::tr1_hash_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_mergeable_heap_selector<boost::std_allocator_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_mergeable_heap_selector<boost::std_flat_allocator_selector>
+ ));
+}
+//]
+
+//[test__has_stable_iterators_selector
+MPL_TEST_CASE()
+{
+ BOOST_MPL_ASSERT_NOT((
+ boost::has_stable_iterators_selector<boost::vecS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::has_stable_iterators_selector<boost::dequeS>
+ ));
+ BOOST_MPL_ASSERT((
+ boost::has_stable_iterators_selector<boost::listS>
+ ));
+//<-
+#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION || \
+ !defined BOOST_NO_SLIST
+//->
+ BOOST_MPL_ASSERT((
+ boost::has_stable_iterators_selector<boost::slistS>
+ ));
+//<-
+#endif
+//->
+ BOOST_MPL_ASSERT((
+ boost::has_stable_iterators_selector<boost::setS>
+ ));
+ BOOST_MPL_ASSERT((
+ boost::has_stable_iterators_selector<boost::mapS>
+ ));
+ BOOST_MPL_ASSERT((
+ boost::has_stable_iterators_selector<boost::multisetS>
+ ));
+ BOOST_MPL_ASSERT((
+ boost::has_stable_iterators_selector<boost::multimapS>
+ ));
+//<-
+#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION || defined BOOST_HAS_HASH
+//->
+ BOOST_MPL_ASSERT_NOT((
+ boost::has_stable_iterators_selector<boost::hash_setS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::has_stable_iterators_selector<boost::hash_mapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::has_stable_iterators_selector<boost::hash_multisetS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::has_stable_iterators_selector<boost::hash_multimapS>
+ ));
+//<-
+#endif
+//->
+ BOOST_MPL_ASSERT_NOT((
+ boost::has_stable_iterators_selector<boost::ptr_vecS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::has_stable_iterators_selector<boost::ptr_dequeS>
+ ));
+ BOOST_MPL_ASSERT((
+ boost::has_stable_iterators_selector<boost::ptr_listS>
+ ));
+ BOOST_MPL_ASSERT((
+ boost::has_stable_iterators_selector<boost::ptr_setS>
+ ));
+ BOOST_MPL_ASSERT((
+ boost::has_stable_iterators_selector<boost::ptr_mapS>
+ ));
+ BOOST_MPL_ASSERT((
+ boost::has_stable_iterators_selector<boost::ptr_multisetS>
+ ));
+ BOOST_MPL_ASSERT((
+ boost::has_stable_iterators_selector<boost::ptr_multimapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::has_stable_iterators_selector<boost::stackS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::has_stable_iterators_selector<boost::queueS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::has_stable_iterators_selector<boost::std_heapS>
+ ));
+//<-
+#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+//->
+ BOOST_MPL_ASSERT_NOT((
+ boost::has_stable_iterators_selector<boost::ptr_hash_setS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::has_stable_iterators_selector<boost::ptr_hash_mapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::has_stable_iterators_selector<boost::ptr_hash_multisetS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::has_stable_iterators_selector<boost::ptr_hash_multimapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::has_stable_iterators_selector<
+ boost::vector_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT((
+ boost::has_stable_iterators_selector<boost::stable_vecS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::has_stable_iterators_selector<
+ boost::deque_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT((
+ boost::has_stable_iterators_selector<
+ boost::list_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT((
+ boost::has_stable_iterators_selector<
+ boost::set_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT((
+ boost::has_stable_iterators_selector<
+ boost::map_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT((
+ boost::has_stable_iterators_selector<
+ boost::multiset_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT((
+ boost::has_stable_iterators_selector<
+ boost::multimap_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::has_stable_iterators_selector<
+ boost::hash_set_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_tr1_not_boost_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::has_stable_iterators_selector<
+ boost::hash_map_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_tr1_not_boost_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::has_stable_iterators_selector<
+ boost::hash_multiset_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_tr1_not_boost_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::has_stable_iterators_selector<
+ boost::hash_multimap_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_tr1_not_boost_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::has_stable_iterators_selector<boost::flat_setS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::has_stable_iterators_selector<boost::flat_mapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::has_stable_iterators_selector<boost::flat_multisetS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::has_stable_iterators_selector<boost::flat_multimapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::has_stable_iterators_selector<boost::priority_queueS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::has_stable_iterators_selector<
+ boost::d_ary_heap_selector<boost::heap::arity<4> >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::has_stable_iterators_selector<boost::binomial_heapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::has_stable_iterators_selector<boost::fibonacci_heapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::has_stable_iterators_selector<boost::pairing_heapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::has_stable_iterators_selector<boost::skew_heapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::has_stable_iterators_selector<
+ boost::tr1_binary_predicate_selector
+ >
+ ));
+//<-
+#endif // !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+//->
+ BOOST_MPL_ASSERT_NOT((
+ boost::has_stable_iterators_selector<boost::equal_to_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::has_stable_iterators_selector<boost::less_than_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::has_stable_iterators_selector<boost::greater_than_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::has_stable_iterators_selector<boost::binary_predicate_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::has_stable_iterators_selector<boost::equivalenceS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::has_stable_iterators_selector<boost::c_str_less_than_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::has_stable_iterators_selector<
+ boost::c_str_greater_than_selector
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::has_stable_iterators_selector<boost::boost_hash_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::has_stable_iterators_selector<boost::tr1_hash_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::has_stable_iterators_selector<boost::std_allocator_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::has_stable_iterators_selector<
+ boost::std_flat_allocator_selector
+ >
+ ));
+}
+//]
+
+#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+
+//[test__is_tr1_selector
+MPL_TEST_CASE()
+{
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_tr1_selector<boost::vecS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_tr1_selector<boost::dequeS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_tr1_selector<boost::listS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_tr1_selector<boost::slistS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_tr1_selector<boost::setS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_tr1_selector<boost::mapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_tr1_selector<boost::multisetS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_tr1_selector<boost::multimapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_tr1_selector<boost::hash_setS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_tr1_selector<boost::hash_mapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_tr1_selector<boost::hash_multisetS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_tr1_selector<boost::hash_multimapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_tr1_selector<boost::ptr_vecS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_tr1_selector<boost::ptr_dequeS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_tr1_selector<boost::ptr_listS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_tr1_selector<boost::ptr_setS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_tr1_selector<boost::ptr_mapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_tr1_selector<boost::ptr_multisetS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_tr1_selector<boost::ptr_multimapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_tr1_selector<boost::stackS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_tr1_selector<boost::queueS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_tr1_selector<boost::std_heapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_tr1_selector<boost::ptr_hash_setS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_tr1_selector<boost::ptr_hash_mapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_tr1_selector<boost::ptr_hash_multisetS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_tr1_selector<boost::ptr_hash_multimapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_tr1_selector<
+ boost::vector_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_tr1_selector<boost::stable_vecS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_tr1_selector<
+ boost::deque_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_tr1_selector<
+ boost::list_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_tr1_selector<
+ boost::set_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_tr1_selector<
+ boost::map_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_tr1_selector<
+ boost::multiset_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_tr1_selector<
+ boost::multimap_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_tr1_selector<
+ boost::hash_set_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_tr1_not_boost_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_tr1_selector<
+ boost::hash_map_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_tr1_not_boost_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_tr1_selector<
+ boost::hash_multiset_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_tr1_not_boost_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_tr1_selector<
+ boost::hash_multimap_selector<
+//<-
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_tr1_not_boost_arg<true_>
+#else
+//->
+ true_
+//<-
+#endif
+//->
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_tr1_selector<boost::flat_setS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_tr1_selector<boost::flat_mapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_tr1_selector<boost::flat_multisetS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_tr1_selector<boost::flat_multimapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_tr1_selector<boost::priority_queueS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_tr1_selector<
+ boost::d_ary_heap_selector<boost::heap::arity<4> >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_tr1_selector<boost::binomial_heapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_tr1_selector<boost::fibonacci_heapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_tr1_selector<boost::pairing_heapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_tr1_selector<boost::skew_heapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_tr1_selector<boost::equal_to_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_tr1_selector<boost::less_than_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_tr1_selector<boost::greater_than_selector>
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_tr1_selector<boost::tr1_binary_predicate_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_tr1_selector<boost::binary_predicate_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_tr1_selector<boost::equivalenceS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_tr1_selector<boost::c_str_less_than_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_tr1_selector<boost::c_str_greater_than_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_tr1_selector<boost::boost_hash_selector>
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_tr1_selector<boost::tr1_hash_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_tr1_selector<boost::std_allocator_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_tr1_selector<boost::std_flat_allocator_selector>
+ ));
+}
+//]
+
+#endif // !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+
+MPL_TEST_CASE()
+{
+ BOOST_MPL_ASSERT_NOT((boost::is_recursive_selector<boost::vecS>));
+ BOOST_MPL_ASSERT_NOT((boost::is_recursive_selector<boost::dequeS>));
+ BOOST_MPL_ASSERT_NOT((boost::is_recursive_selector<boost::listS>));
+ BOOST_MPL_ASSERT_NOT((boost::is_recursive_selector<boost::setS>));
+ BOOST_MPL_ASSERT_NOT((boost::is_recursive_selector<boost::mapS>));
+ BOOST_MPL_ASSERT_NOT((boost::is_recursive_selector<boost::multisetS>));
+ BOOST_MPL_ASSERT_NOT((boost::is_recursive_selector<boost::multimapS>));
+ BOOST_MPL_ASSERT((boost::is_recursive_selector<boost::ptr_vecS>));
+ BOOST_MPL_ASSERT((boost::is_recursive_selector<boost::ptr_dequeS>));
+ BOOST_MPL_ASSERT((boost::is_recursive_selector<boost::ptr_listS>));
+ BOOST_MPL_ASSERT((boost::is_recursive_selector<boost::ptr_setS>));
+ BOOST_MPL_ASSERT((boost::is_recursive_selector<boost::ptr_mapS>));
+ BOOST_MPL_ASSERT((boost::is_recursive_selector<boost::ptr_multisetS>));
+ BOOST_MPL_ASSERT((boost::is_recursive_selector<boost::ptr_multimapS>));
+ BOOST_MPL_ASSERT_NOT((boost::is_recursive_selector<boost::stackS>));
+ BOOST_MPL_ASSERT_NOT((boost::is_recursive_selector<boost::queueS>));
+ BOOST_MPL_ASSERT_NOT((boost::is_recursive_selector<boost::std_heapS>));
+#if defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+#if !defined BOOST_NO_SLIST
+ BOOST_MPL_ASSERT_NOT((boost::is_recursive_selector<boost::slistS>));
+#endif
+#if defined BOOST_HAS_HASH
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_recursive_selector<boost::hash_setS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_recursive_selector<boost::hash_mapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_recursive_selector<boost::hash_multisetS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_recursive_selector<boost::hash_multimapS>
+ ));
+#endif
+#else // !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+ BOOST_MPL_ASSERT((
+ boost::is_recursive_selector<boost::hash_setS>
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_recursive_selector<boost::hash_mapS>
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_recursive_selector<boost::hash_multisetS>
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_recursive_selector<boost::hash_multimapS>
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_recursive_selector<boost::ptr_hash_setS>
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_recursive_selector<boost::ptr_hash_mapS>
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_recursive_selector<boost::ptr_hash_multisetS>
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_recursive_selector<boost::ptr_hash_multimapS>
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_recursive_selector<
+ boost::vector_selector<
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+ true_
+#endif
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_recursive_selector<boost::stable_vecS>
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_recursive_selector<
+ boost::deque_selector<
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+ true_
+#endif
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_recursive_selector<
+ boost::list_selector<
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+ true_
+#endif
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_recursive_selector<boost::slistS>
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_recursive_selector<
+ boost::set_selector<
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+ true_
+#endif
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_recursive_selector<
+ boost::map_selector<
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+ true_
+#endif
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_recursive_selector<
+ boost::multiset_selector<
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+ true_
+#endif
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_recursive_selector<
+ boost::multimap_selector<
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_boost_not_std_arg<true_>
+#else
+ true_
+#endif
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_recursive_selector<
+ boost::hash_set_selector<
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_tr1_not_boost_arg<true_>
+#else
+ true_
+#endif
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_recursive_selector<
+ boost::hash_map_selector<
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_tr1_not_boost_arg<true_>
+#else
+ true_
+#endif
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_recursive_selector<
+ boost::hash_multiset_selector<
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_tr1_not_boost_arg<true_>
+#else
+ true_
+#endif
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_recursive_selector<
+ boost::hash_multimap_selector<
+#if defined BOOST_MPL_CFG_NO_HAS_XXX
+ boost::is_tr1_not_boost_arg<true_>
+#else
+ true_
+#endif
+ >
+ >
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_recursive_selector<boost::flat_setS>
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_recursive_selector<boost::flat_mapS>
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_recursive_selector<boost::flat_multisetS>
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_recursive_selector<boost::flat_multimapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_recursive_selector<boost::priority_queueS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_recursive_selector<
+ boost::d_ary_heap_selector<boost::heap::arity<4> >
+ >
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_recursive_selector<boost::binomial_heapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_recursive_selector<boost::fibonacci_heapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_recursive_selector<boost::pairing_heapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_recursive_selector<boost::skew_heapS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_recursive_selector<boost::tr1_binary_predicate_selector>
+ ));
+#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_recursive_selector<boost::equal_to_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_recursive_selector<boost::less_than_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_recursive_selector<boost::greater_than_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_recursive_selector<boost::binary_predicate_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_recursive_selector<boost::equivalenceS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_recursive_selector<boost::c_str_less_than_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_recursive_selector<boost::c_str_greater_than_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_recursive_selector<boost::boost_hash_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_recursive_selector<boost::tr1_hash_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_recursive_selector<boost::std_allocator_selector>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_recursive_selector<boost::std_flat_allocator_selector>
+ ));
+}
+
+#if !defined BOOST_MSVC
+// size_t ambiguity
+
+MPL_TEST_CASE()
+{
+ typedef boost::array_selector<int_<1> > exArrayS;
+
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_ptr_selector<exArrayS>
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_random_access_selector<exArrayS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_associative_selector<exArrayS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_unique_associative_selector<exArrayS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_multiple_associative_selector<exArrayS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_hashed_associative_selector<exArrayS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_heap_selector<exArrayS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_iteratable_heap_selector<exArrayS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_order_iteratable_heap_selector<exArrayS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_recursive_selector<exArrayS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_tr1_selector<exArrayS>
+ ));
+ BOOST_MPL_ASSERT((
+ boost::has_stable_iterators_selector<exArrayS>
+ ));
+
+ typedef boost::array_selector<int_<1>,true_> exTR1ArrayS;
+
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_ptr_selector<exTR1ArrayS>
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_random_access_selector<exTR1ArrayS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_associative_selector<exTR1ArrayS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_unique_associative_selector<exTR1ArrayS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_multiple_associative_selector<exTR1ArrayS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_hashed_associative_selector<exTR1ArrayS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_heap_selector<exTR1ArrayS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_iteratable_heap_selector<exTR1ArrayS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_order_iteratable_heap_selector<exTR1ArrayS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_recursive_selector<exTR1ArrayS>
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_tr1_selector<exTR1ArrayS>
+ ));
+ BOOST_MPL_ASSERT((
+ boost::has_stable_iterators_selector<exTR1ArrayS>
+ ));
+
+ typedef boost::ptr_array_selector<int_<1> > exPtrArrayS;
+
+ BOOST_MPL_ASSERT((
+ boost::is_ptr_selector<exPtrArrayS>
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_random_access_selector<exPtrArrayS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_associative_selector<exPtrArrayS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_unique_associative_selector<exPtrArrayS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_multiple_associative_selector<exPtrArrayS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_hashed_associative_selector<exPtrArrayS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_heap_selector<exPtrArrayS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_iteratable_heap_selector<exPtrArrayS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_order_iteratable_heap_selector<exPtrArrayS>
+ ));
+ BOOST_MPL_ASSERT((
+ boost::is_recursive_selector<exPtrArrayS>
+ ));
+ BOOST_MPL_ASSERT_NOT((
+ boost::is_tr1_selector<exPtrArrayS>
+ ));
+ BOOST_MPL_ASSERT((
+ boost::has_stable_iterators_selector<exPtrArrayS>
+ ));
+}
+
+#endif // !defined BOOST_MSVC
+

Added: sandbox/container_gen/libs/utility/doc/html/equivalence_function.html
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ sandbox/container_gen/libs/utility/doc/html/equivalence_function.html 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84957)
@@ -0,0 +1,140 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>equivalence_function_gen and make_equivalence_function</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="equivalence_function.html" title="equivalence_function_gen and make_equivalence_function">
+</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"></div>
+<div class="article">
+<div class="titlepage">
+<div>
+<div><h2 class="title">
+<a name="equivalence_function_gen_and_make_equivalence_function"></a>equivalence_function_gen and make_equivalence_function</h2></div>
+<div><p class="copyright">Copyright &#169; 2013 Cromwell Enage</p></div>
+<div><div class="legalnotice">
+<a name="equivalence_function_gen_and_make_equivalence_function.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>
+<hr>
+</div>
+<div class="toc">
+<p><b>Table of Contents</b></p>
+<dl>
+<dt><span class="section">equivalence_function_gen Synopsis</span></dt>
+<dt><span class="section">equivalence_function_gen Description</span></dt>
+<dt><span class="section">make_equivalence_function Synopsis</span></dt>
+<dt><span class="section">make_equivalence_function Description</span></dt>
+<dt><span class="section"><a href="equivalence_function.html#equivalence_function_gen_and_make_equivalence_function.definition">Where
+ defined</a></span></dt>
+</dl>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="equivalence_function_gen_and_make_equivalence_function.mf_synopsis"></a><a class="link" href="equivalence_function.html#equivalence_function_gen_and_make_equivalence_function.mf_synopsis" title="equivalence_function_gen Synopsis"><code class="computeroutput"><span class="identifier">equivalence_function_gen</span></code> Synopsis</a>
+</h2></div></div></div>
+<p>
+</p>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+
+ <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">StrictWeakOrdering</span><span class="special">&gt;</span>
+ <span class="keyword">struct</span> <span class="identifier">equivalence_function_gen</span><span class="special">;</span>
+<span class="special">}</span> <span class="comment">// namespace boost</span>
+</pre>
+<p>
+ </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="equivalence_function_gen_and_make_equivalence_function.mf_desc"></a><a class="link" href="equivalence_function.html#equivalence_function_gen_and_make_equivalence_function.mf_desc" title="equivalence_function_gen Description"><code class="computeroutput"><span class="identifier">equivalence_function_gen</span></code> Description</a>
+</h2></div></div></div>
+<p>
+ Takes in a model of Strict Weak Ordering and returns 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 checks for the equivalence of its two arguments;
+ that is, given the following:
+ </p>
+<p>
+</p>
+<pre class="programlisting"><span class="identifier">StrictWeakOrdering</span> <span class="identifier">f</span><span class="special">;</span>
+<span class="identifier">boost</span><span class="special">::</span><span class="identifier">equivalence_function_gen</span><span class="special">&lt;</span><span class="identifier">StrictWeakOrdering</span><span class="special">&gt;::</span><span class="identifier">type</span> <span class="identifier">g</span><span class="special">(</span><span class="identifier">f</span><span class="special">);</span>
+</pre>
+<p>
+ </p>
+<p>
+ If two objects <code class="computeroutput"><span class="identifier">x</span></code> and <code class="computeroutput"><span class="identifier">y</span></code> are comparable by <code class="computeroutput"><span class="identifier">f</span></code>,
+ then <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> will return <code class="computeroutput"><span class="keyword">true</span></code>
+ if and only if both <code class="computeroutput"><span class="identifier">f</span><span class="special">(</span><span class="identifier">x</span><span class="special">,</span> <span class="identifier">y</span><span class="special">)</span></code> and <code class="computeroutput"><span class="identifier">f</span><span class="special">(</span><span class="identifier">y</span><span class="special">,</span>
+ <span class="identifier">x</span><span class="special">)</span></code>
+ return <code class="computeroutput"><span class="keyword">false</span></code>.
+ </p>
+<p>
+ The return type defines a conversion constructor for storing anything that
+ is convertible to <code class="computeroutput"><span class="identifier">StrictWeakOrdering</span></code>,
+ e.g. <code class="computeroutput"><span class="identifier">f</span></code>. If <code class="computeroutput"><span class="identifier">StrictWeakOrdering</span></code>
+ models the Default Constructible concept, then the return
+ type will also model the Default Constructible concept. If <code class="computeroutput"><span class="identifier">StrictWeakOrdering</span></code> models the Adaptable Binary Predicate concept, then the
+ return type will also model the Adaptable Binary Predicate concept.
+ </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="equivalence_function_gen_and_make_equivalence_function.func_synopsis"></a><a class="link" href="equivalence_function.html#equivalence_function_gen_and_make_equivalence_function.func_synopsis" title="make_equivalence_function Synopsis"><code class="computeroutput"><span class="identifier">make_equivalence_function</span></code> Synopsis</a>
+</h2></div></div></div>
+<p>
+</p>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+
+ <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">StrictWeakOrdering</span><span class="special">&gt;</span>
+ <span class="keyword">typename</span> <span class="identifier">equivalence_function_gen</span><span class="special">&lt;</span><span class="identifier">StrictWeakOrdering</span><span class="special">&gt;::</span><span class="identifier">type</span>
+ <span class="identifier">make_equivalence_function</span><span class="special">(</span><span class="identifier">StrictWeakOrdering</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">predicate</span><span class="special">);</span>
+<span class="special">}</span> <span class="comment">// namespace boost</span>
+</pre>
+<p>
+ </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="equivalence_function_gen_and_make_equivalence_function.func_desc"></a><a class="link" href="equivalence_function.html#equivalence_function_gen_and_make_equivalence_function.func_desc" title="make_equivalence_function Description"><code class="computeroutput"><span class="identifier">make_equivalence_function</span></code> Description</a>
+</h2></div></div></div>
+<p>
+ Takes in an object whose type models the Strict Weak Ordering concept; returns an object
+ whose type models the Binary Predicate concept and that checks for
+ the equivalence of its two arguments. That is, if two objects <code class="computeroutput"><span class="identifier">x</span></code> and <code class="computeroutput"><span class="identifier">y</span></code>
+ are comparable by an object <code class="computeroutput"><span class="identifier">f</span></code>
+ of type <code class="computeroutput"><span class="identifier">StrictWeakOrdering</span></code>,
+ then <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">make_equivalence_function</span><span class="special">(</span><span class="identifier">f</span><span class="special">)(</span><span class="identifier">x</span><span class="special">,</span> <span class="identifier">y</span><span class="special">)</span></code>
+ will return <code class="computeroutput"><span class="keyword">true</span></code> if and only if
+ both <code class="computeroutput"><span class="identifier">f</span><span class="special">(</span><span class="identifier">x</span><span class="special">,</span> <span class="identifier">y</span><span class="special">)</span></code> and <code class="computeroutput"><span class="identifier">f</span><span class="special">(</span><span class="identifier">y</span><span class="special">,</span>
+ <span class="identifier">x</span><span class="special">)</span></code>
+ return <code class="computeroutput"><span class="keyword">false</span></code>.
+ </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="equivalence_function_gen_and_make_equivalence_function.definition"></a><a class="link" href="equivalence_function.html#equivalence_function_gen_and_make_equivalence_function.definition" title="Where defined">Where
+ defined</a>
+</h2></div></div></div>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span>boost/utility/equivalence_function.hpp<span class="special">&gt;</span>
+</pre>
+<p>
+ </p>
+</div>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"><p><small>Last revised: June 29, 2013 at 17:18:48 GMT</small></p></td>
+<td align="right"><div class="copyright-footer"></div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav"></div>
+</body>
+</html>

Added: sandbox/container_gen/libs/utility/doc/src/equivalence_function/Jamroot
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ sandbox/container_gen/libs/utility/doc/src/equivalence_function/Jamroot 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84957)
@@ -0,0 +1,65 @@
+project
+ : requirements
+ # Path for links to Boost:
+ # <xsl:param>boost.root=../../../..
+ <xsl:param>boost.root=http://www.boost.org
+
+ # Some general style settings:
+ <xsl:param>table.footnote.number.format=1
+ <xsl:param>footnote.number.format=1
+
+ # HTML options first:
+ # Use graphics not text for navigation:
+ <xsl:param>navig.graphics=1
+ # PDF Options:
+ # TOC Generation: this is needed for FOP-0.9 and later:
+ <xsl:param>fop1.extensions=0
+ <xsl:param>xep.extensions=1
+ # TOC generation: this is needed for FOP 0.2, but must not be set to zero for FOP-0.9!
+ <xsl:param>fop.extensions=0
+ # No indent on body text:
+ <xsl:param>body.start.indent=0pt
+ # Margin size:
+ <xsl:param>page.margin.inner=0.5in
+ # Margin size:
+ <xsl:param>page.margin.outer=0.5in
+ # Paper type = A4
+ <xsl:param>paper.type=A4
+ # Yes, we want graphics for admonishments:
+ <xsl:param>admon.graphics=1
+ # Set this one for PDF generation *only*:
+ # default pnd graphics are awful in PDF form,
+ # better use SVG's instead:
+ <format>pdf:<xsl:param>admon.graphics.extension=".svg"
+ <format>pdf:<xsl:param>admon.graphics.path=$(boost-images)/
+# <format>pdf:<xsl:param>boost.url.prefix=../../../../../../libs/utility/doc/html
+ <format>pdf:<xsl:param>boost.url.prefix=http://www.boost.org/doc/libs/release/libs/utility/doc/html
+ ;
+
+import boostbook : boostbook ;
+using quickbook ;
+
+path-constant boost-images : http://www.boost.org/doc/src/images ;
+
+xml equivalence_function : doc.qbk ;
+boostbook standalone
+ :
+ equivalence_function
+ :
+ <xsl:param>base.dir=../../../html
+ <xsl:param>root.filename=equivalence_function
+ <xsl:param>boost.libraries=http://www.boost.org/libs/libraries.htm
+ <xsl:param>boost.image.src=../../../../boost.png
+ <xsl:param>boost.image.alt="C++ Boost"
+ <xsl:param>boost.image.w=277
+ <xsl:param>boost.image.h=86
+# <xsl:param>html.stylesheet=../../../../../../doc/src/boostbook.css
+ <xsl:param>html.stylesheet=http://www.boost.org/doc/libs/release/doc/src/boostbook.css
+ <xsl:param>nav.layout=none
+ <xsl:param>chunk.section.depth=0
+ <xsl:param>chunk.first.sections=0
+ <xsl:param>toc.section.depth=1
+ <xsl:param>toc.max.depth=1
+ <xsl:param>generate.section.toc.level=1
+ ;
+

Added: sandbox/container_gen/libs/utility/doc/src/equivalence_function/doc.qbk
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ sandbox/container_gen/libs/utility/doc/src/equivalence_function/doc.qbk 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84957)
@@ -0,0 +1,88 @@
+[article equivalence_function_gen and make_equivalence_function
+ [quickbook 1.5]
+ [copyright 2013 Cromwell Enage]
+ [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])
+ ]
+]
+
+
+[def __Default_Constructible__ [@http://www.sgi.com/tech/stl/DefaultConstructible.html [*Default Constructible]]]
+[def __Strict_Weak_Ordering__ [@http://www.sgi.com/tech/stl/StrictWeakOrdering.html [*Strict Weak Ordering]]]
+[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 __boost_utility_equivalence_function_hpp__ [@../../../../boost/utility/equivalence_function.hpp boost/utility/equivalence_function.hpp]]
+
+[import ../../../../../boost/utility/equivalence_function.hpp]
+
+
+[/======================================================]
+[section:mf_synopsis `equivalence_function_gen` Synopsis]
+[/======================================================]
+
+[reference__equivalence_function_gen]
+
+[endsect]
+
+
+[/=====================================================]
+[section:mf_desc `equivalence_function_gen` Description]
+[/=====================================================]
+
+Takes in a model of __Strict_Weak_Ordering__ and returns a model of
+__Binary_Predicate__ that checks for the equivalence of its two arguments;
+that is, given the following:
+
+``
+ StrictWeakOrdering f;
+ boost::equivalence_function_gen<StrictWeakOrdering>::type g(f);
+``
+
+If two objects `x` and `y` are comparable by `f`, then `g(x, y)` will return
+`true` if and only if both `f(x, y)` and `f(y, x)` return `false`.
+
+The return type defines a conversion constructor for storing anything that is
+convertible to `StrictWeakOrdering`, e.g. `f`. If `StrictWeakOrdering` models
+the __Default_Constructible__ concept, then the return type will also model
+the __Default_Constructible__ concept. If `StrictWeakOrdering` models the
+__Adaptable_Binary_Predicate__ concept, then the return type will also model
+the __Adaptable_Binary_Predicate__ concept.
+
+[endsect]
+
+
+[/=========================================================]
+[section:func_synopsis `make_equivalence_function` Synopsis]
+[/=========================================================]
+
+[reference__make_equivalence_function]
+
+[endsect]
+
+
+[/========================================================]
+[section:func_desc `make_equivalence_function` Description]
+[/========================================================]
+
+Takes in an object whose type models the __Strict_Weak_Ordering__ concept;
+returns an object whose type models the __Binary_Predicate__ concept and that
+checks for the equivalence of its two arguments. That is, if two objects `x`
+and `y` are comparable by an object `f` of type `StrictWeakOrdering`, then
+`boost::make_equivalence_function(f)(x, y)` will return `true` if and only if
+both `f(x, y)` and `f(y, x)` return `false`.
+
+[endsect]
+
+
+[/===============================]
+[section:definition Where defined]
+[/===============================]
+
+``
+#include <__boost_utility_equivalence_function_hpp__>
+``
+
+[endsect]
+

Deleted: sandbox/tree_node/boost/tree_node.hpp
==============================================================================
--- sandbox/tree_node/boost/tree_node.hpp 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84956)
+++ /dev/null 00:00:00 1970 (deleted)
@@ -1,58 +0,0 @@
-// 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)
-
-#ifndef BOOST_TREE_NODE_HPP_INCLUDED
-#define BOOST_TREE_NODE_HPP_INCLUDED
-
-#include <boost/typeof/boost/tree_node/key/data.hpp>
-#include <boost/typeof/boost/tree_node/key/count.hpp>
-#include <boost/typeof/boost/tree_node/key/height.hpp>
-#include <boost/typeof/boost/tree_node/key/position.hpp>
-#include <boost/typeof/boost/tree_node/key/red_black_flag.hpp>
-#include <boost/tree_node/intrinsic/has_key.hpp>
-#include <boost/tree_node/intrinsic/get_keys.hpp>
-#include <boost/tree_node/intrinsic/at_key.hpp>
-#include <boost/tree_node/intrinsic/value_at_key.hpp>
-#include <boost/tree_node/algorithm/advance_binary.hpp>
-#include <boost/tree_node/algorithm/binary_index_of.hpp>
-#include <boost/tree_node/algorithm/binary_descendant.hpp>
-#include <boost/tree_node/algorithm/binary_descendant_at_index.hpp>
-#include <boost/tree_node/algorithm/binary_lower_bound.hpp>
-#include <boost/tree_node/algorithm/binary_upper_bound.hpp>
-#include <boost/typeof/boost/tree_node/traversal_state.hpp>
-#include <boost/tree_node/iterator/dereference.hpp>
-#include <boost/typeof/boost/tree_node/iterator/breadth_first.hpp>
-#include <boost/typeof/boost/tree_node/iterator/breadth_first_descendant.hpp>
-#include <boost/typeof/boost/tree_node/iterator/pre_order.hpp>
-#include <boost/typeof/boost/tree_node/iterator/pre_order_descendant.hpp>
-#include <boost/typeof/boost/tree_node/iterator/post_order.hpp>
-#include <boost/typeof/boost/tree_node/iterator/post_order_descendant.hpp>
-#include <boost/typeof/boost/tree_node/iterator/in_order.hpp>
-#include <boost/typeof/boost/tree_node/iterator/depth_first.hpp>
-#include <boost/typeof/boost/tree_node/iterator/depth_first_descendant.hpp>
-#include <boost/tree_node/base.hpp>
-#include <boost/tree_node/preprocessor.hpp>
-#include <boost/tree_node/traits/binary_node.hpp>
-#include <boost/typeof/boost/tree_node/binary_node.hpp>
-#include <boost/typeof/boost/tree_node/nary_node.hpp>
-#include <boost/typeof/boost/tree_node/associative_node.hpp>
-#include <boost/typeof/boost/tree_node/with_count.hpp>
-#include <boost/typeof/boost/tree_node/with_height.hpp>
-#include <boost/typeof/boost/tree_node/with_position.hpp>
-#include <boost/tree_node/traits/red_black_node.hpp>
-#include <boost/typeof/boost/tree_node/with_red_black_flag.hpp>
-#include <boost/typeof/boost/tree_node/balancer/red_black.hpp>
-#include <boost/typeof/boost/tree_node/balancer/adelson_velskii_landis.hpp>
-#include <boost/typeof/boost/tree_node/container/binode.hpp>
-#include <boost/typeof/boost/tree_node/container/binode_associative.hpp>
-
-#if defined BOOST_TREE_NODE_CAN_USE_FUSION
-#include <boost/typeof/boost/tree_node/key/accumulation.hpp>
-#include <boost/tree_node/intrinsic/get_properties.hpp>
-#include <boost/typeof/boost/tree_node/with_accumulation.hpp>
-#endif
-
-#endif // BOOST_TREE_NODE_HPP_INCLUDED
-

Deleted: sandbox/tree_node/boost/tree_node/associative_node.hpp
==============================================================================
--- sandbox/tree_node/boost/tree_node/associative_node.hpp 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84956)
+++ /dev/null 00:00:00 1970 (deleted)
@@ -1,2025 +0,0 @@
-// 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)
-
-#ifndef BOOST_TREE_NODE_ASSOCIATIVE_NODE_HPP_INCLUDED
-#define BOOST_TREE_NODE_ASSOCIATIVE_NODE_HPP_INCLUDED
-
-#include <utility>
-#include <boost/mpl/assert.hpp>
-#include <boost/noncopyable.hpp>
-#include <boost/iterator/transform_iterator.hpp>
-#include <boost/range/iterator_range.hpp>
-#include <boost/utility/get_iterator_value_second.hpp>
-#include <boost/container_gen/container_gen.hpp>
-#include <boost/container_gen/emplace_assoc_function_gen.hpp>
-#include <boost/container_gen/is_associative_selector.hpp>
-#include <boost/container_gen/is_recursive_selector.hpp>
-#include <boost/container_gen/is_ptr_selector.hpp>
-#include <boost/container_gen/has_stable_iters_selector.hpp>
-#include <boost/tree_node/preprocessor.hpp>
-#include <boost/tree_node/base.hpp>
-#include <boost/tree_node/associative_node_fwd.hpp>
-#include <boost/tree_node/intrinsic/has_key.hpp>
-#include <boost/tree_node/intrinsic/get_keys.hpp>
-#include <boost/tree_node/iterator/dereference.hpp>
-#include <boost/tree_node/iterator/post_order_descendant.hpp>
-#include <boost/tree_node/iterator/depth_first_descendant.hpp>
-#include <boost/tree_node/iterator/depth_first.hpp>
-#include <boost/detail/metafunction/container_reverse_iterator.hpp>
-#include <boost/detail/metafunction/is_random_access_iterator.hpp>
-#include <boost/assert.hpp>
-
-#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-#include <boost/move/move.hpp>
-//#include <deque>
-//#include <boost/container/container_fwd.hpp>
-//#include <boost/container_gen/is_unique_assoc_selector.hpp>
-#endif
-
-#if !defined BOOST_CONTAINER_PERFECT_FORWARDING
-#include <boost/preprocessor/repetition/enum_trailing.hpp>
-#include <boost/preprocessor/repetition/repeat.hpp>
-#endif
-
-#include <boost/tree_node/_detail/config_begin.hpp>
-
-#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-#include <boost/type_traits/is_pod.hpp>
-
-namespace boost {
-
- template <typename Derived, typename Key, typename Data, typename Selector>
- struct is_POD<
- ::boost::tree_node::associative_node_base<Derived,Key,Data,Selector>
- > : ::boost::false_type
- {
- };
-
- template <typename Derived, typename Key, typename Data, typename Selector>
- struct is_pod<
- ::boost::tree_node::associative_node_base<Derived,Key,Data,Selector>
- > : ::boost::false_type
- {
- };
-} // namespace boost
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-#if defined BOOST_TREE_NODE_CAN_USE_FUSION
-#include <boost/mpl/vector.hpp>
-#include <boost/mpl/placeholders.hpp>
-#include <boost/mpl/transform_view.hpp>
-#include <boost/fusion/sequence/intrinsic/at_key.hpp>
-#include <boost/fusion/iterator/key_of.hpp>
-#include <boost/fusion/support/is_sequence.hpp>
-#include <boost/fusion/support/category_of.hpp>
-
-namespace boost { namespace tree_node { namespace result_of {
-
- template <
- typename Derived
- , typename Key
- , typename Data
- , typename Selector
- , typename FusionKey
- >
- struct has_key_impl<
- associative_node_base<Derived,Key,Data,Selector>
- , FusionKey
- > : ::boost::mpl::eval_if<
- typename ::boost::mpl::eval_if<
- typename ::boost::fusion::traits::is_sequence<Data>::type
- , ::boost::fusion::traits::is_associative<Data>
- , ::boost::mpl::false_
- >::type
- , ::boost::fusion::result_of::has_key<Data,FusionKey>
- , ::std::tr1::is_same<FusionKey,data_key>
- >::type
- {
- };
-
- template <typename Derived, typename Key, typename Data, typename Selector>
- struct get_keys_impl<
- associative_node_base<Derived,Key,Data,Selector>
- > : ::boost::mpl::eval_if<
- typename ::boost::mpl::eval_if<
- typename ::boost::fusion::traits::is_sequence<Data>::type
- , ::boost::fusion::traits::is_associative<Data>
- , ::boost::mpl::false_
- >::type
- , ::boost::mpl::transform_view<
- Data
- , ::boost::fusion::result_of::key_of< ::boost::mpl::_>
- >
- , ::boost::mpl::vector1<data_key>
- >
- {
- };
-}}} // namespace boost::tree_node::result_of
-#endif // BOOST_TREE_NODE_CAN_USE_FUSION
-
-namespace boost { namespace tree_node {
-
- template <typename Derived, typename Key, typename Data, typename Selector>
- class associative_node_base
- : public
- //[reference__associative_node_base__bases
- tree_node_base<Derived>
- //]
-#if defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- , public data_key
-#endif
- , private ::boost::noncopyable
- {
- BOOST_MPL_ASSERT((::boost::is_associative_selector<Selector>));
- BOOST_MPL_ASSERT((::boost::is_recursive_selector<Selector>));
-
- //[reference__associative_node_base__children
- typedef typename ::boost::container_gen<Selector,Key,Derived>::type
- children;
- //]
-
- public:
- //[reference__associative_node_base__super_t
- typedef tree_node_base<Derived> super_t;
- //]
-
- //[reference__associative_node_base__pointer
- typedef typename super_t::pointer pointer;
- //]
-
- //[reference__associative_node_base__const_pointer
- typedef typename super_t::const_pointer const_pointer;
- //]
-
- //[reference__associative_node_base__iterator
- typedef typename children::iterator iterator;
- //]
-
- //[reference__associative_node_base__const_iterator
- typedef typename children::const_iterator const_iterator;
- //]
-
- typedef typename ::boost::detail::metafunction
- ::container_reverse_iterator<children>::type
- reverse_iterator;
- typedef typename ::boost::detail::metafunction
- ::container_reverse_iterator<children const>::type
- const_reverse_iterator;
-
- //[reference__associative_node_base__size_type
- typedef typename children::size_type size_type;
- //]
-
- //[reference__associative_node_base__traits
- struct traits
- {
- typedef Key
- key_type;
- typedef Data
- data_type;
- typedef typename ::boost::mpl::if_<
- ::boost::is_ptr_selector<Selector>
- , ::boost::iterator_range<iterator>
- , ::std::pair<iterator,iterator>
- >::type
- iterator_range;
- typedef typename ::boost::mpl::if_<
- ::boost::is_ptr_selector<Selector>
- , ::boost::iterator_range<const_iterator>
- , ::std::pair<const_iterator,const_iterator>
- >::type
- const_iterator_range;
- typedef typename children::allocator_type
- allocator;
- typedef allocator const&
- allocator_reference;
- };
- //]
-
- private:
- struct _clone_transform_function
- {
- typedef ::std::pair<
- typename traits::key_type const&
- , typename traits::data_type const&
- >
- result_type;
-
- template <typename Pair>
- result_type operator()(Pair const& p) const;
- };
-
-#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- struct _move_transform_function
- {
- typedef ::std::pair<
- typename traits::key_type const&
- , BOOST_RV_REF(typename traits::data_type)
- >
- result_type;
-
- template <typename Pair>
- result_type operator()(Pair& p) const;
- };
-#endif
-
- children _children;
- typename traits::data_type _data;
- pointer _parent;
-
- protected:
- //[reference__associative_node_base__derived_copy_ctor
- associative_node_base(Derived const& copy);
- //]
-
- //[reference__associative_node_base__derived_copy_ctor_w_allocator
- associative_node_base(
- Derived const& copy
- , typename traits::allocator_reference allocator
- );
- //]
-
-#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- associative_node_base(BOOST_RV_REF(Derived) source);
-
- associative_node_base(
- BOOST_RV_REF(Derived) source
- , typename traits::allocator_reference allocator
- );
-#endif
-
-#if defined BOOST_CONTAINER_PERFECT_FORWARDING
- //[reference__associative_node_base__emplacement_ctor
- template <typename ...Args>
- explicit associative_node_base(Args&& ...args);
- //]
-
- //[reference__associative_node_base__emplacement_ctor_w_allocator
- template <typename ...Args>
- explicit associative_node_base(
- ::boost::container::allocator_arg_t
- , typename traits::allocator_reference allocator
- , Args&& ...args
- );
- //]
-#else // !defined BOOST_CONTAINER_PERFECT_FORWARDING
- BOOST_PP_REPEAT(
- BOOST_CONTAINER_MAX_CONSTRUCTOR_PARAMETERS
- , BOOST_TREE_NODE_EMPLACEMENT_CTOR_FWD_DECL
- , associative_node_base
- )
-
- BOOST_PP_REPEAT(
- BOOST_CONTAINER_MAX_CONSTRUCTOR_PARAMETERS
- , BOOST_TREE_NODE_EMPLACEMENT_CTOR_W_ALLOC_FWD_DECL
- , associative_node_base
- )
-#endif // BOOST_CONTAINER_PERFECT_FORWARDING
-
- ~associative_node_base();
-
- //[reference__associative_node_base__clone_descendants
- void clone_descendants(Derived const& copy);
- //]
-
-#if defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- //[reference__associative_node_base__copy_assign
- void copy_assign(Derived const& copy);
- //]
-#else
- void move_descendants(BOOST_RV_REF(Derived) source);
-
- void copy_assign(BOOST_COPY_ASSIGN_REF(Derived) copy);
-
- void move_assign(BOOST_RV_REF(Derived) source);
-#endif
-
- //[reference__associative_node_base__on_post_assign
- void on_post_assign();
- //]
-
- public:
- //[reference__associative_node_base__data_key_value_operator__const
- typename traits::data_type const& operator[](data_key const&) const;
- //]
-
- //[reference__associative_node_base__data_key_value_operator
- typename traits::data_type& operator[](data_key const&);
- //]
-
-#if defined BOOST_TREE_NODE_CAN_USE_FUSION
- //[reference__associative_node_base__key_value_operator__const
- template <typename FusionKey>
- typename ::boost::lazy_enable_if<
- typename ::boost::mpl::if_<
- typename ::boost::mpl::eval_if<
- typename ::boost::fusion::traits::is_sequence<Data>::type
- , ::boost::fusion::traits::is_associative<Data>
- , ::boost::mpl::false_
- >::type
- , result_of::has_key<
- associative_node_base<Derived,Key,Data,Selector>
- , FusionKey
- >
- , ::boost::mpl::false_
- >::type
- , ::boost::fusion::result_of::at_key<Data const,FusionKey>
- >::type
- operator[](FusionKey const&) const;
- //]
-
- //[reference__associative_node_base__key_value_operator
- template <typename FusionKey>
- typename ::boost::lazy_enable_if<
- typename ::boost::mpl::if_<
- typename ::boost::mpl::eval_if<
- typename ::boost::fusion::traits::is_sequence<Data>::type
- , ::boost::fusion::traits::is_associative<Data>
- , ::boost::mpl::false_
- >::type
- , result_of::has_key<
- associative_node_base<Derived,Key,Data,Selector>
- , FusionKey
- >
- , ::boost::mpl::false_
- >::type
- , ::boost::fusion::result_of::at_key<Data,FusionKey>
- >::type
- operator[](FusionKey const&);
- //]
-#endif
-
- //[reference__associative_node_base__get_parent_ptr__const
- const_pointer get_parent_ptr() const;
- //]
-
- //[reference__associative_node_base__get_parent_ptr
- pointer get_parent_ptr();
- //]
-
- //[reference__associative_node_base__cbegin
- const_iterator cbegin() const;
- const_iterator begin() const;
- //]
-
- //[reference__associative_node_base__begin
- iterator begin();
- //]
-
- //[reference__associative_node_base__cend
- const_iterator cend() const;
- const_iterator end() const;
- //]
-
- //[reference__associative_node_base__end
- iterator end();
- //]
-
- //[reference__associative_node_base__crbegin
- const_reverse_iterator crbegin() const;
- const_reverse_iterator rbegin() const;
- //]
-
- //[reference__associative_node_base__rbegin
- reverse_iterator rbegin();
- //]
-
- //[reference__associative_node_base__crend
- const_reverse_iterator crend() const;
- const_reverse_iterator rend() const;
- //]
-
- //[reference__associative_node_base__rend
- reverse_iterator rend();
- //]
-
- //[reference__associative_node_base__size
- size_type size() const;
- //]
-
- //[reference__associative_node_base__empty
- bool empty() const;
- //]
-
- //[reference__associative_node_base__clear
- void clear();
- //]
-
- //[reference__associative_node_base__insert
- iterator
- insert(
- typename traits::key_type const& key
- , Derived const& child
- );
- //]
-
-#if defined BOOST_CONTAINER_PERFECT_FORWARDING
- //[reference__associative_node_base__emplace
- template <typename ...Args>
- iterator emplace(typename traits::key_type const& key, Args&& ...args);
- //]
-#else // !defined BOOST_CONTAINER_PERFECT_FORWARDING
-#define BOOST_TREE_NODE_ASSOCIATIVE_NODE_MACRO(z, n, _) \
- BOOST_PP_EXPR_IF(n, template <) \
- BOOST_PP_ENUM_PARAMS_Z(z, n, typename P) \
- BOOST_PP_EXPR_IF(n, >) \
- iterator \
- emplace( \
- typename traits::key_type const& key \
- BOOST_PP_CAT(BOOST_PP_ENUM_TRAILING_, z)( \
- n \
- , BOOST_CONTAINER_PP_PARAM_LIST \
- , _ \
- ) \
- ); \
-//!
- BOOST_PP_REPEAT(
- BOOST_CONTAINER_MAX_CONSTRUCTOR_PARAMETERS
- , BOOST_TREE_NODE_ASSOCIATIVE_NODE_MACRO
- , _
- )
-#undef BOOST_TREE_NODE_ASSOCIATIVE_NODE_MACRO
-#endif // BOOST_CONTAINER_PERFECT_FORWARDING
-
- //[reference__associative_node_base__find__const
- const_iterator find(typename traits::key_type const& key) const;
- //]
-
- //[reference__associative_node_base__find
- iterator find(typename traits::key_type const& key);
- //]
-
- //[reference__associative_node_base__equal_range__const
- typename traits::const_iterator_range
- equal_range(typename traits::key_type const& key) const;
- //]
-
- //[reference__associative_node_base__equal_range
- typename traits::iterator_range
- equal_range(typename traits::key_type const& key);
- //]
-
- //[reference__associative_node_base__erase
- size_type erase(typename traits::key_type const& key);
- //]
-
- private:
- void _clone_descendants(Derived const& copy);
-
- void _clone_descendants(Derived const& copy, ::boost::mpl::true_);
-
- void _clone_descendants(Derived const& copy, ::boost::mpl::false_);
-
-#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- void _move_descendants(Derived& source);
-
- void _move_descendants(Derived& source, ::boost::mpl::true_);
-
- void _move_descendants(Derived& source, ::boost::mpl::false_);
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
- void _on_post_insert(iterator itr, ::boost::mpl::true_);
-
- void _on_post_insert(iterator itr, ::boost::mpl::false_);
-
- void _link_children_to_parent();
-
- void _on_post_modify_value(data_key const& key);
-
- template <typename D, typename K, typename T, typename S, typename V>
- friend void
- put(
- associative_node_base<D,K,T,S>& node
- , data_key const& key
- , V const& value
- );
-
-#if defined BOOST_TREE_NODE_CAN_USE_FUSION
- template <typename FusionKey>
- void _on_post_modify_value(FusionKey const& key);
-
- template <
- typename D
- , typename K
- , typename T
- , typename S
- , typename FusionKey
- , typename V
- >
- friend void
- put(
- associative_node_base<D,K,T,S>& node
- , FusionKey const& key
- , V const& value
- , typename ::boost::enable_if<
- typename ::boost::mpl::if_<
- typename ::boost::mpl::eval_if<
- typename ::boost::fusion::traits::is_sequence<T>::type
- , ::boost::fusion::traits::is_associative<T>
- , ::boost::mpl::false_
- >::type
- , result_of::has_key<associative_node_base<D,K,T,S>,FusionKey>
- , ::boost::mpl::false_
- >::type
- , ::boost::mpl::true_
- >::type
- );
-#endif // BOOST_TREE_NODE_CAN_USE_FUSION
- };
-
- template <typename Derived, typename Key, typename Data, typename Selector>
- template <typename Pair>
- inline typename associative_node_base<
- Derived
- , Key
- , Data
- , Selector
- >::_clone_transform_function::result_type
- associative_node_base<
- Derived
- , Key
- , Data
- , Selector
- >::_clone_transform_function::operator()(Pair const& p) const
- {
- return result_type(
- p.first
- , get(::boost::get_iterator_value_second(p), data_key())
- );
- }
-
-#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- template <typename Derived, typename Key, typename Data, typename Selector>
- template <typename Pair>
- inline typename associative_node_base<
- Derived
- , Key
- , Data
- , Selector
- >::_move_transform_function::result_type
- associative_node_base<
- Derived
- , Key
- , Data
- , Selector
- >::_move_transform_function::operator()(Pair& p) const
- {
- return ::std::make_pair(
- p.first
- , ::boost::move(get(::boost::get_iterator_value_second(p), data_key()))
- );
- }
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
- template <typename Derived, typename Key, typename Data, typename Selector>
- associative_node_base<Derived,Key,Data,Selector>::associative_node_base(
- Derived const& copy
- ) : _children(), _data(copy._data), _parent()
- {
- }
-
- template <typename Derived, typename Key, typename Data, typename Selector>
- associative_node_base<Derived,Key,Data,Selector>::associative_node_base(
- Derived const& copy
- , typename traits::allocator_reference allocator
- ) : _children(allocator), _data(copy._data), _parent()
- {
- }
-
-#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- template <typename Derived, typename Key, typename Data, typename Selector>
- associative_node_base<Derived,Key,Data,Selector>::associative_node_base(
- BOOST_RV_REF(Derived) source
- ) : _children(), _data(::boost::move(source._data)), _parent()
- {
- }
-
- template <typename Derived, typename Key, typename Data, typename Selector>
- associative_node_base<Derived,Key,Data,Selector>::associative_node_base(
- BOOST_RV_REF(Derived) source
- , typename traits::allocator_reference allocator
- ) : _children(allocator), _data(::boost::move(source._data)), _parent()
- {
- }
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-#if defined BOOST_CONTAINER_PERFECT_FORWARDING
- template <typename Derived, typename Key, typename Data, typename Selector>
- template <typename ...Args>
- associative_node_base<Derived,Key,Data,Selector>::associative_node_base(
- Args&& ...args
- ) : _children(), _data(::boost::forward<Args>(args)...), _parent()
- {
- }
-
- template <typename Derived, typename Key, typename Data, typename Selector>
- template <typename ...Args>
- associative_node_base<Derived,Key,Data,Selector>::associative_node_base(
- ::boost::container::allocator_arg_t
- , typename traits::allocator_reference allocator
- , Args&& ...args
- ) : _children(allocator), _data(::boost::forward<Args>(args)...), _parent()
- {
- }
-#else // !defined BOOST_CONTAINER_PERFECT_FORWARDING
-#define BOOST_TREE_NODE_ASSOCIATIVE_NODE_MACRO(z, n, _) \
- template < \
- typename Derived \
- , typename Key \
- , typename Data \
- , typename Selector \
- > \
- BOOST_PP_EXPR_IF(n, template <) \
- BOOST_PP_ENUM_PARAMS_Z(z, n, typename P) \
- BOOST_PP_EXPR_IF(n, >) \
- associative_node_base<Derived,Key,Data,Selector>::associative_node_base( \
- BOOST_PP_CAT(BOOST_PP_ENUM_, z)( \
- n \
- , BOOST_CONTAINER_PP_PARAM_LIST \
- , _ \
- ) \
- ) : _children() \
- , _data( \
- BOOST_PP_CAT(BOOST_PP_ENUM_, z)( \
- n \
- , BOOST_CONTAINER_PP_PARAM_FORWARD \
- , _ \
- ) \
- ) \
- , _parent() \
- { \
- } \
-//!
- BOOST_PP_REPEAT(
- BOOST_CONTAINER_MAX_CONSTRUCTOR_PARAMETERS
- , BOOST_TREE_NODE_ASSOCIATIVE_NODE_MACRO
- , _
- )
-#undef BOOST_TREE_NODE_ASSOCIATIVE_NODE_MACRO
-
-#define BOOST_TREE_NODE_ASSOCIATIVE_NODE_MACRO(z, n, _) \
- template < \
- typename Derived \
- , typename Key \
- , typename Data \
- , typename Selector \
- > \
- BOOST_PP_EXPR_IF(n, template <) \
- BOOST_PP_ENUM_PARAMS_Z(z, n, typename P) \
- BOOST_PP_EXPR_IF(n, >) \
- associative_node_base<Derived,Key,Data,Selector>::associative_node_base( \
- ::boost::container::allocator_arg_t \
- , typename traits::allocator_reference allocator \
- BOOST_PP_CAT(BOOST_PP_ENUM_TRAILING_, z)( \
- n \
- , BOOST_CONTAINER_PP_PARAM_LIST \
- , _ \
- ) \
- ) : _children(allocator) \
- , _data( \
- BOOST_PP_CAT(BOOST_PP_ENUM_, z)( \
- n \
- , BOOST_CONTAINER_PP_PARAM_FORWARD \
- , _ \
- ) \
- ) \
- , _parent() \
- { \
- } \
-//!
- BOOST_PP_REPEAT(
- BOOST_CONTAINER_MAX_CONSTRUCTOR_PARAMETERS
- , BOOST_TREE_NODE_ASSOCIATIVE_NODE_MACRO
- , _
- )
-#undef BOOST_TREE_NODE_ASSOCIATIVE_NODE_MACRO
-#endif // BOOST_CONTAINER_PERFECT_FORWARDING
-
- template <typename Derived, typename Key, typename Data, typename Selector>
- associative_node_base<Derived,Key,Data,Selector>::~associative_node_base()
- {
- }
-
- template <typename Derived, typename Key, typename Data, typename Selector>
- inline void
- associative_node_base<Derived,Key,Data,Selector>::clone_descendants(
- Derived const& copy
- )
- {
- this->_clone_descendants(copy);
- }
-
-#if defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- template <typename Derived, typename Key, typename Data, typename Selector>
- void
- associative_node_base<Derived,Key,Data,Selector>::copy_assign(
- Derived const& copy
- )
- {
- Derived twin(copy._data);
-
- twin._clone_descendants(copy);
- this->_children.clear();
- this->_data = twin._data;
- this->clone_metadata(copy);
- this->_clone_descendants(twin);
- }
-#else // !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- template <typename Derived, typename Key, typename Data, typename Selector>
- inline void
- associative_node_base<Derived,Key,Data,Selector>::move_descendants(
- BOOST_RV_REF(Derived) source
- )
- {
- this->_move_descendants(static_cast<Derived&>(source));
- source._children.clear();
- source.on_post_clear();
- }
-
- template <typename Derived, typename Key, typename Data, typename Selector>
- void
- associative_node_base<Derived,Key,Data,Selector>::copy_assign(
- BOOST_COPY_ASSIGN_REF(Derived) copy
- )
- {
- Derived twin(copy._data);
-
- twin._clone_descendants(static_cast<Derived const&>(copy));
- this->_children.clear();
- this->_data = ::boost::move(twin._data);
- this->_move_descendants(twin);
- }
-
- template <typename Derived, typename Key, typename Data, typename Selector>
- inline void
- associative_node_base<Derived,Key,Data,Selector>::move_assign(
- BOOST_RV_REF(Derived) source
- )
- {
- this->_children.clear();
- this->_data = ::boost::move(source._data);
- this->_move_descendants(static_cast<Derived&>(source));
- source._children.clear();
- source.on_post_clear();
- }
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
- template <typename Derived, typename Key, typename Data, typename Selector>
- inline void
- associative_node_base<
- Derived
- , Key
- , Data
- , Selector
- >::on_post_assign()
- {
- if (this->_parent)
- {
- this->_parent->on_post_propagate_value(data_key());
- }
- }
-
- template <typename Derived, typename Key, typename Data, typename Selector>
- inline typename associative_node_base<
- Derived
- , Key
- , Data
- , Selector
- >::traits::data_type const&
- associative_node_base<Derived,Key,Data,Selector>::operator[](
- data_key const&
- ) const
- {
- return this->_data;
- }
-
- template <typename Derived, typename Key, typename Data, typename Selector>
- inline typename associative_node_base<
- Derived
- , Key
- , Data
- , Selector
- >::traits::data_type&
- associative_node_base<Derived,Key,Data,Selector>::operator[](
- data_key const&
- )
- {
- return this->_data;
- }
-
-#if defined BOOST_TREE_NODE_CAN_USE_FUSION
- template <typename Derived, typename Key, typename Data, typename Selector>
- template <typename FusionKey>
- inline typename ::boost::lazy_enable_if<
- typename ::boost::mpl::if_<
- typename ::boost::mpl::eval_if<
- typename ::boost::fusion::traits::is_sequence<Data>::type
- , ::boost::fusion::traits::is_associative<Data>
- , ::boost::mpl::false_
- >::type
- , result_of::has_key<
- associative_node_base<Derived,Key,Data,Selector>
- , FusionKey
- >
- , ::boost::mpl::false_
- >::type
- , ::boost::fusion::result_of::at_key<Data const,FusionKey>
- >::type
- associative_node_base<Derived,Key,Data,Selector>::operator[](
- FusionKey const&
- ) const
- {
- return ::boost::fusion::at_key<FusionKey>(this->_data);
- }
-
- template <typename Derived, typename Key, typename Data, typename Selector>
- template <typename FusionKey>
- inline typename ::boost::lazy_enable_if<
- typename ::boost::mpl::if_<
- typename ::boost::mpl::eval_if<
- typename ::boost::fusion::traits::is_sequence<Data>::type
- , ::boost::fusion::traits::is_associative<Data>
- , ::boost::mpl::false_
- >::type
- , result_of::has_key<
- associative_node_base<Derived,Key,Data,Selector>
- , FusionKey
- >
- , ::boost::mpl::false_
- >::type
- , ::boost::fusion::result_of::at_key<Data,FusionKey>
- >::type
- associative_node_base<Derived,Key,Data,Selector>::operator[](
- FusionKey const&
- )
- {
- return ::boost::fusion::at_key<FusionKey>(this->_data);
- }
-#endif // BOOST_TREE_NODE_CAN_USE_FUSION
-
- template <typename Derived, typename Key, typename Data, typename Selector>
- inline typename associative_node_base<
- Derived
- , Key
- , Data
- , Selector
- >::const_pointer
- associative_node_base<Derived,Key,Data,Selector>::get_parent_ptr() const
- {
- return this->_parent;
- }
-
- template <typename Derived, typename Key, typename Data, typename Selector>
- inline typename associative_node_base<Derived,Key,Data,Selector>::pointer
- associative_node_base<Derived,Key,Data,Selector>::get_parent_ptr()
- {
- return this->_parent;
- }
-
- template <typename Derived, typename Key, typename Data, typename Selector>
- inline typename associative_node_base<
- Derived
- , Key
- , Data
- , Selector
- >::const_iterator
- associative_node_base<Derived,Key,Data,Selector>::cbegin() const
- {
- return this->_children.cbegin();
- }
-
- template <typename Derived, typename Key, typename Data, typename Selector>
- inline typename associative_node_base<
- Derived
- , Key
- , Data
- , Selector
- >::const_iterator
- associative_node_base<Derived,Key,Data,Selector>::begin() const
- {
- return this->_children.begin();
- }
-
- template <typename Derived, typename Key, typename Data, typename Selector>
- inline typename associative_node_base<Derived,Key,Data,Selector>::iterator
- associative_node_base<Derived,Key,Data,Selector>::begin()
- {
- return this->_children.begin();
- }
-
- template <typename Derived, typename Key, typename Data, typename Selector>
- inline typename associative_node_base<
- Derived
- , Key
- , Data
- , Selector
- >::const_iterator
- associative_node_base<Derived,Key,Data,Selector>::cend() const
- {
- return this->_children.cend();
- }
-
- template <typename Derived, typename Key, typename Data, typename Selector>
- inline typename associative_node_base<
- Derived
- , Key
- , Data
- , Selector
- >::const_iterator
- associative_node_base<Derived,Key,Data,Selector>::end() const
- {
- return this->_children.end();
- }
-
- template <typename Derived, typename Key, typename Data, typename Selector>
- inline typename associative_node_base<Derived,Key,Data,Selector>::iterator
- associative_node_base<Derived,Key,Data,Selector>::end()
- {
- return this->_children.end();
- }
-
- template <typename Derived, typename Key, typename Data, typename Selector>
- inline typename associative_node_base<
- Derived
- , Key
- , Data
- , Selector
- >::const_reverse_iterator
- associative_node_base<Derived,Key,Data,Selector>::crbegin() const
- {
- return this->_children.crbegin();
- }
-
- template <typename Derived, typename Key, typename Data, typename Selector>
- inline typename associative_node_base<
- Derived
- , Key
- , Data
- , Selector
- >::const_reverse_iterator
- associative_node_base<Derived,Key,Data,Selector>::rbegin() const
- {
- return this->_children.rbegin();
- }
-
- template <typename Derived, typename Key, typename Data, typename Selector>
- inline typename associative_node_base<
- Derived
- , Key
- , Data
- , Selector
- >::reverse_iterator
- associative_node_base<Derived,Key,Data,Selector>::rbegin()
- {
- return this->_children.rbegin();
- }
-
- template <typename Derived, typename Key, typename Data, typename Selector>
- inline typename associative_node_base<
- Derived
- , Key
- , Data
- , Selector
- >::const_reverse_iterator
- associative_node_base<Derived,Key,Data,Selector>::crend() const
- {
- return this->_children.crend();
- }
-
- template <typename Derived, typename Key, typename Data, typename Selector>
- inline typename associative_node_base<
- Derived
- , Key
- , Data
- , Selector
- >::const_reverse_iterator
- associative_node_base<Derived,Key,Data,Selector>::rend() const
- {
- return this->_children.rend();
- }
-
- template <typename Derived, typename Key, typename Data, typename Selector>
- inline typename associative_node_base<
- Derived
- , Key
- , Data
- , Selector
- >::reverse_iterator
- associative_node_base<Derived,Key,Data,Selector>::rend()
- {
- return this->_children.rend();
- }
-
- template <typename Derived, typename Key, typename Data, typename Selector>
- inline typename associative_node_base<Derived,Key,Data,Selector>::size_type
- associative_node_base<Derived,Key,Data,Selector>::size() const
- {
- return this->_children.size();
- }
-
- template <typename Derived, typename Key, typename Data, typename Selector>
- inline bool associative_node_base<Derived,Key,Data,Selector>::empty() const
- {
- return this->_children.empty();
- }
-
- template <typename Derived, typename Key, typename Data, typename Selector>
- inline void associative_node_base<Derived,Key,Data,Selector>::clear()
- {
- this->_children.clear();
- this->on_post_clear();
- }
-
- template <typename Derived, typename Key, typename Data, typename Selector>
- inline typename associative_node_base<Derived,Key,Data,Selector>::iterator
- associative_node_base<Derived,Key,Data,Selector>::insert(
- typename traits::key_type const& key
- , Derived const& child
- )
- {
- Derived twin(child._data);
-
- twin._clone_descendants(child);
-
- typename ::boost::emplace_associative_function_gen<Selector>::type
- emplacer;
- ::std::pair<iterator,bool> p = emplacer(
- this->_children
- , key
-#if defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- , twin._data
-#else
- , ::boost::move(twin._data)
-#endif
- );
-
- if (p.second)
- {
- this->_on_post_insert(
- p.first
- , ::boost::has_stable_iterators_selector<Selector>()
- );
-#if defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- dereference_iterator(p.first)._clone_descendants(twin);
-#else
- dereference_iterator(p.first)._move_descendants(twin);
-#endif
- dereference_iterator(p.first).on_post_inserted(
- p.first
- , ::boost::has_stable_iterators_selector<Selector>()
- );
- }
-
- BOOST_ASSERT(
- dereference_iterator(p.first)._parent == this->get_derived()
- );
- return p.first;
- }
-
-#if defined BOOST_CONTAINER_PERFECT_FORWARDING
- template <typename Derived, typename Key, typename Data, typename Selector>
- template <typename ...Args>
- typename associative_node_base<Derived,Key,Data,Selector>::iterator
- associative_node_base<Derived,Key,Data,Selector>::emplace(
- typename traits::key_type const& key
- , Args&& ...args
- )
- {
- typename ::boost::emplace_associative_function_gen<Selector>::type
- emplacer;
- ::std::pair<iterator,bool> p = emplacer(
- this->_children
- , key
- , ::boost::forward<Args>(args)...
- );
-
- if (p.second)
- {
- this->_on_post_insert(
- p.first
- , ::boost::has_stable_iterators_selector<Selector>()
- );
- dereference_iterator(p.first).on_post_inserted(
- p.first
- , ::boost::has_stable_iterators_selector<Selector>()
- );
- }
-
- BOOST_ASSERT(
- dereference_iterator(p.first)._parent == this->get_derived()
- );
- return p.first;
- }
-#else // !defined BOOST_CONTAINER_PERFECT_FORWARDING
-#define BOOST_TREE_NODE_ASSOCIATIVE_NODE_MACRO(z, n, _) \
- template < \
- typename Derived \
- , typename Key \
- , typename Data \
- , typename Selector \
- > \
- BOOST_PP_EXPR_IF(n, template <) \
- BOOST_PP_ENUM_PARAMS_Z(z, n, typename P) \
- BOOST_PP_EXPR_IF(n, >) \
- typename associative_node_base<Derived,Key,Data,Selector>::iterator \
- associative_node_base<Derived,Key,Data,Selector>::emplace( \
- typename traits::key_type const& key \
- BOOST_PP_CAT(BOOST_PP_ENUM_TRAILING_, z)( \
- n \
- , BOOST_CONTAINER_PP_PARAM_LIST \
- , _ \
- ) \
- ) \
- { \
- typename ::boost::emplace_associative_function_gen<Selector>::type \
- emplacer; \
- ::std::pair<iterator,bool> p = emplacer( \
- this->_children \
- , key \
- BOOST_PP_CAT(BOOST_PP_ENUM_TRAILING_, z)( \
- n \
- , BOOST_CONTAINER_PP_PARAM_FORWARD \
- , _ \
- ) \
- ); \
- if (p.second) \
- { \
- this->_on_post_insert( \
- p.first \
- , ::boost::has_stable_iterators_selector<Selector>() \
- ); \
- dereference_iterator(p.first).on_post_inserted( \
- p.first \
- , ::boost::has_stable_iterators_selector<Selector>() \
- ); \
- } \
- BOOST_ASSERT( \
- dereference_iterator(p.first)._parent == this->get_derived() \
- ); \
- return p.first; \
- } \
-//!
- BOOST_PP_REPEAT(
- BOOST_CONTAINER_MAX_CONSTRUCTOR_PARAMETERS
- , BOOST_TREE_NODE_ASSOCIATIVE_NODE_MACRO
- , _
- )
-#undef BOOST_TREE_NODE_ASSOCIATIVE_NODE_MACRO
-#endif // BOOST_CONTAINER_PERFECT_FORWARDING
-
- template <typename Derived, typename Key, typename Data, typename Selector>
- inline typename associative_node_base<
- Derived
- , Key
- , Data
- , Selector
- >::const_iterator
- associative_node_base<Derived,Key,Data,Selector>::find(
- typename traits::key_type const& key
- ) const
- {
- return this->_children.find(key);
- }
-
- template <typename Derived, typename Key, typename Data, typename Selector>
- inline typename associative_node_base<Derived,Key,Data,Selector>::iterator
- associative_node_base<Derived,Key,Data,Selector>::find(
- typename traits::key_type const& key
- )
- {
- return this->_children.find(key);
- }
-
- template <typename Derived, typename Key, typename Data, typename Selector>
- inline typename associative_node_base<
- Derived
- , Key
- , Data
- , Selector
- >::traits::const_iterator_range
- associative_node_base<Derived,Key,Data,Selector>::equal_range(
- typename traits::key_type const& key
- ) const
- {
- return this->_children.equal_range(key);
- }
-
- template <typename Derived, typename Key, typename Data, typename Selector>
- inline typename associative_node_base<
- Derived
- , Key
- , Data
- , Selector
- >::traits::iterator_range
- associative_node_base<Derived,Key,Data,Selector>::equal_range(
- typename traits::key_type const& key
- )
- {
- return this->_children.equal_range(key);
- }
-
- template <typename Derived, typename Key, typename Data, typename Selector>
- typename associative_node_base<Derived,Key,Data,Selector>::size_type
- associative_node_base<Derived,Key,Data,Selector>::erase(
- typename traits::key_type const& key
- )
- {
- size_type result = this->_children.erase(key);
- this->on_post_erase();
- return result;
- }
-
- template <typename Derived, typename Key, typename Data, typename Selector>
- inline void
- associative_node_base<Derived,Key,Data,Selector>::_clone_descendants(
- Derived const& copy
- )
- {
- this->_clone_descendants(
- copy
- , ::boost::detail::metafunction::is_random_access_iterator<
- iterator
- >()
- );
- }
-
- template <typename Derived, typename Key, typename Data, typename Selector>
- void
- associative_node_base<Derived,Key,Data,Selector>::_clone_descendants(
- Derived const& copy
- , ::boost::mpl::true_
- )
- {
-#if 1
- this->_children = copy._children;
- this->_link_children_to_parent();
- this->clone_metadata(copy);
- this->on_post_copy_or_move();
-#else
- ::std::deque<iterator> itrs;
- pointer p = this->get_derived();
-
- for (depth_first_iterator<Derived const> itr(copy); itr; ++itr)
- {
- switch (::boost::tree_node::traversal_state(itr))
- {
- case ::boost::tree_node::pre_order_traversal:
- {
- p->clone_metadata(dereference_iterator(itr));
- p->_children.clear();
-
- if (!dereference_iterator(itr).empty())
- {
- p->_children.insert(
- ::boost::make_transform_iterator(
- dereference_iterator(itr)._children.begin()
- , _clone_transform_function()
- )
- , ::boost::make_transform_iterator(
- dereference_iterator(itr)._children.end()
- , _clone_transform_function()
- )
- );
- p->_link_children_to_parent();
- itrs.push_back(p->_children.begin());
- p = &dereference_iterator(itrs.back());
- BOOST_ASSERT(!!p->get_parent_ptr());
- }
-
- break;
- }
-
- case ::boost::tree_node::post_order_traversal:
- {
- p->on_post_copy_or_move();
-
- if (!itrs.empty())
- {
- BOOST_ASSERT(!!p->get_parent_ptr());
-
- if (++itrs.back() == p->_parent->_children.end())
- {
- p = p->get_parent_ptr();
- itrs.pop_back();
- }
- else
- {
- p = &dereference_iterator(itrs.back());
- BOOST_ASSERT(!!p->get_parent_ptr());
- }
- }
-
- break;
- }
-
- default:
- {
- BOOST_ASSERT_MSG(
- false
- , "traversal_state must be pre- or post-order!"
- );
- }
- }
- }
-
- BOOST_ASSERT_MSG(p == this->get_derived(), "itr not at-the-end");
-#endif
- }
-
- template <typename Derived, typename Key, typename Data, typename Selector>
- void
- associative_node_base<Derived,Key,Data,Selector>::_clone_descendants(
- Derived const& copy
- , ::boost::mpl::false_ f
- )
- {
- typename ::boost::emplace_associative_function_gen<Selector>::type
- emplacer;
- iterator child_itr;
- pointer p = this->get_derived();
-
- p->clone_metadata(copy);
- p->_children.clear();
-
- for (
- depth_first_descendant_iterator<Derived const> itr(copy);
- itr;
- ++itr
- )
- {
- switch (::boost::tree_node::traversal_state(itr))
- {
- case ::boost::tree_node::pre_order_traversal:
- {
- child_itr = emplacer(
- p->_children
- , itr->first
- , dereference_iterator(itr)._data
- ).first;
- p->_on_post_insert(child_itr, f);
- p = &dereference_iterator(child_itr);
- p->clone_metadata(dereference_iterator(itr));
- break;
- }
-
- case ::boost::tree_node::post_order_traversal:
- {
- p->on_post_copy_or_move();
- p = p->get_parent_ptr();
- break;
- }
-
- default:
- {
- BOOST_ASSERT_MSG(
- false
- , "traversal_state must be pre- or post-order!"
- );
- }
- }
- }
-
- BOOST_ASSERT_MSG(p == this->get_derived(), "itr not at-the-end");
- p->on_post_copy_or_move();
- }
-
-#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- template <typename Derived, typename Key, typename Data, typename Selector>
- inline void
- associative_node_base<Derived,Key,Data,Selector>::_move_descendants(
- Derived& source
- )
- {
- this->_move_descendants(
- source
- , ::boost::detail::metafunction::is_random_access_iterator<
- iterator
- >()
- );
- }
-
- template <typename Derived, typename Key, typename Data, typename Selector>
- void
- associative_node_base<Derived,Key,Data,Selector>::_move_descendants(
- Derived& source
- , ::boost::mpl::true_
- )
- {
-#if 1
- this->_children.clear();
- this->_children = ::boost::move(source._children);
- this->_link_children_to_parent();
- this->move_metadata(::boost::move(source));
- this->on_post_copy_or_move();
-#else
- ::std::deque<iterator> itrs;
- pointer p = this->get_derived();
-
- for (depth_first_iterator<Derived> itr(source); itr; ++itr)
- {
- switch (::boost::tree_node::traversal_state(itr))
- {
- case ::boost::tree_node::pre_order_traversal:
- {
- p->clone_metadata(dereference_iterator(itr));
- p->_children.clear();
-
- if (!dereference_iterator(itr).empty())
- {
- p->_children.insert(
- /*typename ::boost::mpl::if_<
- ::boost::is_unique_associative_selector<
- Selector
- >
- , ::boost::container::ordered_unique_range_t
- , ::boost::container::ordered_range_t
- >::type()
- , */::boost::make_transform_iterator(
- dereference_iterator(itr)._children.begin()
- , _move_transform_function()
- )
- , ::boost::make_transform_iterator(
- dereference_iterator(itr)._children.end()
- , _move_transform_function()
- )
- );
- p->_link_children_to_parent();
- itrs.push_back(p->_children.begin());
- p = &dereference_iterator(itrs.back());
- BOOST_ASSERT(!!p->get_parent_ptr());
- }
-
- break;
- }
-
- case ::boost::tree_node::post_order_traversal:
- {
- p->on_post_copy_or_move();
-
- if (!itrs.empty())
- {
- BOOST_ASSERT(!!p->get_parent_ptr());
-
- if (++itrs.back() == p->_parent->_children.end())
- {
- p = p->get_parent_ptr();
- itrs.pop_back();
- }
- else
- {
- p = &dereference_iterator(itrs.back());
- BOOST_ASSERT(!!p->get_parent_ptr());
- }
- }
-
- break;
- }
-
- default:
- {
- BOOST_ASSERT_MSG(
- false
- , "traversal_state must be pre- or post-order!"
- );
- }
- }
- }
-
- BOOST_ASSERT_MSG(p == this->get_derived(), "itr not at-the-end");
-#endif
- }
-
- template <typename Derived, typename Key, typename Data, typename Selector>
- void
- associative_node_base<Derived,Key,Data,Selector>::_move_descendants(
- Derived& source
- , ::boost::mpl::false_
- )
- {
- typename ::boost::emplace_associative_function_gen<Selector>::type
- emplacer;
- iterator child_itr;
- pointer p = this->get_derived();
-
- p->move_metadata(::boost::move(source));
- p->_children.clear();
-
- for (depth_first_descendant_iterator<Derived> itr(source); itr; ++itr)
- {
- switch (::boost::tree_node::traversal_state(itr))
- {
- case ::boost::tree_node::pre_order_traversal:
- {
- child_itr = emplacer(
- p->_children
- , itr->first
- , ::boost::move(dereference_iterator(itr)._data)
- ).first;
- p->_on_post_insert(
- child_itr
- , ::boost::has_stable_iterators_selector<Selector>()
- );
- p = &dereference_iterator(child_itr);
- p->move_metadata(
- ::boost::move(dereference_iterator(itr))
- );
- break;
- }
-
- case ::boost::tree_node::post_order_traversal:
- {
- dereference_iterator(itr)._children.clear();
- p->on_post_copy_or_move();
- p = p->get_parent_ptr();
- break;
- }
-
- default:
- {
- BOOST_ASSERT_MSG(
- false
- , "traversal_state must be pre- or post-order!"
- );
- }
- }
- }
-
- BOOST_ASSERT_MSG(p == this->get_derived(), "itr not at-the-end");
- p->on_post_copy_or_move();
- }
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
- template <typename Derived, typename Key, typename Data, typename Selector>
- inline void
- associative_node_base<
- Derived
- , Key
- , Data
- , Selector
- >::_on_post_insert(iterator itr, ::boost::mpl::true_)
- {
- dereference_iterator(itr)._parent = this->get_derived();
- }
-
- template <typename Derived, typename Key, typename Data, typename Selector>
- inline void
- associative_node_base<
- Derived
- , Key
- , Data
- , Selector
- >::_on_post_insert(iterator itr, ::boost::mpl::false_)
- {
- this->_link_children_to_parent();
- }
-
- template <typename Derived, typename Key, typename Data, typename Selector>
- void
- associative_node_base<
- Derived
- , Key
- , Data
- , Selector
- >::_link_children_to_parent()
- {
- iterator itr = this->begin();
-
- for (iterator itr_end = this->end(); itr != itr_end; ++itr)
- {
- dereference_iterator(itr)._parent = this->get_derived();
- }
- }
-
- template <typename Derived, typename Key, typename Data, typename Selector>
- inline void
- associative_node_base<
- Derived
- , Key
- , Data
- , Selector
- >::_on_post_modify_value(data_key const& key)
- {
- this->on_post_propagate_value(key);
- }
-
-#if defined BOOST_TREE_NODE_CAN_USE_FUSION
- template <typename Derived, typename Key, typename Data, typename Selector>
- template <typename FusionKey>
- inline void
- associative_node_base<
- Derived
- , Key
- , Data
- , Selector
- >::_on_post_modify_value(FusionKey const& key)
- {
- this->on_post_propagate_value(key);
- }
-#endif
-}} // namespace boost::tree_node
-
-namespace boost { namespace tree_node {
-
- template <typename Derived, typename Key, typename Data, typename Selector>
- inline typename associative_node_base<
- Derived
- , Key
- , Data
- , Selector
- >::traits::data_type const&
- get(
- associative_node_base<Derived,Key,Data,Selector> const& node
- , data_key const& key
- )
- {
- return node[key];
- }
-
- template <typename Derived, typename Key, typename Data, typename Selector>
- inline typename associative_node_base<
- Derived
- , Key
- , Data
- , Selector
- >::traits::data_type&
- get(
- associative_node_base<Derived,Key,Data,Selector>& node
- , data_key const& key
- )
- {
- return node[key];
- }
-
-#if !defined BOOST_NO_SFINAE
- template <
- typename DataKey
- , typename Derived
- , typename Key
- , typename Data
- , typename Selector
- >
- inline typename ::boost::enable_if<
- ::std::tr1::is_same<DataKey,data_key>
- , typename associative_node_base<
- Derived
- , Key
- , Data
- , Selector
- >::traits::data_type const&
- >::type
- get(associative_node_base<Derived,Key,Data,Selector> const& node)
- {
- return node[data_key()];
- }
-
- template <
- typename DataKey
- , typename Derived
- , typename Key
- , typename Data
- , typename Selector
- >
- inline typename ::boost::enable_if<
- ::std::tr1::is_same<DataKey,data_key>
- , typename associative_node_base<
- Derived
- , Key
- , Data
- , Selector
- >::traits::data_type&
- >::type
- get(associative_node_base<Derived,Key,Data,Selector>& node)
- {
- return node[data_key()];
- }
-#endif // BOOST_NO_SFINAE
-
- template <
- typename Derived
- , typename Key
- , typename Data
- , typename Selector
- , typename V
- >
- inline void
- put(
- associative_node_base<Derived,Key,Data,Selector>& node
- , data_key const& key
- , V const& value
- )
- {
- node[key] = value;
- node._on_post_modify_value(key);
- }
-
-#if defined BOOST_TREE_NODE_CAN_USE_FUSION
- template <
- typename Derived
- , typename Key
- , typename Data
- , typename Selector
- , typename FusionKey
- >
- inline typename ::boost::lazy_enable_if<
- typename ::boost::mpl::if_<
- typename ::boost::mpl::eval_if<
- typename ::boost::fusion::traits::is_sequence<Data>::type
- , ::boost::fusion::traits::is_associative<Data>
- , ::boost::mpl::false_
- >::type
- , result_of::has_key<
- associative_node_base<Derived,Key,Data,Selector>
- , FusionKey
- >
- , ::boost::mpl::false_
- >::type
- , ::boost::fusion::result_of::at_key<Data const,FusionKey>
- >::type
- get(
- associative_node_base<Derived,Key,Data,Selector> const& node
- , FusionKey const& key
- )
- {
- return node[key];
- }
-
- template <
- typename Derived
- , typename Key
- , typename Data
- , typename Selector
- , typename FusionKey
- >
- inline typename ::boost::lazy_enable_if<
- typename ::boost::mpl::if_<
- typename ::boost::mpl::eval_if<
- typename ::boost::fusion::traits::is_sequence<Data>::type
- , ::boost::fusion::traits::is_associative<Data>
- , ::boost::mpl::false_
- >::type
- , result_of::has_key<
- associative_node_base<Derived,Key,Data,Selector>
- , FusionKey
- >
- , ::boost::mpl::false_
- >::type
- , ::boost::fusion::result_of::at_key<Data,FusionKey>
- >::type
- get(
- associative_node_base<Derived,Key,Data,Selector>& node
- , FusionKey const& key
- )
- {
- return node[key];
- }
-
- template <
- typename FusionKey
- , typename Derived
- , typename Key
- , typename Data
- , typename Selector
- >
- inline typename ::boost::lazy_enable_if<
- typename ::boost::mpl::if_<
- typename ::boost::mpl::eval_if<
- typename ::boost::fusion::traits::is_sequence<Data>::type
- , ::boost::fusion::traits::is_associative<Data>
- , ::boost::mpl::false_
- >::type
- , result_of::has_key<
- associative_node_base<Derived,Key,Data,Selector>
- , FusionKey
- >
- , ::boost::mpl::false_
- >::type
- , ::boost::fusion::result_of::at_key<Data const,FusionKey>
- >::type
- get(associative_node_base<Derived,Key,Data,Selector> const& node)
- {
- return node[FusionKey()];
- }
-
- template <
- typename FusionKey
- , typename Derived
- , typename Key
- , typename Data
- , typename Selector
- >
- inline typename ::boost::lazy_enable_if<
- typename ::boost::mpl::if_<
- typename ::boost::mpl::eval_if<
- typename ::boost::fusion::traits::is_sequence<Data>::type
- , ::boost::fusion::traits::is_associative<Data>
- , ::boost::mpl::false_
- >::type
- , result_of::has_key<
- associative_node_base<Derived,Key,Data,Selector>
- , FusionKey
- >
- , ::boost::mpl::false_
- >::type
- , ::boost::fusion::result_of::at_key<Data,FusionKey>
- >::type
- get(associative_node_base<Derived,Key,Data,Selector>& node)
- {
- return node[FusionKey()];
- }
-
- template <
- typename Derived
- , typename Key
- , typename Data
- , typename Selector
- , typename FusionKey
- , typename V
- >
- inline void
- put(
- associative_node_base<Derived,Key,Data,Selector>& node
- , FusionKey const& key
- , V const& value
- , typename ::boost::enable_if<
- typename ::boost::mpl::if_<
- typename ::boost::mpl::eval_if<
- typename ::boost::fusion::traits::is_sequence<Data>::type
- , ::boost::fusion::traits::is_associative<Data>
- , ::boost::mpl::false_
- >::type
- , result_of::has_key<
- associative_node_base<Derived,Key,Data,Selector>
- , FusionKey
- >
- , ::boost::mpl::false_
- >::type
- , ::boost::mpl::true_
- >::type
- )
- {
- node[key] = value;
- node._on_post_modify_value(key);
- }
-#endif // BOOST_TREE_NODE_CAN_USE_FUSION
-}} // namespace boost::tree_node
-
-//[reference__associative_node_base_gen
-namespace boost { namespace tree_node {
-
- template <typename Selector = ::boost::ptr_mapS>
- struct associative_node_base_gen
- {
- template <typename Derived, typename Key, typename Data>
- struct apply
- {
- typedef associative_node_base<Derived,Key,Data,Selector> type;
- };
- };
-
- typedef associative_node_base_gen<> associative_node_base_default_gen;
-}} // namespace boost::tree_node
-//]
-
-namespace boost { namespace tree_node {
-
- template <typename Key, typename Data, typename Selector>
- struct associative_node
- : public
- //[reference__associative_node__bases
- associative_node_base<
- associative_node<Key,Data,Selector>
- , Key
- , Data
- , Selector
- >
- //]
- {
- //[reference__associative_node__super_t
- typedef associative_node_base<
- associative_node
- , Key
- , Data
- , Selector
- >
- super_t;
- //]
-
- //[reference__associative_node__traits
- typedef typename super_t::traits
- traits;
- //]
-
- //[reference__associative_node__pointer
- typedef typename super_t::pointer
- pointer;
- //]
-
- //[reference__associative_node__const_pointer
- typedef typename super_t::const_pointer
- const_pointer;
- //]
-
- //[reference__associative_node__iterator
- typedef typename super_t::iterator
- iterator;
- //]
-
- //[reference__associative_node__const_iterator
- typedef typename super_t::const_iterator
- const_iterator;
- //]
-
- //[reference__associative_node__reverse_iterator
- typedef typename super_t::reverse_iterator
- reverse_iterator;
- //]
-
- //[reference__associative_node__const_reverse_iterator
- typedef typename super_t::const_reverse_iterator
- const_reverse_iterator;
- //]
-
- //[reference__associative_node__size_type
- typedef typename super_t::size_type
- size_type;
- //]
-
- BOOST_TREE_NODE_COPYABLE_AND_MOVABLE(associative_node, super_t)
-
-#if defined BOOST_CONTAINER_PERFECT_FORWARDING
- //[reference__associative_node__emplacement_ctor
- template <typename ...Args>
- explicit associative_node(Args&& ...args);
- //]
-
- //[reference__associative_node__emplacement_ctor_w_allocator
- template <typename ...Args>
- explicit associative_node(
- ::boost::container::allocator_arg_t
- , typename traits::allocator_reference allocator
- , Args&& ...args
- );
- //]
-#else // !defined BOOST_CONTAINER_PERFECT_FORWARDING
- BOOST_PP_REPEAT(
- BOOST_CONTAINER_MAX_CONSTRUCTOR_PARAMETERS
- , BOOST_TREE_NODE_EMPLACEMENT_CTOR_INLINE_DEF
- , (associative_node, super_t)
- )
-
- BOOST_PP_REPEAT(
- BOOST_CONTAINER_MAX_CONSTRUCTOR_PARAMETERS
- , BOOST_TREE_NODE_EMPLACEMENT_CTOR_W_ALLOC_INLINE_DEF
- , (associative_node, super_t)
- )
-#endif // BOOST_CONTAINER_PERFECT_FORWARDING
- };
-
-#if defined BOOST_CONTAINER_PERFECT_FORWARDING
- template <typename Key, typename Data, typename Selector>
- template <typename ...Args>
- inline associative_node<Key,Data,Selector>::associative_node(
- Args&& ...args
- ) : super_t(::boost::forward<Args>(args)...)
- {
- }
-
- template <typename Key, typename Data, typename Selector>
- template <typename ...Args>
- inline associative_node<Key,Data,Selector>::associative_node(
- ::boost::container::allocator_arg_t
- , typename traits::allocator_reference allocator
- , Args&& ...args
- ) : super_t(
- ::boost::container::allocator_arg
- , allocator
- , ::boost::forward<Args>(args)...
- )
- {
- }
-#endif // BOOST_CONTAINER_PERFECT_FORWARDING
-}} // namespace boost::tree_node
-
-//[reference__associative_node_gen
-namespace boost { namespace tree_node {
-
- template <typename Selector = ::boost::ptr_mapS>
- struct associative_node_gen
- {
- template <typename Key, typename Data>
- struct apply
- {
- typedef associative_node<Key,Data,Selector> type;
- };
- };
-
- typedef associative_node_gen<> associative_node_default_gen;
-}} // namespace boost::tree_node
-//]
-
-#include <boost/tree_node/_detail/config_end.hpp>
-
-#endif // BOOST_TREE_NODE_ASSOCIATIVE_NODE_HPP_INCLUDED
-

Deleted: sandbox/tree_node/boost/tree_node/associative_node_fwd.hpp
==============================================================================
--- sandbox/tree_node/boost/tree_node/associative_node_fwd.hpp 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84956)
+++ /dev/null 00:00:00 1970 (deleted)
@@ -1,293 +0,0 @@
-// 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)
-
-#ifndef BOOST_TREE_NODE_ASSOCIATIVE_NODE_FWD_HPP_INCLUDED
-#define BOOST_TREE_NODE_ASSOCIATIVE_NODE_FWD_HPP_INCLUDED
-
-#include <boost/config.hpp>
-#include <boost/container_gen/selectors.hpp>
-#include <boost/tree_node/preprocessor.hpp>
-#include <boost/tree_node/key/data.hpp>
-
-#if !defined BOOST_NO_SFINAE
-#include <boost/utility/enable_if.hpp>
-#include <boost/tr1/type_traits.hpp>
-#endif
-
-#if defined BOOST_TREE_NODE_CAN_USE_FUSION
-#include <boost/mpl/bool.hpp>
-#include <boost/mpl/if.hpp>
-#include <boost/mpl/eval_if.hpp>
-#include <boost/fusion/sequence/intrinsic/has_key.hpp>
-#include <boost/fusion/support/is_sequence.hpp>
-#include <boost/fusion/support/category_of.hpp>
-#include <boost/tree_node/intrinsic/has_key.hpp>
-#endif
-
-namespace boost { namespace tree_node {
-
- template <typename Derived, typename Key, typename Data, typename Selector>
- class associative_node_base;
-
- template <
- typename Key
- , typename Data
- , typename Selector = ::boost::ptr_mapS
- >
- struct associative_node;
-}} // namespace boost::tree_node
-
-//[reference__associative_node_base__at_data_key__const
-namespace boost { namespace tree_node {
-
- template <typename Derived, typename Key, typename Data, typename Selector>
- typename associative_node_base<
- Derived
- , Key
- , Data
- , Selector
- >::traits::data_type const&
- get(
- associative_node_base<Derived,Key,Data,Selector> const& node
- , data_key const& key
- );
-
-//<-
-#if !defined BOOST_NO_SFINAE
-//->
- template <
- typename DataKey
- , typename Derived
- , typename Key
- , typename Data
- , typename Selector
- >
- typename ::boost::enable_if<
- ::std::tr1::is_same<DataKey,data_key>
- , typename associative_node_base<
- Derived
- , Key
- , Data
- , Selector
- >::traits::data_type const&
- >::type
- get(associative_node_base<Derived,Key,Data,Selector> const& node);
-//<-
-#endif // BOOST_NO_SFINAE
-//->
-}} // namespace boost::tree_node
-//]
-
-//[reference__associative_node_base__at_data_key
-namespace boost { namespace tree_node {
-
- template <typename Derived, typename Key, typename Data, typename Selector>
- typename associative_node_base<
- Derived
- , Key
- , Data
- , Selector
- >::traits::data_type&
- get(
- associative_node_base<Derived,Key,Data,Selector>& node
- , data_key const& key
- );
-
-//<-
-#if !defined BOOST_NO_SFINAE
-//->
- template <
- typename DataKey
- , typename Derived
- , typename Key
- , typename Data
- , typename Selector
- >
- typename ::boost::enable_if<
- ::std::tr1::is_same<DataKey,data_key>
- , typename associative_node_base<
- Derived
- , Key
- , Data
- , Selector
- >::traits::data_type&
- >::type
- get(associative_node_base<Derived,Key,Data,Selector>& node);
-//<-
-#endif // BOOST_NO_SFINAE
-//->
-}} // namespace boost::tree_node
-//]
-
-//[reference__associative_node_base__put_data
-namespace boost { namespace tree_node {
-
- template <
- typename Derived
- , typename Key
- , typename Data
- , typename Selector
- , typename V
- >
- void
- put(
- associative_node_base<Derived,Key,Data,Selector>& node
- , data_key const& key
- , V const& value
- );
-}} // namespace boost::tree_node
-//]
-
-#if defined BOOST_TREE_NODE_CAN_USE_FUSION
-//[reference__associative_node_base__at_key__const
-namespace boost { namespace tree_node {
-
- template <
- typename Derived
- , typename Key
- , typename Data
- , typename Selector
- , typename FusionKey
- >
- typename ::boost::lazy_enable_if<
- typename ::boost::mpl::if_<
- typename ::boost::mpl::eval_if<
- typename ::boost::fusion::traits::is_sequence<Data>::type
- , ::boost::fusion::traits::is_associative<Data>
- , ::boost::mpl::false_
- >::type
- , result_of::has_key<
- associative_node_base<Derived,Key,Data,Selector>
- , FusionKey
- >
- , ::boost::mpl::false_
- >::type
- , ::boost::fusion::result_of::at_key<Data const,FusionKey>
- >::type
- get(
- associative_node_base<Derived,Key,Data,Selector> const& node
- , FusionKey const& key
- );
-
- template <
- typename FusionKey
- , typename Derived
- , typename Key
- , typename Data
- , typename Selector
- >
- typename ::boost::lazy_enable_if<
- typename ::boost::mpl::if_<
- typename ::boost::mpl::eval_if<
- typename ::boost::fusion::traits::is_sequence<Data>::type
- , ::boost::fusion::traits::is_associative<Data>
- , ::boost::mpl::false_
- >::type
- , result_of::has_key<
- associative_node_base<Derived,Key,Data,Selector>
- , FusionKey
- >
- , ::boost::mpl::false_
- >::type
- , ::boost::fusion::result_of::at_key<Data const,FusionKey>
- >::type
- get(associative_node_base<Derived,Key,Data,Selector> const& node);
-}} // namespace boost::tree_node
-//]
-
-//[reference__associative_node_base__at_key
-namespace boost { namespace tree_node {
-
- template <
- typename Derived
- , typename Key
- , typename Data
- , typename Selector
- , typename FusionKey
- >
- typename ::boost::lazy_enable_if<
- typename ::boost::mpl::if_<
- typename ::boost::mpl::eval_if<
- typename ::boost::fusion::traits::is_sequence<Data>::type
- , ::boost::fusion::traits::is_associative<Data>
- , ::boost::mpl::false_
- >::type
- , result_of::has_key<
- associative_node_base<Derived,Key,Data,Selector>
- , FusionKey
- >
- , ::boost::mpl::false_
- >::type
- , ::boost::fusion::result_of::at_key<Data,FusionKey>
- >::type
- get(
- associative_node_base<Derived,Key,Data,Selector>& node
- , FusionKey const& key
- );
-
- template <
- typename FusionKey
- , typename Derived
- , typename Key
- , typename Data
- , typename Selector
- >
- typename ::boost::lazy_enable_if<
- typename ::boost::mpl::if_<
- typename ::boost::mpl::eval_if<
- typename ::boost::fusion::traits::is_sequence<Data>::type
- , ::boost::fusion::traits::is_associative<Data>
- , ::boost::mpl::false_
- >::type
- , result_of::has_key<
- associative_node_base<Derived,Key,Data,Selector>
- , FusionKey
- >
- , ::boost::mpl::false_
- >::type
- , ::boost::fusion::result_of::at_key<Data,FusionKey>
- >::type
- get(associative_node_base<Derived,Key,Data,Selector>& node);
-}} // namespace boost::tree_node
-//]
-
-//[reference__associative_node_base__put
-namespace boost { namespace tree_node {
-
- template <
- typename Derived
- , typename Key
- , typename Data
- , typename Selector
- , typename FusionKey
- , typename V
- >
- void
- put(
- associative_node_base<Derived,Key,Data,Selector>& node
- , FusionKey const& key
- , V const& value
- , typename ::boost::enable_if<
- typename ::boost::mpl::if_<
- typename ::boost::mpl::eval_if<
- typename ::boost::fusion::traits::is_sequence<Data>::type
- , ::boost::fusion::traits::is_associative<Data>
- , ::boost::mpl::false_
- >::type
- , result_of::has_key<
- associative_node_base<Derived,Key,Data,Selector>
- , FusionKey
- >
- , ::boost::mpl::false_
- >::type
- , ::boost::mpl::true_
- >::type = ::boost::mpl::true_()
- );
-}} // namespace boost::tree_node
-//]
-#endif // BOOST_TREE_NODE_CAN_USE_FUSION
-
-#endif // BOOST_TREE_NODE_ASSOCIATIVE_NODE_FWD_HPP_INCLUDED
-

Deleted: sandbox/tree_node/boost/tree_node/base.hpp
==============================================================================
--- sandbox/tree_node/boost/tree_node/base.hpp 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84956)
+++ /dev/null 00:00:00 1970 (deleted)
@@ -1,407 +0,0 @@
-// 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)
-
-#ifndef BOOST_TREE_NODE_BASE_HPP_INCLUDED
-#define BOOST_TREE_NODE_BASE_HPP_INCLUDED
-
-#include <boost/config.hpp>
-#include <boost/mpl/bool.hpp>
-#include <boost/detail/base_pointee.hpp>
-
-#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-#include <boost/move/move.hpp>
-#endif
-
-namespace boost { namespace tree_node {
-
- template <typename Derived>
- struct tree_node_base
- : public ::boost::detail::base_pointee<Derived>
- {
- typedef typename ::boost::detail::base_pointee<Derived>::pointer
- pointer;
- typedef typename ::boost::detail::base_pointee<Derived>::const_pointer
- const_pointer;
- typedef void
- super_t;
-
- protected:
- ~tree_node_base();
-
- //[reference__tree_node_base__clone_metadata_impl
- void clone_metadata_impl(Derived const& copy);
- //]
-
- //[reference__tree_node_base__clone_metadata
- void clone_metadata(Derived const& copy);
- //]
-
-#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-#if defined BOOST_NO_RVALUE_REFERENCES
- void move_metadata_impl(::boost::rv<Derived>& source);
-
- void move_metadata(::boost::rv<Derived>& source);
-#else // !defined BOOST_NO_RVALUE_REFERENCES
- //[reference__tree_node_base__move_metadata_impl
- void move_metadata_impl(Derived&& source);
- //]
-
- //[reference__tree_node_base__move_metadata
- void move_metadata(Derived&& source);
- //]
-#endif // BOOST_NO_RVALUE_REFERENCES
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
- //[reference__tree_node_base__on_post_emplacement_construct
- void on_post_emplacement_construct();
- //]
-
- //[reference__tree_node_base__on_post_copy_or_move_impl
- void on_post_copy_or_move_impl();
- //]
-
- //[reference__tree_node_base__on_post_copy_or_move
- void on_post_copy_or_move();
- //]
-
- //[reference__tree_node_base__on_post_modify_value_impl
- template <typename Key>
- void on_post_modify_value_impl(Key const& key);
- //]
-
- //[reference__tree_node_base__on_post_modify_value
- template <typename Key>
- void on_post_modify_value(Key const& key);
- //]
-
- //[reference__tree_node_base__on_post_propagate_value_impl
- template <typename Key>
- void on_post_propagate_value_impl(Key const& key);
- //]
-
- //[reference__tree_node_base__on_post_propagate_value
- template <typename Key>
- void on_post_propagate_value(Key const& key);
- //]
-
- //[reference__tree_node_base__on_post_propagate_value_once_impl
- template <typename Key>
- void on_post_propagate_value_once_impl(Key const& key);
- //]
-
- //[reference__tree_node_base__on_post_propagate_value_once
- template <typename Key>
- void on_post_propagate_value_once(Key const& key);
- //]
-
- //[reference__tree_node_base__on_post_inserted_impl__true
- template <typename Iterator>
- void on_post_inserted_impl(Iterator position, ::boost::mpl::true_);
- //]
-
- //[reference__tree_node_base__on_post_inserted_impl__false
- template <typename Iterator>
- void on_post_inserted_impl(Iterator position, ::boost::mpl::false_);
- //]
-
- //[reference__tree_node_base__on_post_inserted
- template <typename Iterator, typename BooleanIntegralConstant>
- void
- on_post_inserted(
- Iterator position
- , BooleanIntegralConstant invalidates_sibling_positions
- );
- //]
-
- //[reference__tree_node_base__on_post_insert_impl__true
- template <typename Iterator>
- void
- on_post_insert_impl(
- Iterator itr
- , Iterator itr_end
- , ::boost::mpl::true_
- );
- //]
-
- //[reference__tree_node_base__on_post_insert_impl__false
- template <typename Iterator>
- void
- on_post_insert_impl(
- Iterator itr
- , Iterator itr_end
- , ::boost::mpl::false_
- );
- //]
-
- //[reference__tree_node_base__on_post_insert
- template <typename Iterator, typename BooleanIntegralConstant>
- void
- on_post_insert(
- Iterator itr
- , Iterator itr_end
- , BooleanIntegralConstant invalidates_children_positions
- );
- //]
-
- //[reference__tree_node_base__on_post_erase_impl
- void on_post_erase_impl();
- //]
-
- //[reference__tree_node_base__on_post_erase
- void on_post_erase();
- //]
-
- //[reference__tree_node_base__on_post_clear_impl
- void on_post_clear_impl();
- //]
-
- //[reference__tree_node_base__on_post_clear
- void on_post_clear();
- //]
-
- //[reference__tree_node_base__on_post_rotate_left_impl
- void on_post_rotate_left_impl();
- //]
-
- //[reference__tree_node_base__on_post_rotate_left
- void on_post_rotate_left();
- //]
-
- //[reference__tree_node_base__on_post_rotate_right_impl
- void on_post_rotate_right_impl();
- //]
-
- //[reference__tree_node_base__on_post_rotate_right
- void on_post_rotate_right();
- //]
- };
-
- template <typename Derived>
- tree_node_base<Derived>::~tree_node_base()
- {
- }
-
- template <typename Derived>
- inline void
- tree_node_base<Derived>::clone_metadata_impl(Derived const& copy)
- {
- }
-
- template <typename Derived>
- inline void tree_node_base<Derived>::clone_metadata(Derived const& copy)
- {
- this->get_derived()->clone_metadata_impl(copy);
- }
-
-#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-#if defined BOOST_NO_RVALUE_REFERENCES
- template <typename Derived>
- inline void
- tree_node_base<Derived>::move_metadata_impl(
- ::boost::rv<Derived>& source
- )
- {
- }
-
- template <typename Derived>
- inline void
- tree_node_base<Derived>::move_metadata(::boost::rv<Derived>& source)
- {
- this->get_derived()->move_metadata_impl(source);
- }
-#else // !defined BOOST_NO_RVALUE_REFERENCES
- template <typename Derived>
- inline void tree_node_base<Derived>::move_metadata_impl(Derived&& source)
- {
- }
-
- template <typename Derived>
- inline void tree_node_base<Derived>::move_metadata(Derived&& source)
- {
- this->get_derived()->move_metadata_impl(
- static_cast<Derived&&>(source)
- );
- }
-#endif // BOOST_NO_RVALUE_REFERENCES
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
- template <typename Derived>
- inline void tree_node_base<Derived>::on_post_emplacement_construct()
- {
- }
-
- template <typename Derived>
- inline void tree_node_base<Derived>::on_post_copy_or_move_impl()
- {
- }
-
- template <typename Derived>
- inline void tree_node_base<Derived>::on_post_copy_or_move()
- {
- this->get_derived()->on_post_copy_or_move_impl();
- }
-
- template <typename Derived>
- template <typename Key>
- inline void tree_node_base<Derived>::on_post_modify_value_impl(Key const&)
- {
- }
-
- template <typename Derived>
- template <typename Key>
- inline void tree_node_base<Derived>::on_post_modify_value(Key const& key)
- {
- this->get_derived()->on_post_modify_value_impl(key);
- }
-
- template <typename Derived>
- template <typename Key>
- inline void
- tree_node_base<Derived>::on_post_propagate_value_impl(Key const&)
- {
- }
-
- template <typename Derived>
- template <typename Key>
- inline void
- tree_node_base<Derived>::on_post_propagate_value(Key const& key)
- {
- this->get_derived()->on_post_propagate_value_impl(key);
- }
-
- template <typename Derived>
- template <typename Key>
- inline void
- tree_node_base<Derived>::on_post_propagate_value_once_impl(Key const&)
- {
- }
-
- template <typename Derived>
- template <typename Key>
- inline void
- tree_node_base<Derived>::on_post_propagate_value_once(Key const& key)
- {
- this->get_derived()->on_post_propagate_value_once_impl(key);
- }
-
- template <typename Derived>
- template <typename Iterator>
- inline void
- tree_node_base<Derived>::on_post_inserted_impl(
- Iterator position
- , ::boost::mpl::true_
- )
- {
- }
-
- template <typename Derived>
- template <typename Iterator>
- inline void
- tree_node_base<Derived>::on_post_inserted_impl(
- Iterator position
- , ::boost::mpl::false_
- )
- {
- }
-
- template <typename Derived>
- template <typename Iterator, typename BooleanIntegralConstant>
- inline void
- tree_node_base<Derived>::on_post_inserted(
- Iterator position
- , BooleanIntegralConstant invalidates_sibling_positions
- )
- {
- this->get_derived()->on_post_inserted_impl(
- position
- , invalidates_sibling_positions
- );
- }
-
- template <typename Derived>
- template <typename Iterator>
- inline void
- tree_node_base<Derived>::on_post_insert_impl(
- Iterator itr
- , Iterator itr_end
- , ::boost::mpl::true_
- )
- {
- }
-
- template <typename Derived>
- template <typename Iterator>
- inline void
- tree_node_base<Derived>::on_post_insert_impl(
- Iterator itr
- , Iterator itr_end
- , ::boost::mpl::false_
- )
- {
- }
-
- template <typename Derived>
- template <typename Iterator, typename BooleanIntegralConstant>
- inline void
- tree_node_base<Derived>::on_post_insert(
- Iterator itr
- , Iterator itr_end
- , BooleanIntegralConstant invalidates_children_positions
- )
- {
- this->get_derived()->on_post_insert_impl(
- itr
- , itr_end
- , invalidates_children_positions
- );
- }
-
- template <typename Derived>
- inline void tree_node_base<Derived>::on_post_erase_impl()
- {
- }
-
- template <typename Derived>
- inline void tree_node_base<Derived>::on_post_erase()
- {
- this->get_derived()->on_post_erase_impl();
- }
-
- template <typename Derived>
- inline void tree_node_base<Derived>::on_post_clear_impl()
- {
- }
-
- template <typename Derived>
- inline void tree_node_base<Derived>::on_post_clear()
- {
- this->get_derived()->on_post_clear_impl();
- }
-
- template <typename Derived>
- inline void tree_node_base<Derived>::on_post_rotate_left_impl()
- {
- }
-
- template <typename Derived>
- inline void tree_node_base<Derived>::on_post_rotate_left()
- {
- this->get_derived()->on_post_rotate_left_impl();
- }
-
- template <typename Derived>
- inline void tree_node_base<Derived>::on_post_rotate_right_impl()
- {
- }
-
- template <typename Derived>
- inline void tree_node_base<Derived>::on_post_rotate_right()
- {
- this->get_derived()->on_post_rotate_right_impl();
- }
-}} // namespace boost::tree_node
-
-#endif // BOOST_TREE_NODE_BASE_HPP_INCLUDED
-

Deleted: sandbox/tree_node/boost/tree_node/binary_node.hpp
==============================================================================
--- sandbox/tree_node/boost/tree_node/binary_node.hpp 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84956)
+++ /dev/null 00:00:00 1970 (deleted)
@@ -1,2979 +0,0 @@
-// 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)
-
-#ifndef BOOST_TREE_NODE_BINARY_NODE_HPP_INCLUDED
-#define BOOST_TREE_NODE_BINARY_NODE_HPP_INCLUDED
-
-#include <iterator>
-#include <boost/tr1/type_traits.hpp>
-#include <boost/mpl/bool.hpp>
-#include <boost/mpl/apply_wrap.hpp>
-#include <boost/mpl/if.hpp>
-#include <boost/noncopyable.hpp>
-#include <boost/container/scoped_allocator_fwd.hpp>
-#include <boost/tree_node/preprocessor.hpp>
-#include <boost/tree_node/base.hpp>
-#include <boost/tree_node/binary_node_fwd.hpp>
-#include <boost/tree_node/traits/binary_node_fwd.hpp>
-#include <boost/tree_node/intrinsic/has_key.hpp>
-#include <boost/tree_node/intrinsic/get_keys.hpp>
-#include <boost/tree_node/iterator/depth_first_descendant.hpp>
-#include <boost/utility/value_init.hpp>
-#include <boost/assert.hpp>
-
-#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-#include <boost/move/move.hpp>
-#include <boost/container/allocator_traits.hpp>
-#endif
-
-#if !defined BOOST_CONTAINER_PERFECT_FORWARDING
-#include <boost/preprocessor/repetition/repeat.hpp>
-#endif
-
-#include <boost/tree_node/_detail/config_begin.hpp>
-
-#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-#include <boost/type_traits/is_pod.hpp>
-
-namespace boost {
-
- template <typename Derived, typename T, typename Size, typename Allocator>
- struct is_POD<
- ::boost::tree_node::binary_node_base<Derived,T,Size,Allocator>
- > : ::boost::false_type
- {
- };
-
- template <typename Derived, typename T, typename Size, typename Allocator>
- struct is_pod<
- ::boost::tree_node::binary_node_base<Derived,T,Size,Allocator>
- > : ::boost::false_type
- {
- };
-} // namespace boost
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-#if defined BOOST_TREE_NODE_CAN_USE_FUSION
-#include <boost/mpl/vector.hpp>
-#include <boost/mpl/placeholders.hpp>
-#include <boost/mpl/transform_view.hpp>
-#include <boost/fusion/sequence/intrinsic/at_key.hpp>
-#include <boost/fusion/iterator/key_of.hpp>
-#include <boost/fusion/support/is_sequence.hpp>
-#include <boost/fusion/support/category_of.hpp>
-
-namespace boost { namespace tree_node { namespace result_of {
-
- template <
- typename Derived
- , typename T
- , typename Size
- , typename Allocator
- , typename FusionKey
- >
- struct has_key_impl<
- binary_node_base<Derived,T,Size,Allocator>
- , FusionKey
- > : ::boost::mpl::eval_if<
- typename ::boost::mpl::eval_if<
- typename ::boost::fusion::traits::is_sequence<T>::type
- , ::boost::fusion::traits::is_associative<T>
- , ::boost::mpl::false_
- >::type
- , ::boost::fusion::result_of::has_key<T,FusionKey>
- , ::std::tr1::is_same<FusionKey,data_key>
- >::type
- {
- };
-
- template <
- typename Derived
- , typename T
- , typename Size
- , typename Allocator
- >
- struct get_keys_impl<binary_node_base<Derived,T,Size,Allocator> >
- : ::boost::mpl::eval_if<
- typename ::boost::mpl::eval_if<
- typename ::boost::fusion::traits::is_sequence<T>::type
- , ::boost::fusion::traits::is_associative<T>
- , ::boost::mpl::false_
- >::type
- , ::boost::mpl::transform_view<
- T
- , ::boost::fusion::result_of::key_of< ::boost::mpl::_>
- >
- , ::boost::mpl::vector1<data_key>
- >
- {
- };
-}}} // namespace boost::tree_node::result_of
-#endif // BOOST_TREE_NODE_CAN_USE_FUSION
-
-namespace boost { namespace tree_node { namespace _detail {
-
- template <typename Node, typename IsReverse>
- class binary_child_iterator
- {
-#if !defined BOOST_NO_SFINAE
- struct enabler
- {
- };
-#endif
-
- public:
- typedef ::std::random_access_iterator_tag iterator_category;
- typedef Node value_type;
- typedef ::std::ptrdiff_t difference_type;
- typedef value_type* pointer;
- typedef value_type& reference;
-
- private:
- class proxy
- {
- binary_child_iterator _itr;
-
- public:
- proxy(pointer const& p, difference_type n);
-
- operator binary_child_iterator&();
- };
-
- public: // Should be private, but conversion ctor won't work.
- pointer _current;
- pointer _parent;
-
- public:
- binary_child_iterator();
-
- explicit binary_child_iterator(pointer const& p);
-
- binary_child_iterator(pointer const& p, bool p_is_child);
-
- template <typename N, typename I>
- binary_child_iterator(
- binary_child_iterator<N,I> const& other
-#if !defined BOOST_NO_SFINAE
- , typename ::boost::enable_if<
- typename ::boost::mpl::if_<
- ::std::tr1::is_convertible<N,Node>
- , ::boost::mpl::equal_to<I,IsReverse>
- , ::boost::mpl::false_
- >::type
- , enabler
- >::type = enabler()
-#endif
- );
-
- reference operator*() const;
-
- pointer operator->() const;
-
- proxy operator[](difference_type n) const;
-
- binary_child_iterator& operator++();
-
- binary_child_iterator operator++(int);
-
- binary_child_iterator& operator--();
-
- binary_child_iterator operator--(int);
-
- binary_child_iterator& operator+=(difference_type n);
-
- binary_child_iterator operator+(difference_type n) const;
-
- binary_child_iterator& operator-=(difference_type n);
-
- binary_child_iterator operator-(difference_type n) const;
-
- private:
- void _iterate(pointer const& sibling);
-
- void _advance(difference_type n);
-
- template <typename N1, typename I1, typename N2, typename I2>
- friend
-#if defined BOOST_NO_SFINAE
- bool
-#else
- typename ::boost::enable_if< ::boost::mpl::equal_to<I1,I2>,bool>::type
-#endif
- operator==(
- binary_child_iterator<N1,I1> const& lhs
- , binary_child_iterator<N2,I2> const& rhs
- );
-
- template <typename N1, typename I1, typename N2, typename I2>
- friend
-#if defined BOOST_NO_SFINAE
- bool
-#else
- typename ::boost::enable_if< ::boost::mpl::equal_to<I1,I2>,bool>::type
-#endif
- operator<(
- binary_child_iterator<N1,I1> const& lhs
- , binary_child_iterator<N2,I2> const& rhs
- );
-
- template <typename N1, typename I1, typename N2, typename I2>
- friend ::std::ptrdiff_t
- operator-(
- binary_child_iterator<N1,I1> const& lhs
- , binary_child_iterator<N2,I2> const& rhs
- );
- };
-
- template <typename Node, typename IsReverse>
- binary_child_iterator<Node,IsReverse>::proxy::proxy(
- pointer const& p
- , difference_type n
- ) : _itr(p, true)
- {
- this->_itr._advance(n);
- }
-
- template <typename Node, typename IsReverse>
- inline binary_child_iterator<
- Node
- , IsReverse
- >::proxy::operator binary_child_iterator&()
- {
- return this->_itr;
- }
-
- template <typename Node, typename IsReverse>
- binary_child_iterator<Node,IsReverse>::binary_child_iterator()
- : _current(::boost::initialized_value)
- , _parent(::boost::initialized_value)
- {
- }
-
- template <typename Node, typename IsReverse>
- binary_child_iterator<Node,IsReverse>::binary_child_iterator(
- pointer const& p
- , bool p_is_child
- ) : _current(
- p_is_child ? p : IsReverse::value ? (
- p->get_right_child_ptr()
- ? p->get_right_child_ptr()
- : p->get_left_child_ptr()
- ) : (
- p->get_left_child_ptr()
- ? p->get_left_child_ptr()
- : p->get_right_child_ptr()
- )
- )
- , _parent(p_is_child ? p->get_parent_ptr() : p)
- {
- }
-
- template <typename Node, typename IsReverse>
- binary_child_iterator<Node,IsReverse>::binary_child_iterator(
- pointer const& p
- ) : _current(::boost::initialized_value), _parent(p)
- {
- }
-
- template <typename Node, typename IsReverse>
- template <typename N, typename I>
- binary_child_iterator<Node,IsReverse>::binary_child_iterator(
- binary_child_iterator<N,I> const& other
-#if !defined BOOST_NO_SFINAE
- , typename ::boost::enable_if<
- typename ::boost::mpl::if_<
- ::std::tr1::is_convertible<N,Node>
- , ::boost::mpl::equal_to<I,IsReverse>
- , ::boost::mpl::false_
- >::type
- , enabler
- >::type
-#endif
- ) : _current(other._current), _parent(other._parent)
- {
- }
-
- template <typename Node, typename IsReverse>
- inline typename binary_child_iterator<Node,IsReverse>::reference
- binary_child_iterator<Node,IsReverse>::operator*() const
- {
- return *this->_current;
- }
-
- template <typename Node, typename IsReverse>
- inline typename binary_child_iterator<Node,IsReverse>::pointer
- binary_child_iterator<Node,IsReverse>::operator->() const
- {
- return this->_current;
- }
-
- template <typename Node, typename IsReverse>
- inline typename binary_child_iterator<Node,IsReverse>::proxy
- binary_child_iterator<Node,IsReverse>::operator[](
- difference_type n
- ) const
- {
- return proxy(this->_current, n);
- }
-
- template <typename Node, typename IsReverse>
- inline binary_child_iterator<Node,IsReverse>&
- binary_child_iterator<Node,IsReverse>::operator++()
- {
- this->_iterate(
- IsReverse::value
- ? this->_parent->get_left_child_ptr()
- : this->_parent->get_right_child_ptr()
- );
- return *this;
- }
-
- template <typename Node, typename IsReverse>
- binary_child_iterator<Node,IsReverse>
- binary_child_iterator<Node,IsReverse>::operator++(int)
- {
- binary_child_iterator itr(*this);
- ++(*this);
- return itr;
- }
-
- template <typename Node, typename IsReverse>
- inline binary_child_iterator<Node,IsReverse>&
- binary_child_iterator<Node,IsReverse>::operator--()
- {
- if (this->_current)
- {
- this->_iterate(
- IsReverse::value
- ? this->_parent->get_right_child_ptr()
- : this->_parent->get_left_child_ptr()
- );
- }
- else if (IsReverse::value)
- {
- this->_current = this->_parent->get_left_child_ptr();
-
- if (!this->_current)
- {
- this->_current = this->_parent->get_right_child_ptr();
- }
- }
- else
- {
- this->_current = this->_parent->get_right_child_ptr();
-
- if (!this->_current)
- {
- this->_current = this->_parent->get_left_child_ptr();
- }
- }
-
- BOOST_ASSERT_MSG(this->_current, "Result not dereferenceable.");
- return *this;
- }
-
- template <typename Node, typename IsReverse>
- binary_child_iterator<Node,IsReverse>
- binary_child_iterator<Node,IsReverse>::operator--(int)
- {
- binary_child_iterator itr(*this);
- --(*this);
- return itr;
- }
-
- template <typename Node, typename IsReverse>
- inline binary_child_iterator<Node,IsReverse>&
- binary_child_iterator<Node,IsReverse>::operator+=(difference_type n)
- {
- this->_advance(n);
- return *this;
- }
-
- template <typename Node, typename IsReverse>
- binary_child_iterator<Node,IsReverse>
- binary_child_iterator<Node,IsReverse>::operator+(
- difference_type n
- ) const
- {
- binary_child_iterator itr(*this);
- itr += n;
- return itr;
- }
-
- template <typename Node, typename IsReverse>
- inline binary_child_iterator<Node,IsReverse>&
- binary_child_iterator<Node,IsReverse>::operator-=(difference_type n)
- {
- this->_advance(-n);
- return *this;
- }
-
- template <typename Node, typename IsReverse>
- binary_child_iterator<Node,IsReverse>
- binary_child_iterator<Node,IsReverse>::operator-(
- difference_type n
- ) const
- {
- binary_child_iterator itr(*this);
- itr -= n;
- return itr;
- }
-
- template <typename Node, typename IsReverse>
- inline void
- binary_child_iterator<Node,IsReverse>::_iterate(pointer const& sibling)
- {
- this->_current = (
- this->_current == sibling
- ) ? ::boost::initialized_value : sibling;
- }
-
- template <typename Node, typename IsReverse>
- inline void
- binary_child_iterator<Node,IsReverse>::_advance(difference_type n)
- {
- switch (n)
- {
- case -2:
- {
- BOOST_ASSERT_MSG(
- (
- IsReverse::value
- ? (
- (
- this->_current == (
- this->_parent->get_left_child_ptr()
- )
- ) && this->_parent->get_right_child_ptr()
- )
- : (
- (
- this->_current == (
- this->_parent->get_right_child_ptr()
- )
- ) && this->_parent->get_left_child_ptr()
- )
- )
- , "n must be greater than -2."
- );
-
- this->_current = ::boost::initialized_value;
- break;
- }
-
- case -1:
- {
- --(*this);
- break;
- }
-
- case 0:
- {
- break;
- }
-
- case 1:
- {
- ++(*this);
- break;
- }
-
- case 2:
- {
- BOOST_ASSERT_MSG(
- (
- IsReverse::value
- ? (
- (
- this->_current == (
- this->_parent->get_right_child_ptr()
- )
- ) && this->_parent->get_left_child_ptr()
- )
- : (
- (
- this->_current == (
- this->_parent->get_left_child_ptr()
- )
- ) && this->_parent->get_right_child_ptr()
- )
- )
- , "n must be less than 2."
- );
-
- this->_current = ::boost::initialized_value;
- break;
- }
-
- default:
- {
- BOOST_ASSERT_MSG(false, "|n| must be less than 3.");
- }
- }
- }
-
- template <typename Node1, typename IsR1, typename Node2, typename IsR2>
- inline
-#if defined BOOST_NO_SFINAE
- bool
-#else
- typename ::boost::enable_if< ::boost::mpl::equal_to<IsR1,IsR2>,bool>::type
-#endif
- operator==(
- binary_child_iterator<Node1,IsR1> const& lhs
- , binary_child_iterator<Node2,IsR2> const& rhs
- )
- {
- return lhs._current == rhs._current;
- }
-
- template <typename Node1, typename IsR1, typename Node2, typename IsR2>
- inline
-#if defined BOOST_NO_SFINAE
- bool
-#else
- typename ::boost::enable_if< ::boost::mpl::equal_to<IsR1,IsR2>,bool>::type
-#endif
- operator!=(
- binary_child_iterator<Node1,IsR1> const& lhs
- , binary_child_iterator<Node2,IsR2> const& rhs
- )
- {
- return !(lhs == rhs);
- }
-
- template <typename Node1, typename IsR1, typename Node2, typename IsR2>
- inline
-#if defined BOOST_NO_SFINAE
- bool
-#else
- typename ::boost::enable_if< ::boost::mpl::equal_to<IsR1,IsR2>,bool>::type
-#endif
- operator<(
- binary_child_iterator<Node1,IsR1> const& lhs
- , binary_child_iterator<Node2,IsR2> const& rhs
- )
- {
- BOOST_ASSERT_MSG(lhs._parent, "lhs is unreachable.");
- BOOST_ASSERT_MSG(rhs._parent, "rhs is unreachable.");
- BOOST_ASSERT_MSG(
- rhs._parent == lhs._parent
- , "Neither iterator is reachable from one other."
- );
-
- if (lhs._current)
- {
- if (rhs._current)
- {
- return rhs._current == lhs._parent->get_right_child_ptr();
- }
- else
- {
- return true;
- }
- }
- else
- {
- return false;
- }
- }
-
- template <typename Node1, typename IsR1, typename Node2, typename IsR2>
- inline
-#if defined BOOST_NO_SFINAE
- bool
-#else
- typename ::boost::enable_if< ::boost::mpl::equal_to<IsR1,IsR2>,bool>::type
-#endif
- operator>(
- binary_child_iterator<Node1,IsR1> const& lhs
- , binary_child_iterator<Node2,IsR2> const& rhs
- )
- {
- return rhs < lhs;
- }
-
- template <typename Node1, typename IsR1, typename Node2, typename IsR2>
- inline
-#if defined BOOST_NO_SFINAE
- bool
-#else
- typename ::boost::enable_if< ::boost::mpl::equal_to<IsR1,IsR2>,bool>::type
-#endif
- operator<=(
- binary_child_iterator<Node1,IsR1> const& lhs
- , binary_child_iterator<Node2,IsR2> const& rhs
- )
- {
- return !(rhs < lhs);
- }
-
- template <typename Node1, typename IsR1, typename Node2, typename IsR2>
- inline
-#if defined BOOST_NO_SFINAE
- bool
-#else
- typename ::boost::enable_if< ::boost::mpl::equal_to<IsR1,IsR2>,bool>::type
-#endif
- operator>=(
- binary_child_iterator<Node1,IsR1> const& lhs
- , binary_child_iterator<Node2,IsR2> const& rhs
- )
- {
- return !(lhs < rhs);
- }
-
- template <typename Node, typename IsReverse>
- inline binary_child_iterator<Node,IsReverse>
- operator+(
- typename binary_child_iterator<Node,IsReverse>::difference_type n
- , binary_child_iterator<Node,IsReverse> const& itr
- )
- {
- return itr + n;
- }
-
- template <typename Node1, typename IsR1, typename Node2, typename IsR2>
- inline ::std::ptrdiff_t
- operator-(
- binary_child_iterator<Node1,IsR1> const& lhs
- , binary_child_iterator<Node2,IsR2> const& rhs
- )
- {
- BOOST_ASSERT_MSG(lhs._parent, "lhs is unreachable.");
- BOOST_ASSERT_MSG(rhs._parent, "rhs is unreachable.");
- BOOST_ASSERT_MSG(
- rhs._parent == lhs._parent
- , "Neither iterator is reachable from one other."
- );
-
- if (lhs._current == rhs._current)
- {
- return 0;
- }
- else if (lhs._current)
- {
- if (rhs._current)
- {
- return (
- rhs._current == lhs._parent->get_left_child_ptr()
- ) ? 1 : -1;
- }
- else
- {
- return (
- lhs._parent->get_left_child_ptr() && (
- lhs._parent->get_right_child_ptr()
- )
- ) ? 2 : 1;
- }
- }
- else
- {
- return (
- rhs._parent->get_left_child_ptr() && (
- rhs._parent->get_right_child_ptr()
- )
- ) ? -2 : -1;
- }
- }
-}}} // namespace boost::tree_node::_detail
-
-namespace boost { namespace tree_node {
-
- template <typename Derived, typename T, typename Size, typename Allocator>
- class binary_node_base
- : public
- //[reference__binary_node_base__bases
- tree_node_base<Derived>
- //]
-#if defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- , public data_key
-#endif
- , private ::boost::noncopyable
- {
- template <typename D>
- friend struct binary_node_traits;
-
- typedef binary_node_base<Derived,T,Size,Allocator> self;
-
- public:
- //[reference__binary_node_base__super_t
- typedef tree_node_base<Derived> super_t;
- //]
-
- //[reference__binary_node_base__traits
- struct traits
- {
- typedef T
- data_type;
- typedef typename ::std::tr1::remove_reference<Allocator>::type
- allocator;
- typedef typename ::boost::mpl::if_<
- ::std::tr1::is_reference<Allocator>
- , Allocator
- , typename ::std::tr1::add_reference<
- typename ::std::tr1::add_const<Allocator>::type
- >::type
- >::type
- allocator_reference;
- };
- //]
-
- //[reference__binary_node_base__pointer
- typedef typename super_t::pointer pointer;
- //]
-
- //[reference__binary_node_base__const_pointer
- typedef typename super_t::const_pointer const_pointer;
- //]
-
- typedef _detail::binary_child_iterator<Derived,::boost::mpl::false_>
- iterator;
- typedef _detail::binary_child_iterator<
- Derived const
- , ::boost::mpl::false_
- >
- const_iterator;
- typedef _detail::binary_child_iterator<Derived,::boost::mpl::true_>
- reverse_iterator;
- typedef _detail::binary_child_iterator<
- Derived const
- , ::boost::mpl::true_
- >
- const_reverse_iterator;
-
- //[reference__binary_node_base__size_type
- typedef Size size_type;
- //]
-
- private:
- typename traits::data_type _data;
- Allocator _allocator;
- pointer _left_child;
- pointer _right_child;
- pointer _parent;
-
- protected:
- //[reference__binary_node_base__derived_copy_ctor
- binary_node_base(Derived const& copy);
- //]
-
- //[reference__binary_node_base__derived_copy_ctor_w_allocator
- binary_node_base(
- Derived const& copy
- , typename traits::allocator_reference allocator
- );
- //]
-
-#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- binary_node_base(BOOST_RV_REF(Derived) source);
-
- binary_node_base(
- BOOST_RV_REF(Derived) source
- , typename traits::allocator_reference allocator
- );
-#endif
-
-#if defined BOOST_CONTAINER_PERFECT_FORWARDING
- //[reference__binary_node_base__emplacement_ctor
- template <typename ...Args>
- explicit binary_node_base(Args&& ...args);
- //]
-
- //[reference__binary_node_base__emplacement_ctor_w_allocator
- template <typename ...Args>
- explicit binary_node_base(
- ::boost::container::allocator_arg_t
- , typename traits::allocator_reference allocator
- , Args&& ...args
- );
- //]
-#else // !defined BOOST_CONTAINER_PERFECT_FORWARDING
- BOOST_PP_REPEAT(
- BOOST_CONTAINER_MAX_CONSTRUCTOR_PARAMETERS
- , BOOST_TREE_NODE_EMPLACEMENT_CTOR_FWD_DECL
- , binary_node_base
- )
-
- BOOST_PP_REPEAT(
- BOOST_CONTAINER_MAX_CONSTRUCTOR_PARAMETERS
- , BOOST_TREE_NODE_EMPLACEMENT_CTOR_W_ALLOC_FWD_DECL
- , binary_node_base
- )
-#endif // BOOST_CONTAINER_PERFECT_FORWARDING
-
- ~binary_node_base();
-
- //[reference__binary_node_base__clone_descendants
- void clone_descendants(Derived const& copy);
- //]
-
- //[reference__binary_node_base__copy_assign
- void copy_assign(Derived const& copy);
- //]
-
-#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- void move_descendants(BOOST_RV_REF(Derived) source);
-
- void move_assign(BOOST_RV_REF(Derived) source);
-#endif
-
- //[reference__binary_node_base__on_post_assign
- void on_post_assign();
- //]
-
- public:
- //[reference__binary_node_base__key_value_operator__const
- typename traits::data_type const& operator[](data_key const&) const;
-
-//<-
-#if defined BOOST_TREE_NODE_CAN_USE_FUSION
-//->
- template <typename FusionKey>
- typename ::boost::lazy_enable_if<
- typename ::boost::mpl::if_<
- typename ::boost::mpl::eval_if<
- typename ::boost::fusion::traits::is_sequence<T>::type
- , ::boost::fusion::traits::is_associative<T>
- , ::boost::mpl::false_
- >::type
- , result_of::has_key<
- binary_node_base<Derived,T,Size,Allocator>
- , FusionKey
- >
- , ::boost::mpl::false_
- >::type
- , ::boost::fusion::result_of::at_key<T const,FusionKey>
- >::type
- operator[](FusionKey const&) const;
-//<-
-#endif // BOOST_TREE_NODE_CAN_USE_FUSION
-//->
- //]
-
- //[reference__binary_node_base__key_value_operator
- typename traits::data_type& operator[](data_key const&);
-
-//<-
-#if defined BOOST_TREE_NODE_CAN_USE_FUSION
-//->
- template <typename FusionKey>
- typename ::boost::lazy_enable_if<
- typename ::boost::mpl::if_<
- typename ::boost::mpl::eval_if<
- typename ::boost::fusion::traits::is_sequence<T>::type
- , ::boost::fusion::traits::is_associative<T>
- , ::boost::mpl::false_
- >::type
- , result_of::has_key<
- binary_node_base<Derived,T,Size,Allocator>
- , FusionKey
- >
- , ::boost::mpl::false_
- >::type
- , ::boost::fusion::result_of::at_key<T,FusionKey>
- >::type
- operator[](FusionKey const&);
-//<-
-#endif // BOOST_TREE_NODE_CAN_USE_FUSION
-//->
- //]
-
- //[reference__binary_node_base__get_parent_ptr__const
- const_pointer get_parent_ptr() const;
- //]
-
- //[reference__binary_node_base__get_parent_ptr
- pointer get_parent_ptr();
- //]
-
- //[reference__binary_node_base__get_left_child_ptr__const
- const_pointer get_left_child_ptr() const;
- //]
-
- //[reference__binary_node_base__get_left_child_ptr
- pointer get_left_child_ptr();
- //]
-
- //[reference__binary_node_base__get_right_child_ptr__const
- const_pointer get_right_child_ptr() const;
- //]
-
- //[reference__binary_node_base__get_right_child_ptr
- pointer get_right_child_ptr();
- //]
-
- //[reference__binary_node_base__cbegin
- const_iterator cbegin() const;
- const_iterator begin() const;
- //]
-
- //[reference__binary_node_base__begin
- iterator begin();
- //]
-
- //[reference__binary_node_base__cend
- const_iterator cend() const;
- const_iterator end() const;
- //]
-
- //[reference__binary_node_base__end
- iterator end();
- //]
-
- //[reference__binary_node_base__crbegin
- const_reverse_iterator crbegin() const;
- const_reverse_iterator rbegin() const;
- //]
-
- //[reference__binary_node_base__rbegin
- reverse_iterator rbegin();
- //]
-
- //[reference__binary_node_base__crend
- const_reverse_iterator crend() const;
- const_reverse_iterator rend() const;
- //]
-
- //[reference__binary_node_base__rend
- reverse_iterator rend();
- //]
-
- //[reference__binary_node_base__size
- size_type size() const;
- //]
-
- //[reference__binary_node_base__empty
- bool empty() const;
- //]
-
- //[reference__binary_node_base__clear
- void clear();
- //]
-
- //[reference__binary_node_base__insert_left
- iterator insert_left(Derived const& child);
- //]
-
-#if defined BOOST_CONTAINER_PERFECT_FORWARDING
- //[reference__binary_node_base__emplace_left
- template <typename ...Args>
- iterator emplace_left(Args&& ...args);
- //]
-#else // !defined BOOST_CONTAINER_PERFECT_FORWARDING
-#define BOOST_TREE_NODE_BINARY_NODE_MACRO(z, n, _) \
- BOOST_PP_EXPR_IF(n, template <) \
- BOOST_PP_ENUM_PARAMS_Z(z, n, typename P) \
- BOOST_PP_EXPR_IF(n, >) \
- iterator \
- emplace_left( \
- BOOST_PP_CAT(BOOST_PP_ENUM_, z)( \
- n \
- , BOOST_CONTAINER_PP_PARAM_LIST \
- , _ \
- ) \
- ); \
-//!
- BOOST_PP_REPEAT(
- BOOST_CONTAINER_MAX_CONSTRUCTOR_PARAMETERS
- , BOOST_TREE_NODE_BINARY_NODE_MACRO
- , _
- )
-#undef BOOST_TREE_NODE_BINARY_NODE_MACRO
-#endif // BOOST_CONTAINER_PERFECT_FORWARDING
-
- //[reference__binary_node_base__insert_right
- iterator insert_right(Derived const& child);
- //]
-
-#if defined BOOST_CONTAINER_PERFECT_FORWARDING
- //[reference__binary_node_base__emplace_right
- template <typename ...Args>
- iterator emplace_right(Args&& ...args);
- //]
-#else // !defined BOOST_CONTAINER_PERFECT_FORWARDING
-#define BOOST_TREE_NODE_BINARY_NODE_MACRO(z, n, _) \
- BOOST_PP_EXPR_IF(n, template <) \
- BOOST_PP_ENUM_PARAMS_Z(z, n, typename P) \
- BOOST_PP_EXPR_IF(n, >) \
- iterator \
- emplace_right( \
- BOOST_PP_CAT(BOOST_PP_ENUM_, z)( \
- n \
- , BOOST_CONTAINER_PP_PARAM_LIST \
- , _ \
- ) \
- ); \
-//!
- BOOST_PP_REPEAT(
- BOOST_CONTAINER_MAX_CONSTRUCTOR_PARAMETERS
- , BOOST_TREE_NODE_BINARY_NODE_MACRO
- , _
- )
-#undef BOOST_TREE_NODE_BINARY_NODE_MACRO
-#endif // BOOST_CONTAINER_PERFECT_FORWARDING
-
- //[reference__binary_node_base__rotate_left
- pointer rotate_left();
- //]
-
- //[reference__binary_node_base__rotate_right
- pointer rotate_right();
- //]
-
- //[reference__binary_node_base__erase_left
- bool erase_left();
- //]
-
- //[reference__binary_node_base__erase_right
- bool erase_right();
- //]
-
- private:
-#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- static typename traits::allocator_reference
- _construct_from(
- typename traits::allocator_reference allocator
- , ::std::tr1::true_type
- );
-
- static Allocator
- _construct_from(
- typename traits::allocator_reference allocator
- , ::std::tr1::false_type
- );
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
- static bool
- _clone_data(
- pointer& p
- , const_pointer const& c_p
- , Allocator& allocator
- );
-
- static bool
- _move(pointer& dest_p, pointer& src_p, Allocator& allocator);
-
- static void _destroy(pointer const& p, Allocator& allocator);
-
- static bool _erase(pointer& p, Allocator& allocator);
-
- static iterator _on_post_inserted(pointer const& child);
-
- void _clone_descendants(Derived const& copy);
-
- void _move_descendants(Derived& source);
-
- void _on_post_modify_value(data_key const& key);
-
- void _set_parent_ptr(pointer p);
-
- void _set_left_child_ptr(pointer p);
-
- void _set_right_child_ptr(pointer p);
-
- template <typename D, typename T0, typename S, typename A, typename V>
- friend void
- put(binary_node_base<D,T0,S,A>&, data_key const&, V const&);
-
-#if defined BOOST_TREE_NODE_CAN_USE_FUSION
- template <typename FusionKey>
- void _on_post_modify_value(FusionKey const& key);
-
- template <
- typename D
- , typename T0
- , typename S
- , typename A
- , typename FK
- , typename V
- >
- friend void
- put(
- binary_node_base<D,T0,S,A>& node
- , FK const& key
- , V const& value
- , typename ::boost::enable_if<
- typename ::boost::mpl::if_<
- typename ::boost::mpl::eval_if<
- typename ::boost::fusion::traits::is_sequence<T0>::type
- , ::boost::fusion::traits::is_associative<T0>
- , ::boost::mpl::false_
- >::type
- , result_of::has_key<binary_node_base<D,T0,S,A>,FK>
- , ::boost::mpl::false_
- >::type
- , ::boost::mpl::true_
- >::type
- );
-#endif // BOOST_TREE_NODE_CAN_USE_FUSION
- };
-
- template <typename Derived, typename T, typename Size, typename Allocator>
- binary_node_base<Derived,T,Size,Allocator>::binary_node_base(
- Derived const& copy
- ) : _data(copy._data)
- , _allocator(
-#if defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- copy._allocator
-#else
- ::boost::container::allocator_traits<
- typename traits::allocator
- >::select_on_container_copy_construction(copy._allocator)
-#endif
- )
- , _left_child(::boost::initialized_value)
- , _right_child(::boost::initialized_value)
- , _parent(::boost::initialized_value)
- {
- }
-
- template <typename Derived, typename T, typename Size, typename Allocator>
- binary_node_base<Derived,T,Size,Allocator>::binary_node_base(
- Derived const& copy
- , typename traits::allocator_reference allocator
- ) : _data(copy._data)
- , _allocator(
-#if defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- allocator
-#else
- this->_construct_from(
- allocator
- , typename ::std::tr1::is_reference<Allocator>::type()
- )
-#endif
- )
- , _left_child(::boost::initialized_value)
- , _right_child(::boost::initialized_value)
- , _parent(::boost::initialized_value)
- {
- }
-
-#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- template <typename Derived, typename T, typename Size, typename Allocator>
- binary_node_base<Derived,T,Size,Allocator>::binary_node_base(
- BOOST_RV_REF(Derived) source
- ) : _data(::boost::move(source._data))
- , _allocator(::boost::move(source._allocator))
- , _left_child(source._left_child)
- , _right_child(source._right_child)
- , _parent(::boost::initialized_value)
- {
- source._left_child = source._right_child = ::boost::initialized_value;
- }
-
- template <typename Derived, typename T, typename Size, typename Allocator>
- binary_node_base<Derived,T,Size,Allocator>::binary_node_base(
- BOOST_RV_REF(Derived) source
- , typename traits::allocator_reference allocator
- ) : _data(::boost::move(source._data))
- , _allocator(
- this->_construct_from(
- allocator
- , typename ::std::tr1::is_reference<Allocator>::type()
- )
- )
- , _left_child(source._left_child)
- , _right_child(source._right_child)
- , _parent(::boost::initialized_value)
- {
- source._left_child = source._right_child = ::boost::initialized_value;
- }
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-#if defined BOOST_CONTAINER_PERFECT_FORWARDING
- template <typename Derived, typename T, typename Size, typename Allocator>
- template <typename ...Args>
- binary_node_base<Derived,T,Size,Allocator>::binary_node_base(
- Args&& ...args
- ) : _data(::boost::forward<Args>(args)...)
- , _allocator()
- , _left_child(::boost::initialized_value)
- , _right_child(::boost::initialized_value)
- , _parent(::boost::initialized_value)
- {
- }
-
- template <typename Derived, typename T, typename Size, typename Allocator>
- template <typename ...Args>
- binary_node_base<Derived,T,Size,Allocator>::binary_node_base(
- ::boost::container::allocator_arg_t
- , typename traits::allocator_reference allocator
- , Args&& ...args
- ) : _data(::boost::forward<Args>(args)...)
- , _allocator(
- this->_construct_from(
- allocator
- , typename ::std::tr1::is_reference<Allocator>::type()
- )
- )
- , _left_child(::boost::initialized_value)
- , _right_child(::boost::initialized_value)
- , _parent(::boost::initialized_value)
- {
- }
-#else // !defined BOOST_CONTAINER_PERFECT_FORWARDING
-#define BOOST_TREE_NODE_BINARY_NODE_MACRO(z, n, _) \
- template < \
- typename Derived \
- , typename T \
- , typename Size \
- , typename Allocator \
- > \
- BOOST_PP_EXPR_IF(n, template <) \
- BOOST_PP_ENUM_PARAMS_Z(z, n, typename P) \
- BOOST_PP_EXPR_IF(n, >) \
- binary_node_base<Derived,T,Size,Allocator>::binary_node_base( \
- BOOST_PP_CAT(BOOST_PP_ENUM_, z)( \
- n \
- , BOOST_CONTAINER_PP_PARAM_LIST \
- , _ \
- ) \
- ) : _data( \
- BOOST_PP_CAT(BOOST_PP_ENUM_, z)( \
- n \
- , BOOST_CONTAINER_PP_PARAM_FORWARD \
- , _ \
- ) \
- ) \
- , _allocator() \
- , _left_child(::boost::initialized_value) \
- , _right_child(::boost::initialized_value) \
- , _parent(::boost::initialized_value) \
- { \
- } \
-//!
- BOOST_PP_REPEAT(
- BOOST_CONTAINER_MAX_CONSTRUCTOR_PARAMETERS
- , BOOST_TREE_NODE_BINARY_NODE_MACRO
- , _
- )
-#undef BOOST_TREE_NODE_BINARY_NODE_MACRO
-
-#define BOOST_TREE_NODE_BINARY_NODE_MACRO(z, n, _) \
- template < \
- typename Derived \
- , typename T \
- , typename Size \
- , typename Allocator \
- > \
- BOOST_PP_EXPR_IF(n, template <) \
- BOOST_PP_ENUM_PARAMS_Z(z, n, typename P) \
- BOOST_PP_EXPR_IF(n, >) \
- binary_node_base<Derived,T,Size,Allocator>::binary_node_base( \
- ::boost::container::allocator_arg_t \
- , typename traits::allocator_reference allocator \
- BOOST_PP_CAT(BOOST_PP_ENUM_TRAILING_, z)( \
- n \
- , BOOST_CONTAINER_PP_PARAM_LIST \
- , _ \
- ) \
- ) : _data( \
- BOOST_PP_CAT(BOOST_PP_ENUM_, z)( \
- n \
- , BOOST_CONTAINER_PP_PARAM_FORWARD \
- , _ \
- ) \
- ) \
- , _allocator( \
- this->_construct_from( \
- allocator \
- , typename ::std::tr1::is_reference<Allocator>::type() \
- ) \
- ) \
- , _left_child(::boost::initialized_value) \
- , _right_child(::boost::initialized_value) \
- , _parent(::boost::initialized_value) \
- { \
- } \
-//!
- BOOST_PP_REPEAT(
- BOOST_CONTAINER_MAX_CONSTRUCTOR_PARAMETERS
- , BOOST_TREE_NODE_BINARY_NODE_MACRO
- , _
- )
-#undef BOOST_TREE_NODE_BINARY_NODE_MACRO
-#endif // BOOST_CONTAINER_PERFECT_FORWARDING
-
- template <typename Derived, typename T, typename Size, typename Allocator>
- binary_node_base<Derived,T,Size,Allocator>::~binary_node_base()
- {
- if (this->_left_child)
- {
- self::_destroy(this->_left_child, this->_allocator);
- }
-
- if (this->_right_child)
- {
- self::_destroy(this->_right_child, this->_allocator);
- }
- }
-
- template <typename Derived, typename T, typename Size, typename Allocator>
- inline void
- binary_node_base<Derived,T,Size,Allocator>::clone_descendants(
- Derived const& copy
- )
- {
- this->_clone_descendants(copy);
- }
-
- template <typename Derived, typename T, typename Size, typename Allocator>
- void
- binary_node_base<Derived,T,Size,Allocator>::copy_assign(
- Derived const& copy
- )
- {
- Derived twin(copy._data);
-
- twin._clone_descendants(copy);
- this->_data = twin._data;
- this->_move_descendants(twin);
- this->clone_metadata(copy);
- }
-
-#if defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-#else // !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- template <typename Derived, typename T, typename Size, typename Allocator>
- inline void
- binary_node_base<Derived,T,Size,Allocator>::move_descendants(
- BOOST_RV_REF(Derived) source
- )
- {
- if (this->_left_child)
- {
- this->_left_child->_parent = this->get_derived();
- }
-
- if (this->_right_child)
- {
- this->_right_child->_parent = this->get_derived();
- }
-
- source.on_post_clear();
- }
-
- template <typename Derived, typename T, typename Size, typename Allocator>
- inline void
- binary_node_base<Derived,T,Size,Allocator>::move_assign(
- BOOST_RV_REF(Derived) source
- )
- {
- this->_data = ::boost::move(source._data);
- this->_move_descendants(static_cast<Derived&>(source));
-#if defined BOOST_NO_RVALUE_REFERENCES
- this->move_metadata(source);
-#else
- this->move_metadata(static_cast<Derived&&>(source));
-#endif
- source.on_post_clear();
- }
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
- template <typename Derived, typename T, typename Size, typename Allocator>
- inline void
- binary_node_base<Derived,T,Size,Allocator>::on_post_assign()
- {
- if (this->_parent)
- {
- this->_parent->on_post_propagate_value(data_key());
- }
- }
-
- template <typename Derived, typename T, typename Size, typename Allocator>
- inline typename binary_node_base<
- Derived
- , T
- , Size
- , Allocator
- >::traits::data_type const&
- binary_node_base<Derived,T,Size,Allocator>::operator[](
- data_key const&
- ) const
- {
- return this->_data;
- }
-
- template <typename Derived, typename T, typename Size, typename Allocator>
- inline typename binary_node_base<
- Derived
- , T
- , Size
- , Allocator
- >::traits::data_type&
- binary_node_base<Derived,T,Size,Allocator>::operator[](data_key const&)
- {
- return this->_data;
- }
-
-#if defined BOOST_TREE_NODE_CAN_USE_FUSION
- template <typename Derived, typename T, typename Size, typename Allocator>
- template <typename FusionKey>
- inline typename ::boost::lazy_enable_if<
- typename ::boost::mpl::if_<
- typename ::boost::mpl::eval_if<
- typename ::boost::fusion::traits::is_sequence<T>::type
- , ::boost::fusion::traits::is_associative<T>
- , ::boost::mpl::false_
- >::type
- , result_of::has_key<
- binary_node_base<Derived,T,Size,Allocator>
- , FusionKey
- >
- , ::boost::mpl::false_
- >::type
- , ::boost::fusion::result_of::at_key<T const,FusionKey>
- >::type
- binary_node_base<Derived,T,Size,Allocator>::operator[](
- FusionKey const&
- ) const
- {
- return ::boost::fusion::at_key<FusionKey>(this->_data);
- }
-
- template <typename Derived, typename T, typename Size, typename Allocator>
- template <typename FusionKey>
- inline typename ::boost::lazy_enable_if<
- typename ::boost::mpl::if_<
- typename ::boost::mpl::eval_if<
- typename ::boost::fusion::traits::is_sequence<T>::type
- , ::boost::fusion::traits::is_associative<T>
- , ::boost::mpl::false_
- >::type
- , result_of::has_key<
- binary_node_base<Derived,T,Size,Allocator>
- , FusionKey
- >
- , ::boost::mpl::false_
- >::type
- , ::boost::fusion::result_of::at_key<T,FusionKey>
- >::type
- binary_node_base<Derived,T,Size,Allocator>::operator[](
- FusionKey const&
- )
- {
- return ::boost::fusion::at_key<FusionKey>(this->_data);
- }
-#endif // BOOST_TREE_NODE_CAN_USE_FUSION
-
- template <typename Derived, typename T, typename Size, typename Allocator>
- inline typename binary_node_base<Derived,T,Size,Allocator>::const_pointer
- binary_node_base<Derived,T,Size,Allocator>::get_parent_ptr() const
- {
- return this->_parent;
- }
-
- template <typename Derived, typename T, typename Size, typename Allocator>
- inline typename binary_node_base<Derived,T,Size,Allocator>::pointer
- binary_node_base<Derived,T,Size,Allocator>::get_parent_ptr()
- {
- return this->_parent;
- }
-
- template <typename Derived, typename T, typename Size, typename Allocator>
- typename binary_node_base<Derived,T,Size,Allocator>::iterator
- binary_node_base<Derived,T,Size,Allocator>::insert_left(
- Derived const& child
- )
- {
-#if defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- pointer p(this->_allocator.allocate(1));
- this->_allocator.construct(p, child._data);
-#else // !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- pointer p(
- ::boost::container::allocator_traits<
- typename traits::allocator
- >::allocate(this->_allocator, 1)
- );
- ::boost::container::allocator_traits<
- typename traits::allocator
- >::construct(this->_allocator, p, child._data);
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- p->_clone_descendants(child);
- p->clone_metadata(child);
-
- pointer c = p->_left_child;
-
- if (c)
- {
- while (c->_left_child)
- {
- c = c->_left_child;
- }
-
- this->_left_child->_parent = c;
- self::_on_post_inserted(c->_left_child = this->_left_child);
- this->_left_child = ::boost::initialized_value;
- this->on_post_erase();
- }
-
- p->_parent = this->get_derived();
- return self::_on_post_inserted(this->_left_child = p);
- }
-
-#if defined BOOST_CONTAINER_PERFECT_FORWARDING
- template <typename Derived, typename T, typename Size, typename Allocator>
- template <typename ...Args>
- typename binary_node_base<Derived,T,Size,Allocator>::iterator
- binary_node_base<Derived,T,Size,Allocator>::emplace_left(
- Args&& ...args
- )
- {
- if (this->_left_child)
- {
-#if defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- pointer p(this->_allocator.allocate(1));
- this->_allocator.construct(p, ::boost::forward<Args>(args)...);
-#else // !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- pointer p(
- ::boost::container::allocator_traits<
- typename traits::allocator
- >::allocate(this->_allocator, 1)
- );
- ::boost::container::allocator_traits<
- typename traits::allocator
- >::construct(this->_allocator, p, ::boost::forward<Args>(args)...);
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- this->_left_child->_parent = p;
- self::_on_post_inserted(p->_left_child = this->_left_child);
- this->_left_child = ::boost::initialized_value;
- this->on_post_erase();
- p->_parent = this->get_derived();
- return self::_on_post_inserted(this->_left_child = p);
- }
- else
- {
-#if defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- this->_allocator.construct(
- this->_left_child = this->_allocator.allocate(1)
- , ::boost::forward<Args>(args)...
- );
-#else // !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- ::boost::container::allocator_traits<
- typename traits::allocator
- >::construct(
- this->_allocator
- , this->_left_child = ::boost::container::allocator_traits<
- typename traits::allocator
- >::allocate(this->_allocator, 1)
- , ::boost::forward<Args>(args)...
- );
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- this->_left_child->_parent = this->get_derived();
- return self::_on_post_inserted(this->_left_child);
- }
- }
-#else // !defined BOOST_CONTAINER_PERFECT_FORWARDING
-#if defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-#define BOOST_TREE_NODE_BINARY_NODE_MACRO(z, n, _) \
- template < \
- typename Derived \
- , typename T \
- , typename Size \
- , typename Allocator \
- > \
- BOOST_PP_EXPR_IF(n, template <) \
- BOOST_PP_ENUM_PARAMS_Z(z, n, typename P) \
- BOOST_PP_EXPR_IF(n, >) \
- typename binary_node_base<Derived,T,Size,Allocator>::iterator \
- binary_node_base<Derived,T,Size,Allocator>::emplace_left( \
- BOOST_PP_CAT(BOOST_PP_ENUM_, z)( \
- n \
- , BOOST_CONTAINER_PP_PARAM_LIST \
- , _ \
- ) \
- ) \
- { \
- if (this->_left_child) \
- { \
- pointer p(this->_allocator.allocate(1)); \
- this->_allocator.construct( \
- p \
- BOOST_PP_CAT(BOOST_PP_ENUM_TRAILING_, z)( \
- n \
- , BOOST_CONTAINER_PP_PARAM_FORWARD \
- , _ \
- ) \
- ); \
- this->_left_child->_parent = p; \
- self::_on_post_inserted(p->_left_child = this->_left_child); \
- this->_left_child = ::boost::initialized_value; \
- this->on_post_erase(); \
- p->_parent = this->get_derived(); \
- return self::_on_post_inserted(this->_left_child = p); \
- } \
- else \
- { \
- this->_allocator.construct( \
- this->_left_child = this->_allocator.allocate(1) \
- BOOST_PP_CAT(BOOST_PP_ENUM_TRAILING_, z)( \
- n \
- , BOOST_CONTAINER_PP_PARAM_FORWARD \
- , _ \
- ) \
- ); \
- this->_left_child->_parent = this->get_derived(); \
- return self::_on_post_inserted(this->_left_child); \
- } \
- } \
-//!
-#else // !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-#define BOOST_TREE_NODE_BINARY_NODE_MACRO(z, n, _) \
- template < \
- typename Derived \
- , typename T \
- , typename Size \
- , typename Allocator \
- > \
- BOOST_PP_EXPR_IF(n, template <) \
- BOOST_PP_ENUM_PARAMS_Z(z, n, typename P) \
- BOOST_PP_EXPR_IF(n, >) \
- typename binary_node_base<Derived,T,Size,Allocator>::iterator \
- binary_node_base<Derived,T,Size,Allocator>::emplace_left( \
- BOOST_PP_CAT(BOOST_PP_ENUM_, z)( \
- n \
- , BOOST_CONTAINER_PP_PARAM_LIST \
- , _ \
- ) \
- ) \
- { \
- if (this->_left_child) \
- { \
- pointer p( \
- ::boost::container::allocator_traits< \
- typename traits::allocator \
- >::allocate(this->_allocator, 1) \
- ); \
- ::boost::container::allocator_traits< \
- typename traits::allocator \
- >::construct( \
- this->_allocator \
- , p \
- BOOST_PP_CAT(BOOST_PP_ENUM_TRAILING_, z)( \
- n \
- , BOOST_CONTAINER_PP_PARAM_FORWARD \
- , _ \
- ) \
- ); \
- this->_left_child->_parent = p; \
- self::_on_post_inserted(p->_left_child = this->_left_child); \
- this->_left_child = ::boost::initialized_value; \
- this->on_post_erase(); \
- p->_parent = this->get_derived(); \
- return self::_on_post_inserted(this->_left_child = p); \
- } \
- else \
- { \
- ::boost::container::allocator_traits< \
- typename traits::allocator \
- >::construct( \
- this->_allocator \
- , this->_left_child = ::boost::container::allocator_traits< \
- typename traits::allocator \
- >::allocate(this->_allocator, 1) \
- BOOST_PP_CAT(BOOST_PP_ENUM_TRAILING_, z)( \
- n \
- , BOOST_CONTAINER_PP_PARAM_FORWARD \
- , _ \
- ) \
- ); \
- this->_left_child->_parent = this->get_derived(); \
- return self::_on_post_inserted(this->_left_child); \
- } \
- } \
-//!
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- BOOST_PP_REPEAT(
- BOOST_CONTAINER_MAX_CONSTRUCTOR_PARAMETERS
- , BOOST_TREE_NODE_BINARY_NODE_MACRO
- , _
- )
-#undef BOOST_TREE_NODE_BINARY_NODE_MACRO
-#endif // BOOST_CONTAINER_PERFECT_FORWARDING
-
- template <typename Derived, typename T, typename Size, typename Allocator>
- typename binary_node_base<Derived,T,Size,Allocator>::iterator
- binary_node_base<Derived,T,Size,Allocator>::insert_right(
- Derived const& child
- )
- {
-#if defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- pointer p(this->_allocator.allocate(1));
- this->_allocator.construct(p, child._data);
-#else // !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- pointer p(
- ::boost::container::allocator_traits<
- typename traits::allocator
- >::allocate(this->_allocator, 1)
- );
- ::boost::container::allocator_traits<
- typename traits::allocator
- >::construct(this->_allocator, p, child._data);
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- p->_clone_descendants(child);
- p->clone_metadata(child);
-
- pointer c = p->_right_child;
-
- if (c)
- {
- while (c->_right_child)
- {
- c = c->_right_child;
- }
-
- this->_right_child->_parent = c;
- self::_on_post_inserted(c->_right_child = this->_right_child);
- this->_right_child = ::boost::initialized_value;
- this->on_post_erase();
- }
-
- p->_parent = this->get_derived();
- return self::_on_post_inserted(this->_right_child = p);
- }
-
-#if defined BOOST_CONTAINER_PERFECT_FORWARDING
- template <typename Derived, typename T, typename Size, typename Allocator>
- template <typename ...Args>
- typename binary_node_base<Derived,T,Size,Allocator>::iterator
- binary_node_base<Derived,T,Size,Allocator>::emplace_right(
- Args&& ...args
- )
- {
- if (this->_right_child)
- {
-#if defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- pointer p(this->_allocator.allocate(1));
- this->_allocator.construct(p, ::boost::forward<Args>(args)...);
-#else // !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- pointer p(
- ::boost::container::allocator_traits<
- typename traits::allocator
- >::allocate(this->_allocator, 1)
- );
- ::boost::container::allocator_traits<
- typename traits::allocator
- >::construct(this->_allocator, p, ::boost::forward<Args>(args)...);
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- this->_right_child->_parent = p;
- self::_on_post_inserted(p->_right_child = this->_right_child);
- this->_right_child = ::boost::initialized_value;
- this->on_post_erase();
- p->_parent = this->get_derived();
- return self::_on_post_inserted(this->_right_child = p);
- }
- else
- {
-#if defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- this->_allocator.construct(
- this->_right_child = this->_allocator.allocate(1)
- , ::boost::forward<Args>(args)...
- );
-#else // !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- ::boost::container::allocator_traits<
- typename traits::allocator
- >::construct(
- this->_allocator
- , this->_right_child = ::boost::container::allocator_traits<
- typename traits::allocator
- >::allocate(this->_allocator, 1)
- , ::boost::forward<Args>(args)...
- );
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- this->_right_child->_parent = this->get_derived();
- return self::_on_post_inserted(this->_right_child);
- }
- }
-#else // !defined BOOST_CONTAINER_PERFECT_FORWARDING
-#if defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-#define BOOST_TREE_NODE_BINARY_NODE_MACRO(z, n, _) \
- template < \
- typename Derived \
- , typename T \
- , typename Size \
- , typename Allocator \
- > \
- BOOST_PP_EXPR_IF(n, template <) \
- BOOST_PP_ENUM_PARAMS_Z(z, n, typename P) \
- BOOST_PP_EXPR_IF(n, >) \
- typename binary_node_base<Derived,T,Size,Allocator>::iterator \
- binary_node_base<Derived,T,Size,Allocator>::emplace_right( \
- BOOST_PP_CAT(BOOST_PP_ENUM_, z)( \
- n \
- , BOOST_CONTAINER_PP_PARAM_LIST \
- , _ \
- ) \
- ) \
- { \
- if (this->_right_child) \
- { \
- pointer p(this->_allocator.allocate(1)); \
- this->_allocator.construct( \
- p \
- BOOST_PP_CAT(BOOST_PP_ENUM_TRAILING_, z)( \
- n \
- , BOOST_CONTAINER_PP_PARAM_FORWARD \
- , _ \
- ) \
- ); \
- this->_right_child->_parent = p; \
- self::_on_post_inserted(p->_right_child = this->_right_child); \
- this->_right_child = ::boost::initialized_value; \
- this->on_post_erase(); \
- p->_parent = this->get_derived(); \
- return self::_on_post_inserted(this->_right_child = p); \
- } \
- else \
- { \
- this->_allocator.construct( \
- this->_right_child = this->_allocator.allocate(1) \
- BOOST_PP_CAT(BOOST_PP_ENUM_TRAILING_, z)( \
- n \
- , BOOST_CONTAINER_PP_PARAM_FORWARD \
- , _ \
- ) \
- ); \
- this->_right_child->_parent = this->get_derived(); \
- return self::_on_post_inserted(this->_right_child); \
- } \
- } \
-//!
-#else // !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-#define BOOST_TREE_NODE_BINARY_NODE_MACRO(z, n, _) \
- template < \
- typename Derived \
- , typename T \
- , typename Size \
- , typename Allocator \
- > \
- BOOST_PP_EXPR_IF(n, template <) \
- BOOST_PP_ENUM_PARAMS_Z(z, n, typename P) \
- BOOST_PP_EXPR_IF(n, >) \
- typename binary_node_base<Derived,T,Size,Allocator>::iterator \
- binary_node_base<Derived,T,Size,Allocator>::emplace_right( \
- BOOST_PP_CAT(BOOST_PP_ENUM_, z)( \
- n \
- , BOOST_CONTAINER_PP_PARAM_LIST \
- , _ \
- ) \
- ) \
- { \
- if (this->_right_child) \
- { \
- pointer p( \
- ::boost::container::allocator_traits< \
- typename traits::allocator \
- >::allocate(this->_allocator, 1) \
- ); \
- ::boost::container::allocator_traits< \
- typename traits::allocator \
- >::construct( \
- this->_allocator \
- , p \
- BOOST_PP_CAT(BOOST_PP_ENUM_TRAILING_, z)( \
- n \
- , BOOST_CONTAINER_PP_PARAM_FORWARD \
- , _ \
- ) \
- ); \
- this->_right_child->_parent = p; \
- self::_on_post_inserted(p->_right_child = this->_right_child); \
- this->_right_child = ::boost::initialized_value; \
- this->on_post_erase(); \
- p->_parent = this->get_derived(); \
- return self::_on_post_inserted(this->_right_child = p); \
- } \
- else \
- { \
- ::boost::container::allocator_traits< \
- typename traits::allocator \
- >::construct( \
- this->_allocator \
- , this->_right_child = ::boost::container::allocator_traits< \
- typename traits::allocator \
- >::allocate(this->_allocator, 1) \
- BOOST_PP_CAT(BOOST_PP_ENUM_TRAILING_, z)( \
- n \
- , BOOST_CONTAINER_PP_PARAM_FORWARD \
- , _ \
- ) \
- ); \
- this->_right_child->_parent = this->get_derived(); \
- return self::_on_post_inserted(this->_right_child); \
- } \
- } \
-//!
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- BOOST_PP_REPEAT(
- BOOST_CONTAINER_MAX_CONSTRUCTOR_PARAMETERS
- , BOOST_TREE_NODE_BINARY_NODE_MACRO
- , _
- )
-#undef BOOST_TREE_NODE_BINARY_NODE_MACRO
-#endif // BOOST_CONTAINER_PERFECT_FORWARDING
-
- template <typename Derived, typename T, typename Size, typename Allocator>
- inline typename binary_node_base<Derived,T,Size,Allocator>::const_pointer
- binary_node_base<Derived,T,Size,Allocator>::get_left_child_ptr() const
- {
- return this->_left_child;
- }
-
- template <typename Derived, typename T, typename Size, typename Allocator>
- inline typename binary_node_base<Derived,T,Size,Allocator>::pointer
- binary_node_base<Derived,T,Size,Allocator>::get_left_child_ptr()
- {
- return this->_left_child;
- }
-
- template <typename Derived, typename T, typename Size, typename Allocator>
- inline typename binary_node_base<Derived,T,Size,Allocator>::const_pointer
- binary_node_base<Derived,T,Size,Allocator>::get_right_child_ptr() const
- {
- return this->_right_child;
- }
-
- template <typename Derived, typename T, typename Size, typename Allocator>
- inline typename binary_node_base<Derived,T,Size,Allocator>::pointer
- binary_node_base<Derived,T,Size,Allocator>::get_right_child_ptr()
- {
- return this->_right_child;
- }
-
- template <typename Derived, typename T, typename Size, typename Allocator>
- inline typename binary_node_base<Derived,T,Size,Allocator>::const_iterator
- binary_node_base<Derived,T,Size,Allocator>::cbegin() const
- {
- return const_iterator(this->get_derived(), false);
- }
-
- template <typename Derived, typename T, typename Size, typename Allocator>
- inline typename binary_node_base<Derived,T,Size,Allocator>::const_iterator
- binary_node_base<Derived,T,Size,Allocator>::begin() const
- {
- return const_iterator(this->get_derived(), false);
- }
-
- template <typename Derived, typename T, typename Size, typename Allocator>
- inline typename binary_node_base<Derived,T,Size,Allocator>::iterator
- binary_node_base<Derived,T,Size,Allocator>::begin()
- {
- return iterator(this->get_derived(), false);
- }
-
- template <typename Derived, typename T, typename Size, typename Allocator>
- inline typename binary_node_base<Derived,T,Size,Allocator>::const_iterator
- binary_node_base<Derived,T,Size,Allocator>::cend() const
- {
- return const_iterator(this->get_derived());
- }
-
- template <typename Derived, typename T, typename Size, typename Allocator>
- inline typename binary_node_base<Derived,T,Size,Allocator>::const_iterator
- binary_node_base<Derived,T,Size,Allocator>::end() const
- {
- return const_iterator(this->get_derived());
- }
-
- template <typename Derived, typename T, typename Size, typename Allocator>
- inline typename binary_node_base<Derived,T,Size,Allocator>::iterator
- binary_node_base<Derived,T,Size,Allocator>::end()
- {
- return iterator(this->get_derived());
- }
-
- template <typename Derived, typename T, typename Size, typename Allocator>
- inline typename binary_node_base<
- Derived
- , T
- , Size
- , Allocator
- >::const_reverse_iterator
- binary_node_base<Derived,T,Size,Allocator>::crbegin() const
- {
- return const_reverse_iterator(this->get_derived(), false);
- }
-
- template <typename Derived, typename T, typename Size, typename Allocator>
- inline typename binary_node_base<
- Derived
- , T
- , Size
- , Allocator
- >::const_reverse_iterator
- binary_node_base<Derived,T,Size,Allocator>::rbegin() const
- {
- return const_reverse_iterator(this->get_derived(), false);
- }
-
- template <typename Derived, typename T, typename Size, typename Allocator>
- inline typename binary_node_base<
- Derived
- , T
- , Size
- , Allocator
- >::reverse_iterator
- binary_node_base<Derived,T,Size,Allocator>::rbegin()
- {
- return reverse_iterator(this->get_derived(), false);
- }
-
- template <typename Derived, typename T, typename Size, typename Allocator>
- inline typename binary_node_base<
- Derived
- , T
- , Size
- , Allocator
- >::const_reverse_iterator
- binary_node_base<Derived,T,Size,Allocator>::crend() const
- {
- return const_reverse_iterator(this->get_derived());
- }
-
- template <typename Derived, typename T, typename Size, typename Allocator>
- inline typename binary_node_base<
- Derived
- , T
- , Size
- , Allocator
- >::const_reverse_iterator
- binary_node_base<Derived,T,Size,Allocator>::rend() const
- {
- return const_reverse_iterator(this->get_derived());
- }
-
- template <typename Derived, typename T, typename Size, typename Allocator>
- inline typename binary_node_base<
- Derived
- , T
- , Size
- , Allocator
- >::reverse_iterator
- binary_node_base<Derived,T,Size,Allocator>::rend()
- {
- return reverse_iterator(this->get_derived());
- }
-
- template <typename Derived, typename T, typename Size, typename Allocator>
- inline typename binary_node_base<Derived,T,Size,Allocator>::size_type
- binary_node_base<Derived,T,Size,Allocator>::size() const
- {
- return (
- this->_left_child
- ? (this->_right_child ? 2 : 1)
- : (this->_right_child ? 1 : 0)
- );
- }
-
- template <typename Derived, typename T, typename Size, typename Allocator>
- inline bool binary_node_base<Derived,T,Size,Allocator>::empty() const
- {
- return !this->_left_child && !this->_right_child;
- }
-
- template <typename Derived, typename T, typename Size, typename Allocator>
- inline void binary_node_base<Derived,T,Size,Allocator>::clear()
- {
- if (this->_left_child)
- {
- self::_destroy(this->_left_child, this->_allocator);
- }
-
- if (this->_right_child)
- {
- self::_destroy(this->_right_child, this->_allocator);
- }
-
- this->_left_child = this->_right_child = ::boost::initialized_value;
- this->on_post_clear();
- }
-
- template <typename Derived, typename T, typename Size, typename Allocator>
- inline typename binary_node_base<Derived,T,Size,Allocator>::pointer
- binary_node_base<Derived,T,Size,Allocator>::rotate_left()
- {
- pointer pivot = this->_right_child;
-
- pivot->_parent = this->_parent;
-
- if ((this->_right_child = pivot->_left_child))
- {
- this->_right_child->_parent = this->get_derived();
- }
-
- pivot->_left_child = this->get_derived();
-
- if (this->_parent)
- {
- if (this->_parent->_left_child == this->get_derived())
- {
- this->_parent->_left_child = pivot;
- }
- else // if (this->_parent->_right_child == this->get_derived())
- {
- this->_parent->_right_child = pivot;
- }
- }
-
- this->_parent = pivot;
- this->on_post_rotate_left();
- return pivot;
- }
-
- template <typename Derived, typename T, typename Size, typename Allocator>
- inline typename binary_node_base<Derived,T,Size,Allocator>::pointer
- binary_node_base<Derived,T,Size,Allocator>::rotate_right()
- {
- pointer pivot = this->_left_child;
-
- pivot->_parent = this->_parent;
-
- if ((this->_left_child = pivot->_right_child))
- {
- this->_left_child->_parent = this->get_derived();
- }
-
- pivot->_right_child = this->get_derived();
-
- if (this->_parent)
- {
- if (this->_parent->_right_child == this->get_derived())
- {
- this->_parent->_right_child = pivot;
- }
- else // if (this->_parent->_left_child == this->get_derived())
- {
- this->_parent->_left_child = pivot;
- }
- }
-
- this->_parent = pivot;
- this->on_post_rotate_right();
- return pivot;
- }
-
- template <typename Derived, typename T, typename Size, typename Allocator>
- inline bool binary_node_base<Derived,T,Size,Allocator>::erase_left()
- {
- if (self::_erase(this->_left_child, this->_allocator))
- {
- this->on_post_erase();
- return true;
- }
- else
- {
- return false;
- }
- }
-
- template <typename Derived, typename T, typename Size, typename Allocator>
- inline bool binary_node_base<Derived,T,Size,Allocator>::erase_right()
- {
- if (self::_erase(this->_right_child, this->_allocator))
- {
- this->on_post_erase();
- return true;
- }
- else
- {
- return false;
- }
- }
-
-#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- template <typename Derived, typename T, typename Size, typename Allocator>
- inline typename binary_node_base<
- Derived
- , T
- , Size
- , Allocator
- >::traits::allocator_reference
- binary_node_base<Derived,T,Size,Allocator>::_construct_from(
- typename traits::allocator_reference allocator
- , ::std::tr1::true_type
- )
- {
- return allocator;
- }
-
- template <typename Derived, typename T, typename Size, typename Allocator>
- inline Allocator
- binary_node_base<Derived,T,Size,Allocator>::_construct_from(
- typename traits::allocator_reference allocator
- , ::std::tr1::false_type
- )
- {
- return ::boost::container::allocator_traits<
- typename traits::allocator
- >::select_on_container_copy_construction(allocator);
- }
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
- template <typename Derived, typename T, typename Size, typename Allocator>
- bool
- binary_node_base<Derived,T,Size,Allocator>::_clone_data(
- pointer& p
- , const_pointer const& c_p
- , Allocator& allocator
- )
- {
- if (c_p)
- {
- if (p)
- {
- p->_data = c_p->_data;
- }
- else
- {
-#if defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- allocator.construct(p = allocator.allocate(1), c_p->_data);
-#else
- ::boost::container::allocator_traits<
- typename traits::allocator
- >::construct(
- allocator
- , p = ::boost::container::allocator_traits<
- typename traits::allocator
- >::allocate(allocator, 1)
- , c_p->_data
- );
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- }
-
- return true;
- }
- else
- {
- if (p)
- {
- self::_destroy(p, allocator);
- p = ::boost::initialized_value;
- }
-
- return false;
- }
- }
-
- template <typename Derived, typename T, typename Size, typename Allocator>
- inline bool
- binary_node_base<Derived,T,Size,Allocator>::_move(
- pointer& dest_p
- , pointer& src_p
- , Allocator& allocator
- )
- {
- if (dest_p)
- {
- self::_destroy(dest_p, allocator);
- }
-
- if ((dest_p = src_p))
- {
- return true;
- }
- else
- {
- return false;
- }
- }
-
- template <typename Derived, typename T, typename Size, typename Allocator>
- inline void
- binary_node_base<Derived,T,Size,Allocator>::_destroy(
- pointer const& p
- , Allocator& allocator
- )
- {
-#if defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- allocator.destroy(p);
- allocator.deallocate(p, 1);
-#else // !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- ::boost::container::allocator_traits<
- typename traits::allocator
- >::destroy(allocator, p);
- ::boost::container::allocator_traits<
- typename traits::allocator
- >::deallocate(allocator, p, 1);
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- }
-
- template <typename Derived, typename T, typename Size, typename Allocator>
- inline bool
- binary_node_base<Derived,T,Size,Allocator>::_erase(
- pointer& p
- , Allocator& allocator
- )
- {
- if (p)
- {
- self::_destroy(p, allocator);
- p = ::boost::initialized_value;
- return true;
- }
- else
- {
- return false;
- }
- }
-
- template <typename Derived, typename T, typename Size, typename Allocator>
- inline typename binary_node_base<Derived,T,Size,Allocator>::iterator
- binary_node_base<Derived,T,Size,Allocator>::_on_post_inserted(
- pointer const& child
- )
- {
- iterator result(child, true);
- result->on_post_inserted(result, ::boost::mpl::true_());
- return result;
- }
-
- template <typename Derived, typename T, typename Size, typename Allocator>
- void
- binary_node_base<Derived,T,Size,Allocator>::_clone_descendants(
- Derived const& copy
- )
- {
- bool must_traverse_left_child = true;
-
- if (
- self::_clone_data(
- this->_left_child
- , copy._left_child
- , this->_allocator
- )
- )
- {
- this->_left_child->_parent = this->get_derived();
- }
- else
- {
- must_traverse_left_child = false;
- }
-
- if (
- self::_clone_data(
- this->_right_child
- , copy._right_child
- , this->_allocator
- )
- )
- {
- this->_right_child->_parent = this->get_derived();
- }
-
- pointer p = this->get_derived();
-
- for (
- depth_first_descendant_iterator<Derived const> itr(copy);
- itr;
- ++itr
- )
- {
- BOOST_ASSERT_MSG(p, "Premature past-the-end target.");
-
- switch (::boost::tree_node::traversal_state(itr))
- {
- case ::boost::tree_node::pre_order_traversal:
- {
- if (must_traverse_left_child)
- {
- p = p->_left_child;
- }
- else
- {
- BOOST_ASSERT_MSG(
- p->_right_child
- , "itr is at wrong traversal_state"
- );
- p = p->_right_child;
- }
-
- if (
- (
- must_traverse_left_child = self::_clone_data(
- p->_left_child
- , itr->_left_child
- , p->_allocator
- )
- )
- )
- {
- p->_left_child->_parent = p;
- }
-
- if (
- self::_clone_data(
- p->_right_child
- , itr->_right_child
- , p->_allocator
- )
- )
- {
- p->_right_child->_parent = p;
- }
-
- p->clone_metadata(*itr);
- break;
- }
-
- case ::boost::tree_node::post_order_traversal:
- {
- p->on_post_copy_or_move();
- p = p->get_parent_ptr();
- must_traverse_left_child = false;
- break;
- }
-
- default:
- {
- BOOST_ASSERT_MSG(
- false
- , "traversal_state must be pre- or post-order!"
- );
- }
- }
- }
-
- BOOST_ASSERT_MSG(p == this->get_derived(), "p not at-the-end");
- p->on_post_copy_or_move();
- }
-
- template <typename Derived, typename T, typename Size, typename Allocator>
- inline void
- binary_node_base<Derived,T,Size,Allocator>::_move_descendants(
- Derived& source
- )
- {
- if (
- self::_move(
- this->_left_child
- , source._left_child
- , source._allocator
- )
- )
- {
- this->_left_child->_parent = this->get_derived();
- source._left_child = ::boost::initialized_value;
- }
-
- if (
- self::_move(
- this->_right_child
- , source._right_child
- , source._allocator
- )
- )
- {
- this->_right_child->_parent = this->get_derived();
- source._right_child = ::boost::initialized_value;
- }
- }
-
- template <typename Derived, typename T, typename Size, typename Allocator>
- inline void
- binary_node_base<Derived,T,Size,Allocator>::_on_post_modify_value(
- data_key const& key
- )
- {
- this->on_post_propagate_value(key);
- }
-
-#if defined BOOST_TREE_NODE_CAN_USE_FUSION
- template <typename Derived, typename T, typename Size, typename Allocator>
- template <typename FusionKey>
- inline void
- binary_node_base<Derived,T,Size,Allocator>::_on_post_modify_value(
- FusionKey const& key
- )
- {
- this->on_post_propagate_value(key);
- }
-#endif
-
- template <typename Derived, typename T, typename Size, typename Allocator>
- inline void
- binary_node_base<Derived,T,Size,Allocator>::_set_parent_ptr(pointer p)
- {
- if (this->_parent)
- {
- if (this->get_derived() == this->_parent->_left_child)
- {
- this->_parent->_left_child = ::boost::initialized_value;
- }
- else // if (this->get_derived() == this->_parent->_right_child)
- {
- this->_parent->_right_child = ::boost::initialized_value;
- }
-
- this->_parent->on_post_erase();
- }
-
- if ((this->_parent = p))
- {
- this->on_post_inserted(
- iterator(this->get_derived(), true)
- , ::boost::mpl::true_()
- );
- }
- }
-
- template <typename Derived, typename T, typename Size, typename Allocator>
- inline void
- binary_node_base<Derived,T,Size,Allocator>::_set_left_child_ptr(
- pointer p
- )
- {
- if (this->_left_child)
- {
- this->_left_child = ::boost::initialized_value;
- this->on_post_erase();
- }
-
- if ((this->_left_child = p))
- {
- p->_parent = this->get_derived();
- p->on_post_inserted(iterator(p, true), ::boost::mpl::true_());
- }
- }
-
- template <typename Derived, typename T, typename Size, typename Allocator>
- inline void
- binary_node_base<Derived,T,Size,Allocator>::_set_right_child_ptr(
- pointer p
- )
- {
- if (this->_right_child)
- {
- this->_right_child = ::boost::initialized_value;
- this->on_post_erase();
- }
-
- if ((this->_right_child = p))
- {
- p->_parent = this->get_derived();
- p->on_post_inserted(iterator(p, true), ::boost::mpl::true_());
- }
- }
-}} // namespace boost::tree_node
-
-namespace boost { namespace tree_node {
-
- template <typename Derived, typename T, typename Size, typename Allocator>
- inline typename binary_node_base<
- Derived
- , T
- , Size
- , Allocator
- >::traits::data_type const&
- get(
- binary_node_base<Derived,T,Size,Allocator> const& node
- , data_key const& key
- )
- {
- return node[key];
- }
-
- template <typename Derived, typename T, typename Size, typename Allocator>
- inline typename binary_node_base<
- Derived
- , T
- , Size
- , Allocator
- >::traits::data_type&
- get(
- binary_node_base<Derived,T,Size,Allocator>& node
- , data_key const& key
- )
- {
- return node[key];
- }
-
-#if !defined BOOST_NO_SFINAE
- template <
- typename Key
- , typename Derived
- , typename T
- , typename Size
- , typename Allocator
- >
- inline typename ::boost::enable_if<
- ::std::tr1::is_same<Key,data_key>
- , typename binary_node_base<
- Derived
- , T
- , Size
- , Allocator
- >::traits::data_type const&
- >::type
- get(binary_node_base<Derived,T,Size,Allocator> const& node)
- {
- return node[data_key()];
- }
-
- template <
- typename Key
- , typename Derived
- , typename T
- , typename Size
- , typename Allocator
- >
- inline typename ::boost::enable_if<
- ::std::tr1::is_same<Key,data_key>
- , typename binary_node_base<Derived,T,Size,Allocator>::traits::data_type&
- >::type
- get(binary_node_base<Derived,T,Size,Allocator>& node)
- {
- return node[data_key()];
- }
-#endif // BOOST_NO_SFINAE
-
- template <
- typename Derived
- , typename T
- , typename Size
- , typename Allocator
- , typename V
- >
- inline void
- put(
- binary_node_base<Derived,T,Size,Allocator>& node
- , data_key const& key
- , V const& value
- )
- {
- node[key] = value;
- node._on_post_modify_value(key);
- }
-
-#if defined BOOST_TREE_NODE_CAN_USE_FUSION
- template <
- typename Derived
- , typename T
- , typename Size
- , typename Allocator
- , typename FusionKey
- >
- inline typename ::boost::lazy_enable_if<
- typename ::boost::mpl::if_<
- typename ::boost::mpl::eval_if<
- typename ::boost::fusion::traits::is_sequence<T>::type
- , ::boost::fusion::traits::is_associative<T>
- , ::boost::mpl::false_
- >::type
- , result_of::has_key<
- binary_node_base<Derived,T,Size,Allocator>
- , FusionKey
- >
- , ::boost::mpl::false_
- >::type
- , ::boost::fusion::result_of::at_key<T const,FusionKey>
- >::type
- get(
- binary_node_base<Derived,T,Size,Allocator> const& node
- , FusionKey const& key
- )
- {
- return node[key];
- }
-
- template <
- typename Derived
- , typename T
- , typename Size
- , typename Allocator
- , typename FusionKey
- >
- inline typename ::boost::lazy_enable_if<
- typename ::boost::mpl::if_<
- typename ::boost::mpl::eval_if<
- typename ::boost::fusion::traits::is_sequence<T>::type
- , ::boost::fusion::traits::is_associative<T>
- , ::boost::mpl::false_
- >::type
- , result_of::has_key<
- binary_node_base<Derived,T,Size,Allocator>
- , FusionKey
- >
- , ::boost::mpl::false_
- >::type
- , ::boost::fusion::result_of::at_key<T,FusionKey>
- >::type
- get(
- binary_node_base<Derived,T,Size,Allocator>& node
- , FusionKey const& key
- )
- {
- return node[key];
- }
-
- template <
- typename Derived
- , typename T
- , typename Size
- , typename Allocator
- , typename FusionKey
- , typename V
- >
- inline void
- put(
- binary_node_base<Derived,T,Size,Allocator>& node
- , FusionKey const& key
- , V const& value
- , typename ::boost::enable_if<
- typename ::boost::mpl::if_<
- typename ::boost::mpl::eval_if<
- typename ::boost::fusion::traits::is_sequence<T>::type
- , ::boost::fusion::traits::is_associative<T>
- , ::boost::mpl::false_
- >::type
- , result_of::has_key<
- binary_node_base<Derived,T,Size,Allocator>
- , FusionKey
- >
- , ::boost::mpl::false_
- >::type
- , ::boost::mpl::true_
- >::type
- )
- {
- node[key] = value;
- node._on_post_modify_value(key);
- }
-
- template <
- typename FusionKey
- , typename Derived
- , typename T
- , typename Size
- , typename Allocator
- >
- inline typename ::boost::lazy_enable_if<
- typename ::boost::mpl::if_<
- typename ::boost::mpl::eval_if<
- typename ::boost::fusion::traits::is_sequence<T>::type
- , ::boost::fusion::traits::is_associative<T>
- , ::boost::mpl::false_
- >::type
- , result_of::has_key<
- binary_node_base<Derived,T,Size,Allocator>
- , FusionKey
- >
- , ::boost::mpl::false_
- >::type
- , ::boost::fusion::result_of::at_key<T const,FusionKey>
- >::type
- get(binary_node_base<Derived,T,Size,Allocator> const& node)
- {
- return node[FusionKey()];
- }
-
- template <
- typename FusionKey
- , typename Derived
- , typename T
- , typename Size
- , typename Allocator
- >
- inline typename ::boost::lazy_enable_if<
- typename ::boost::mpl::if_<
- typename ::boost::mpl::eval_if<
- typename ::boost::fusion::traits::is_sequence<T>::type
- , ::boost::fusion::traits::is_associative<T>
- , ::boost::mpl::false_
- >::type
- , result_of::has_key<
- binary_node_base<Derived,T,Size,Allocator>
- , FusionKey
- >
- , ::boost::mpl::false_
- >::type
- , ::boost::fusion::result_of::at_key<T,FusionKey>
- >::type
- get(binary_node_base<Derived,T,Size,Allocator>& node)
- {
- return node[FusionKey()];
- }
-#endif // BOOST_TREE_NODE_CAN_USE_FUSION
-}} // namespace boost::tree_node
-
-//[reference__binary_node_base_gen
-namespace boost { namespace tree_node {
-
- template <
- typename Size = ::boost::uint32_t
- , typename AllocatorSelector = ::boost::std_allocator_selector
- >
- struct binary_node_base_gen
- {
- template <typename Derived, typename T>
- struct apply
- {
- typedef binary_node_base<
- Derived
- , T
- , Size
- , typename ::boost::mpl::apply_wrap1<
- AllocatorSelector
- , Derived
- >::type
- >
- type;
- };
- };
-
- typedef binary_node_base_gen<> binary_node_base_default_gen;
-}} // namespace boost::tree_node
-//]
-
-namespace boost { namespace tree_node {
-
- template <typename T, typename Size, typename AllocatorSelector>
- struct binary_node
- : public
- //[reference__binary_node__bases
- binary_node_base<
- binary_node<T,Size,AllocatorSelector>
- , T
- , Size
- , typename ::boost::mpl::apply_wrap1<
- AllocatorSelector
- , binary_node<T,Size,AllocatorSelector>
- >::type
- >
- //]
- {
- //[reference__binary_node__super_t
- typedef binary_node_base<
- binary_node
- , T
- , Size
- , typename ::boost::mpl::apply_wrap1<
- AllocatorSelector
- , binary_node
- >::type
- >
- super_t;
- //]
-
- //[reference__binary_node__traits
- typedef typename super_t::traits
- traits;
- //]
-
- //[reference__binary_node__pointer
- typedef typename super_t::pointer
- pointer;
- //]
-
- //[reference__binary_node__const_pointer
- typedef typename super_t::const_pointer
- const_pointer;
- //]
-
- //[reference__binary_node__iterator
- typedef typename super_t::iterator
- iterator;
- //]
-
- //[reference__binary_node__const_iterator
- typedef typename super_t::const_iterator
- const_iterator;
- //]
-
- //[reference__binary_node__reverse_iterator
- typedef typename super_t::reverse_iterator
- reverse_iterator;
- //]
-
- //[reference__binary_node__const_reverse_iterator
- typedef typename super_t::const_reverse_iterator
- const_reverse_iterator;
- //]
-
- //[reference__binary_node__size_type
- typedef typename super_t::size_type
- size_type;
- //]
-
- BOOST_TREE_NODE_COPYABLE_AND_MOVABLE(binary_node, super_t)
-
-#if defined BOOST_CONTAINER_PERFECT_FORWARDING
- //[reference__binary_node__emplacement_ctor
- template <typename ...Args>
- explicit binary_node(Args&& ...args);
- //]
-
- //[reference__binary_node__emplacement_ctor_w_allocator
- template <typename ...Args>
- explicit binary_node(
- ::boost::container::allocator_arg_t
- , typename traits::allocator_reference allocator
- , Args&& ...args
- );
- //]
-#else // !defined BOOST_CONTAINER_PERFECT_FORWARDING
- BOOST_PP_REPEAT(
- BOOST_CONTAINER_MAX_CONSTRUCTOR_PARAMETERS
- , BOOST_TREE_NODE_EMPLACEMENT_CTOR_INLINE_DEF
- , (binary_node, super_t)
- )
-
- BOOST_PP_REPEAT(
- BOOST_CONTAINER_MAX_CONSTRUCTOR_PARAMETERS
- , BOOST_TREE_NODE_EMPLACEMENT_CTOR_W_ALLOC_INLINE_DEF
- , (binary_node, super_t)
- )
-#endif // BOOST_CONTAINER_PERFECT_FORWARDING
- };
-
-#if defined BOOST_CONTAINER_PERFECT_FORWARDING
- template <typename T, typename Size, typename AllocatorSelector>
- template <typename ...Args>
- inline binary_node<T,Size,AllocatorSelector>::binary_node(Args&& ...args)
- : super_t(::boost::forward<Args>(args)...)
- {
- }
-
- template <typename T, typename Size, typename AllocatorSelector>
- template <typename ...Args>
- inline binary_node<T,Size,AllocatorSelector>::binary_node(
- ::boost::container::allocator_arg_t
- , typename traits::allocator_reference allocator
- , Args&& ...args
- ) : super_t(
- ::boost::container::allocator_arg
- , allocator
- , ::boost::forward<Args>(args)...
- )
- {
- }
-#endif // BOOST_CONTAINER_PERFECT_FORWARDING
-}} // namespace boost::tree_node
-
-//[reference__binary_node_gen
-namespace boost { namespace tree_node {
-
- template <
- typename Size = ::boost::uint32_t
- , typename AllocatorSelector = ::boost::std_allocator_selector
- >
- struct binary_node_gen
- {
- template <typename T>
- struct apply
- {
- typedef binary_node<T,Size,AllocatorSelector> type;
- };
- };
-
- typedef binary_node_gen<> binary_node_default_gen;
-}} // namespace boost::tree_node
-//]
-
-#include <boost/tree_node/_detail/config_end.hpp>
-
-#endif // BOOST_TREE_NODE_BINARY_NODE_HPP_INCLUDED
-

Deleted: sandbox/tree_node/boost/tree_node/binary_node_fwd.hpp
==============================================================================
--- sandbox/tree_node/boost/tree_node/binary_node_fwd.hpp 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84956)
+++ /dev/null 00:00:00 1970 (deleted)
@@ -1,289 +0,0 @@
-// 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)
-
-#ifndef BOOST_TREE_NODE_BINARY_NODE_FWD_HPP_INCLUDED
-#define BOOST_TREE_NODE_BINARY_NODE_FWD_HPP_INCLUDED
-
-#include <boost/config.hpp>
-#include <boost/cstdint.hpp>
-#include <boost/container_gen/selectors.hpp>
-#include <boost/tree_node/preprocessor.hpp>
-#include <boost/tree_node/key/data.hpp>
-
-#if !defined BOOST_NO_SFINAE
-#include <boost/utility/enable_if.hpp>
-#include <boost/tr1/type_traits.hpp>
-#include <boost/mpl/equal_to.hpp>
-#endif
-
-#if defined BOOST_TREE_NODE_CAN_USE_FUSION
-#include <boost/mpl/bool.hpp>
-#include <boost/mpl/if.hpp>
-#include <boost/mpl/eval_if.hpp>
-#include <boost/fusion/sequence/intrinsic/at_key.hpp>
-#include <boost/fusion/support/is_sequence.hpp>
-#include <boost/fusion/support/category_of.hpp>
-#include <boost/tree_node/intrinsic/has_key.hpp>
-#endif
-
-namespace boost { namespace tree_node {
-
- template <typename Derived, typename T, typename Size, typename Allocator>
- class binary_node_base;
-
- template <
- typename T
- , typename Size = ::boost::uint32_t
- , typename AllocatorSelector = ::boost::std_allocator_selector
- >
- struct binary_node;
-}} // namespace boost::tree_node
-
-//[reference__binary_node_base__at_data_key__const
-namespace boost { namespace tree_node {
-
- template <typename Derived, typename T, typename Size, typename Allocator>
- typename binary_node_base<
- Derived
- , T
- , Size
- , Allocator
- >::traits::data_type const&
- get(
- binary_node_base<Derived,T,Size,Allocator> const& node
- , data_key const& key
- );
-
-//<-
-#if !defined BOOST_NO_SFINAE
-//->
- template <
- typename Key
- , typename Derived
- , typename T
- , typename Size
- , typename Allocator
- >
- typename ::boost::enable_if<
- ::std::tr1::is_same<Key,data_key>
- , typename binary_node_base<
- Derived
- , T
- , Size
- , Allocator
- >::traits::data_type const&
- >::type
- get(binary_node_base<Derived,T,Size,Allocator> const& node);
-//<-
-#endif // BOOST_NO_SFINAE
-//->
-}} // namespace boost::tree_node
-//]
-
-//[reference__binary_node_base__at_data_key
-namespace boost { namespace tree_node {
-
- template <
- typename Derived
- , typename T
- , typename Size
- , typename Allocator
- >
- typename binary_node_base<Derived,T,Size,Allocator>::traits::data_type&
- get(
- binary_node_base<Derived,T,Size,Allocator>& node
- , data_key const& key
- );
-
-//<-
-#if !defined BOOST_NO_SFINAE
-//->
- template <
- typename Key
- , typename Derived
- , typename T
- , typename Size
- , typename Allocator
- >
- typename ::boost::enable_if<
- ::std::tr1::is_same<Key,data_key>
- , typename binary_node_base<Derived,T,Size,Allocator>::traits::data_type&
- >::type
- get(binary_node_base<Derived,T,Size,Allocator>& node);
-//<-
-#endif // BOOST_NO_SFINAE
-//->
-}} // namespace boost::tree_node
-//]
-
-#if defined BOOST_TREE_NODE_CAN_USE_FUSION
-//[reference__binary_node_base__at_key__const
-namespace boost { namespace tree_node {
-
- template <
- typename Derived
- , typename T
- , typename Size
- , typename Allocator
- , typename FusionKey
- >
- typename ::boost::lazy_enable_if<
- typename ::boost::mpl::if_<
- typename ::boost::mpl::eval_if<
- typename ::boost::fusion::traits::is_sequence<T>::type
- , ::boost::fusion::traits::is_associative<T>
- , ::boost::mpl::false_
- >::type
- , result_of::has_key<
- binary_node_base<Derived,T,Size,Allocator>
- , FusionKey
- >
- , ::boost::mpl::false_
- >::type
- , ::boost::fusion::result_of::at_key<T const,FusionKey>
- >::type
- get(
- binary_node_base<Derived,T,Size,Allocator> const& node
- , FusionKey const& key
- );
-
- template <
- typename FusionKey
- , typename Derived
- , typename T
- , typename Size
- , typename Allocator
- >
- typename ::boost::lazy_enable_if<
- typename ::boost::mpl::if_<
- typename ::boost::mpl::eval_if<
- typename ::boost::fusion::traits::is_sequence<T>::type
- , ::boost::fusion::traits::is_associative<T>
- , ::boost::mpl::false_
- >::type
- , result_of::has_key<
- binary_node_base<Derived,T,Size,Allocator>
- , FusionKey
- >
- , ::boost::mpl::false_
- >::type
- , ::boost::fusion::result_of::at_key<T const,FusionKey>
- >::type
- get(binary_node_base<Derived,T,Size,Allocator> const& node);
-}} // namespace boost::tree_node
-//]
-
-//[reference__binary_node_base__at_key
-namespace boost { namespace tree_node {
-
- template <
- typename Derived
- , typename T
- , typename Size
- , typename Allocator
- , typename FusionKey
- >
- typename ::boost::lazy_enable_if<
- typename ::boost::mpl::if_<
- typename ::boost::mpl::eval_if<
- typename ::boost::fusion::traits::is_sequence<T>::type
- , ::boost::fusion::traits::is_associative<T>
- , ::boost::mpl::false_
- >::type
- , result_of::has_key<
- binary_node_base<Derived,T,Size,Allocator>
- , FusionKey
- >
- , ::boost::mpl::false_
- >::type
- , ::boost::fusion::result_of::at_key<T,FusionKey>
- >::type
- get(binary_node_base<Derived,T,Size,Allocator>& node, FusionKey const& key);
-
- template <
- typename FusionKey
- , typename Derived
- , typename T
- , typename Size
- , typename Allocator
- >
- typename ::boost::lazy_enable_if<
- typename ::boost::mpl::if_<
- typename ::boost::mpl::eval_if<
- typename ::boost::fusion::traits::is_sequence<T>::type
- , ::boost::fusion::traits::is_associative<T>
- , ::boost::mpl::false_
- >::type
- , result_of::has_key<
- binary_node_base<Derived,T,Size,Allocator>
- , FusionKey
- >
- , ::boost::mpl::false_
- >::type
- , ::boost::fusion::result_of::at_key<T,FusionKey>
- >::type
- get(binary_node_base<Derived,T,Size,Allocator>& node);
-}} // namespace boost::tree_node
-//]
-#endif // BOOST_TREE_NODE_CAN_USE_FUSION
-
-//[reference__binary_node_base__put_data
-namespace boost { namespace tree_node {
-
- template <
- typename Derived
- , typename T
- , typename Size
- , typename Allocator
- , typename V
- >
- void
- put(
- binary_node_base<Derived,T,Size,Allocator>& node
- , data_key const& key
- , V const& value
- );
-}} // namespace boost::tree_node
-//]
-
-#if defined BOOST_TREE_NODE_CAN_USE_FUSION
-//[reference__binary_node_base__put
-namespace boost { namespace tree_node {
-
- template <
- typename Derived
- , typename T
- , typename Size
- , typename Allocator
- , typename FusionKey
- , typename V
- >
- void
- put(
- binary_node_base<Derived,T,Size,Allocator>& node
- , FusionKey const& key
- , V const& value
- , typename ::boost::enable_if<
- typename ::boost::mpl::if_<
- typename ::boost::mpl::eval_if<
- typename ::boost::fusion::traits::is_sequence<T>::type
- , ::boost::fusion::traits::is_associative<T>
- , ::boost::mpl::false_
- >::type
- , result_of::has_key<
- binary_node_base<Derived,T,Size,Allocator>
- , FusionKey
- >
- , ::boost::mpl::false_
- >::type
- , ::boost::mpl::true_
- >::type = ::boost::mpl::true_()
- );
-}} // namespace boost::tree_node
-//]
-#endif // BOOST_TREE_NODE_CAN_USE_FUSION
-
-#endif // BOOST_TREE_NODE_BINARY_NODE_FWD_HPP_INCLUDED
-

Deleted: sandbox/tree_node/boost/tree_node/container/binode.hpp
==============================================================================
--- sandbox/tree_node/boost/tree_node/container/binode.hpp 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84956)
+++ /dev/null 00:00:00 1970 (deleted)
@@ -1,2028 +0,0 @@
-// 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)
-
-#ifndef BOOST_TREE_NODE_CONTAINER_BINODE_HPP_INCLUDED
-#define BOOST_TREE_NODE_CONTAINER_BINODE_HPP_INCLUDED
-
-#include <boost/config.hpp>
-
-#if !defined BOOST_NO_CXX11_NULLPTR
-#include <cstddef>
-#endif
-
-#include <algorithm>
-#include <utility>
-#include <boost/tr1/type_traits.hpp>
-#include <boost/mpl/bool.hpp>
-#include <boost/mpl/apply_wrap.hpp>
-#include <boost/mpl/if.hpp>
-#include <boost/mpl/eval_if.hpp>
-#include <boost/iterator/transform_iterator.hpp>
-#include <boost/utility/value_init.hpp>
-
-#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-#include <boost/move/move.hpp>
-#include <boost/container/allocator_traits.hpp>
-#endif
-
-#if !defined BOOST_CONTAINER_PERFECT_FORWARDING
-#include <boost/preprocessor/repetition/repeat.hpp>
-#endif
-
-#include <boost/tree_node/preprocessor.hpp>
-#include <boost/tree_node/key/data.hpp>
-#include <boost/tree_node/key/count.hpp>
-#include <boost/tree_node/iterator/in_order.hpp>
-#include <boost/tree_node/intrinsic/has_key.hpp>
-#include <boost/tree_node/intrinsic/value_at_key.hpp>
-#include <boost/tree_node/algorithm/binary_descendant_at_index.hpp>
-#include <boost/tree_node/container/binode_fwd.hpp>
-#include <boost/assert.hpp>
-
-namespace boost { namespace tree_node {
-
- template <typename T, typename NodeGenerator, typename Balancer>
- class binode_container
- {
-#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- BOOST_COPYABLE_AND_MOVABLE(binode_container)
-#endif
-
- public:
- //[reference__binode_container__value_type
- typedef T value_type;
- //]
-
- //[reference__binode_container__reference
- typedef value_type& reference;
- //]
-
- //[reference__binode_container__const_reference
- typedef value_type const& const_reference;
- //]
-
- //[reference__binode_container__pointer
- typedef value_type* pointer;
- //]
-
- //[reference__binode_container__const_pointer
- typedef value_type const* const_pointer;
- //]
-
- //[reference__binode_container__node
- typedef typename ::boost::mpl::apply_wrap1<
- NodeGenerator
- , value_type
- >::type
- node;
- //]
-
- //[reference__binode_container__allocator_type
- typedef typename node::traits::allocator allocator_type;
- //]
-
- private:
- //[reference__binode_container__transform_function
- struct transform_function
- {
- const_reference operator()(node const& n) const;
- reference operator()(node& n) const;
- };
- //]
-
- public:
- //[reference__binode_container__iterator
- typedef ::boost::transform_iterator<
- transform_function
- , in_order_iterator<node>
- >
- iterator;
- //]
-
- //[reference__binode_container__const_iterator
- typedef ::boost::transform_iterator<
- transform_function
- , in_order_iterator<node const>
- >
- const_iterator;
- //]
-
- //[reference__binode_container__reverse_iterator
- typedef ::boost::transform_iterator<
- transform_function
- , in_order_iterator<node,::boost::mpl::true_>
- >
- reverse_iterator;
- //]
-
- //[reference__binode_container__const_reverse_iterator
- typedef ::boost::transform_iterator<
- transform_function
- , in_order_iterator<node const,::boost::mpl::true_>
- >
- const_reverse_iterator;
- //]
-
- //[reference__binode_container__size_type
- typedef typename ::boost::mpl::eval_if<
- result_of::has_key<node,count_key>
- , result_of::value_at_key<node,count_key>
- , typename node::size_type
- >::type
- size_type;
- //]
-
- private:
- allocator_type _allocator;
- typename node::pointer _root_ptr;
-
- public:
- //[reference__binode_container__default_ctor
- binode_container();
- //]
-
- //[reference__binode_container__ctor_w_alloc
- explicit binode_container(allocator_type const& allocator);
- //]
-
-#if defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- //[reference__binode_container__copy_ctor
- binode_container(binode_container const& copy);
- //]
-#else
- binode_container(
- BOOST_COPY_ASSIGN_REF(binode_container) copy
- );
-#endif
-
-#if defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- //[reference__binode_container__copy_ctor_w_alloc
- binode_container(
- binode_container const& copy
- , allocator_type const& allocator
- );
- //]
-#else
- binode_container(
- BOOST_COPY_ASSIGN_REF(binode_container) copy
- , allocator_type const& allocator
- );
-#endif
-
-#if defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- //[reference__binode_container__copy_assign
- binode_container& operator=(binode_container const& copy);
- //]
-#else // !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- binode_container(
- BOOST_RV_REF(binode_container) source
- );
-
- binode_container(
- BOOST_RV_REF(binode_container) source
- , allocator_type const& allocator
- );
-
- binode_container& operator=(BOOST_RV_REF(binode_container) source);
-
- binode_container&
- operator=(BOOST_COPY_ASSIGN_REF(binode_container) copy);
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
- //[reference__binode_container__dtor
- ~binode_container();
- //]
-
- //[reference__binode_container__data__const
- typename node::const_pointer data() const;
- //]
-
- //[reference__binode_container__data
- typename node::pointer data();
- //]
-
- //[reference__binode_container__cbegin
- const_iterator cbegin() const;
- const_iterator begin() const;
- //]
-
- //[reference__binode_container__begin
- iterator begin();
- //]
-
- //[reference__binode_container__cend
- const_iterator cend() const;
- const_iterator end() const;
- //]
-
- //[reference__binode_container__end
- iterator end();
- //]
-
- //[reference__binode_container__crbegin
- const_reverse_iterator crbegin() const;
- const_reverse_iterator rbegin() const;
- //]
-
- //[reference__binode_container__rbegin
- reverse_iterator rbegin();
- //]
-
- //[reference__binode_container__crend
- const_reverse_iterator crend() const;
- const_reverse_iterator rend() const;
- //]
-
- //[reference__binode_container__rend
- reverse_iterator rend();
- //]
-
- //[reference__binode_container__cback
- const_reference back() const;
- //]
-
- //[reference__binode_container__back
- reference back();
- //]
-
- //[reference__binode_container__push_back
- void push_back(const_reference t);
- //]
-
-#if defined BOOST_CONTAINER_PERFECT_FORWARDING
- //[reference__binode_container__emplace_back
- template <typename ...Args>
- void emplace_back(Args&& ...args);
- //]
-#else // !defined BOOST_CONTAINER_PERFECT_FORWARDING
-#define BOOST_TREE_NODE_CONTAINER_BINARY_MACRO(z, n, _) \
- BOOST_PP_EXPR_IF(n, template <) \
- BOOST_PP_ENUM_PARAMS_Z(z, n, typename P) \
- BOOST_PP_EXPR_IF(n, >) \
- void \
- emplace_back( \
- BOOST_PP_CAT(BOOST_PP_ENUM_, z)( \
- n \
- , BOOST_CONTAINER_PP_PARAM_LIST \
- , _ \
- ) \
- ); \
-//!
- BOOST_PP_REPEAT(
- BOOST_CONTAINER_MAX_CONSTRUCTOR_PARAMETERS
- , BOOST_TREE_NODE_CONTAINER_BINARY_MACRO
- , _
- )
-#undef BOOST_TREE_NODE_CONTAINER_BINARY_MACRO
-#endif // BOOST_CONTAINER_PERFECT_FORWARDING
-
- //[reference__binode_container__pop_back
- void pop_back();
- //]
-
- //[reference__binode_container__cfront
- const_reference front() const;
- //]
-
- //[reference__binode_container__front
- reference front();
- //]
-
- //[reference__binode_container__push_front
- void push_front(const_reference t);
- //]
-
-#if defined BOOST_CONTAINER_PERFECT_FORWARDING
- //[reference__binode_container__emplace_front
- template <typename ...Args>
- void emplace_front(Args&& ...args);
- //]
-#else // !defined BOOST_CONTAINER_PERFECT_FORWARDING
-#define BOOST_TREE_NODE_CONTAINER_BINARY_MACRO(z, n, _) \
- BOOST_PP_EXPR_IF(n, template <) \
- BOOST_PP_ENUM_PARAMS_Z(z, n, typename P) \
- BOOST_PP_EXPR_IF(n, >) \
- void \
- emplace_front( \
- BOOST_PP_CAT(BOOST_PP_ENUM_, z)( \
- n \
- , BOOST_CONTAINER_PP_PARAM_LIST \
- , _ \
- ) \
- ); \
-//!
- BOOST_PP_REPEAT(
- BOOST_CONTAINER_MAX_CONSTRUCTOR_PARAMETERS
- , BOOST_TREE_NODE_CONTAINER_BINARY_MACRO
- , _
- )
-#undef BOOST_TREE_NODE_CONTAINER_BINARY_MACRO
-#endif // BOOST_CONTAINER_PERFECT_FORWARDING
-
- //[reference__binode_container__pop_front
- void pop_front();
- //]
-
- //[reference__binode_container__insert
- iterator insert(const_iterator itr, const_reference t);
- //]
-
-#if defined BOOST_CONTAINER_PERFECT_FORWARDING
- //[reference__binode_container__emplace
- template <typename ...Args>
- iterator emplace(const_iterator itr, Args&& ...args);
- //]
-#else // !defined BOOST_CONTAINER_PERFECT_FORWARDING
-#define BOOST_TREE_NODE_CONTAINER_BINARY_MACRO(z, n, _) \
- BOOST_PP_EXPR_IF(n, template <) \
- BOOST_PP_ENUM_PARAMS_Z(z, n, typename P) \
- BOOST_PP_EXPR_IF(n, >) \
- iterator \
- emplace( \
- const_iterator itr \
- BOOST_PP_CAT(BOOST_PP_ENUM_TRAILING_, z)( \
- n \
- , BOOST_CONTAINER_PP_PARAM_LIST \
- , _ \
- ) \
- ); \
-//!
- BOOST_PP_REPEAT(
- BOOST_CONTAINER_MAX_CONSTRUCTOR_PARAMETERS
- , BOOST_TREE_NODE_CONTAINER_BINARY_MACRO
- , _
- )
-#undef BOOST_TREE_NODE_CONTAINER_BINARY_MACRO
-#endif // BOOST_CONTAINER_PERFECT_FORWARDING
-
- //[reference__binode_container__erase
- iterator erase(const_iterator p);
- //]
-
- //[reference__binode_container__erase_range
- void erase(const_iterator itr, const_iterator itr_end);
- //]
-
- //[reference__binode_container__empty
- bool empty() const;
- //]
-
- //[reference__binode_container__clear
- void clear();
- //]
-
- //[reference__binode_container__size
- size_type size() const;
- //]
-
- //[reference__binode_container__index_operator__const
- const_reference operator[](size_type index) const;
- //]
-
- //[reference__binode_container__index_operator
- reference operator[](size_type index);
- //]
-
- private:
- static typename node::pointer
- _construct_from(
- ::std::tr1::true_type
- , allocator_type& allocator
- , value_type const& value
- );
-
- static typename node::pointer
- _construct_from(
- ::std::tr1::false_type
- , allocator_type& allocator
- , value_type const& value
- );
-
- static typename node::pointer
- _construct_from(
- ::std::tr1::true_type
- , allocator_type& allocator
- , typename node::pointer p
- );
-
- static typename node::pointer
- _construct_from(
- ::std::tr1::false_type
- , allocator_type& allocator
- , typename node::pointer p
- );
-
-#if defined BOOST_CONTAINER_PERFECT_FORWARDING
- template <typename ...Args>
- static typename node::pointer
- _construct_from(
- ::std::tr1::true_type
- , allocator_type& allocator
- , Args&& ...args
- );
-
- template <typename ...Args>
- static typename node::pointer
- _construct_from(
- ::std::tr1::false_type
- , allocator_type& allocator
- , Args&& ...args
- );
-#else // !defined BOOST_CONTAINER_PERFECT_FORWARDING
-#define BOOST_TREE_NODE_CONTAINER_BINARY_MACRO(z, n, _) \
- BOOST_PP_EXPR_IF(n, template <) \
- BOOST_PP_ENUM_PARAMS_Z(z, n, typename P) \
- BOOST_PP_EXPR_IF(n, >) \
- static typename node::pointer \
- _construct_from( \
- ::std::tr1::true_type \
- , allocator_type& allocator \
- BOOST_PP_CAT(BOOST_PP_ENUM_TRAILING_, z)( \
- n \
- , BOOST_CONTAINER_PP_PARAM_LIST \
- , _ \
- ) \
- ); \
-//!
- BOOST_PP_REPEAT(
- BOOST_CONTAINER_MAX_CONSTRUCTOR_PARAMETERS
- , BOOST_TREE_NODE_CONTAINER_BINARY_MACRO
- , _
- )
-#undef BOOST_TREE_NODE_CONTAINER_BINARY_MACRO
-
-#define BOOST_TREE_NODE_CONTAINER_BINARY_MACRO(z, n, _) \
- BOOST_PP_EXPR_IF(n, template <) \
- BOOST_PP_ENUM_PARAMS_Z(z, n, typename P) \
- BOOST_PP_EXPR_IF(n, >) \
- static typename node::pointer \
- _construct_from( \
- ::std::tr1::false_type \
- , allocator_type& allocator \
- BOOST_PP_CAT(BOOST_PP_ENUM_TRAILING_, z)( \
- n \
- , BOOST_CONTAINER_PP_PARAM_LIST \
- , _ \
- ) \
- ); \
-//!
- BOOST_PP_REPEAT(
- BOOST_CONTAINER_MAX_CONSTRUCTOR_PARAMETERS
- , BOOST_TREE_NODE_CONTAINER_BINARY_MACRO
- , _
- )
-#undef BOOST_TREE_NODE_CONTAINER_BINARY_MACRO
-#endif // BOOST_CONTAINER_PERFECT_FORWARDING
-
- size_type _size(::boost::mpl::true_) const;
-
- size_type _size(::boost::mpl::false_) const;
-
- typename node::const_pointer _back() const;
-
- typename node::pointer _back();
- };
-
- template <typename T, typename NodeGenerator, typename Balancer>
- inline typename binode_container<T,NodeGenerator,Balancer>::const_reference
- binode_container<
- T
- , NodeGenerator
- , Balancer
- >::transform_function::operator()(node const& n) const
- {
- return get(n, data_key());
- }
-
- template <typename T, typename NodeGenerator, typename Balancer>
- inline typename binode_container<T,NodeGenerator,Balancer>::reference
- binode_container<
- T
- , NodeGenerator
- , Balancer
- >::transform_function::operator()(node& n) const
- {
- return get(n, data_key());
- }
-
- template <typename T, typename NodeGenerator, typename Balancer>
- binode_container<T,NodeGenerator,Balancer>::binode_container()
- : _allocator()
- , _root_ptr(
-#if defined BOOST_NO_CXX11_NULLPTR
- 0
-#else
- nullptr
-#endif
- )
- {
- }
-
- template <typename T, typename NodeGenerator, typename Balancer>
- binode_container<T,NodeGenerator,Balancer>::binode_container(
- allocator_type const& allocator
- ) : _allocator(allocator)
- , _root_ptr(
-#if defined BOOST_NO_CXX11_NULLPTR
- 0
-#else
- nullptr
-#endif
- )
- {
- }
-
- template <typename T, typename NodeGenerator, typename Balancer>
- typename binode_container<T,NodeGenerator,Balancer>::node::pointer
- binode_container<T,NodeGenerator,Balancer>::_construct_from(
- ::std::tr1::true_type
- , allocator_type& allocator
- , typename node::pointer p
- )
- {
- if (p)
- {
-#if defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- typename node::pointer result(allocator.allocate(1));
- allocator.construct(result, *p);
-#else // !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- typename node::pointer result(
- ::boost::container::allocator_traits<
- allocator_type
- >::allocate(allocator, 1)
- );
- ::boost::container::allocator_traits<
- allocator_type
- >::construct(allocator, result, *p);
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- return result;
- }
- else
- {
- return p;
- }
- }
-
- template <typename T, typename NodeGenerator, typename Balancer>
- typename binode_container<T,NodeGenerator,Balancer>::node::pointer
- binode_container<T,NodeGenerator,Balancer>::_construct_from(
- ::std::tr1::false_type
- , allocator_type& allocator
- , typename node::pointer p
- )
- {
- if (p)
- {
-#if defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- typename node::pointer result(allocator.allocate(1));
- allocator.construct(result, *p, allocator);
-#else // !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- typename node::pointer result(
- ::boost::container::allocator_traits<
- allocator_type
- >::allocate(allocator, 1)
- );
- ::boost::container::allocator_traits<
- allocator_type
- >::construct(allocator, result, *p, allocator);
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- return result;
- }
- else
- {
- return p;
- }
- }
-
- template <typename T, typename NodeGenerator, typename Balancer>
- binode_container<T,NodeGenerator,Balancer>::binode_container(
-#if defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- binode_container const& copy
-#else
- BOOST_COPY_ASSIGN_REF(binode_container) copy
-#endif
- ) : _allocator(copy._allocator)
- , _root_ptr(
- this->_construct_from(
- ::std::tr1::is_const<
- typename ::std::tr1::remove_reference<
- typename node::traits::allocator_reference
- >::type
- >()
- , this->_allocator
- , copy._root_ptr
- )
- )
- {
- }
-
- template <typename T, typename NodeGenerator, typename Balancer>
- binode_container<T,NodeGenerator,Balancer>::binode_container(
-#if defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- binode_container const& copy
-#else
- BOOST_COPY_ASSIGN_REF(binode_container) copy
-#endif
- , allocator_type const& allocator
- ) : _allocator(copy._allocator)
- , _root_ptr(
- this->_construct_from(
- ::std::tr1::is_const<
- typename ::std::tr1::remove_reference<
- typename node::traits::allocator_reference
- >::type
- >()
- , this->_allocator
- , copy._root_ptr
- )
- )
- {
- }
-
-#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- template <typename T, typename NodeGenerator, typename Balancer>
- binode_container<T,NodeGenerator,Balancer>::binode_container(
- BOOST_RV_REF(binode_container) source
- ) : _allocator(::boost::move(source._allocator))
- , _root_ptr(source._root_ptr)
- {
-#if defined BOOST_NO_CXX11_NULLPTR
- source._root_ptr = 0;
-#else
- source._root_ptr = nullptr;
-#endif
- }
-
- template <typename T, typename NodeGenerator, typename Balancer>
- binode_container<T,NodeGenerator,Balancer>::binode_container(
- BOOST_RV_REF(binode_container) source
- , allocator_type const& allocator
- ) : _allocator(allocator), _root_ptr(source._root_ptr)
- {
-#if defined BOOST_NO_CXX11_NULLPTR
- source._root_ptr = 0;
-#else
- source._root_ptr = nullptr;
-#endif
- }
-
- template <typename T, typename NodeGenerator, typename Balancer>
- inline binode_container<T,NodeGenerator,Balancer>&
- binode_container<T,NodeGenerator,Balancer>::operator=(
- BOOST_RV_REF(binode_container) source
- )
- {
- if (this != &static_cast<binode_container&>(source))
- {
- this->_allocator = ::boost::move(source._allocator);
- this->clear();
- this->_root_ptr = source._root_ptr;
-#if defined BOOST_NO_CXX11_NULLPTR
- source._root_ptr = 0;
-#else
- source._root_ptr = nullptr;
-#endif
- }
-
- return *this;
- }
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
- template <typename T, typename NodeGenerator, typename Balancer>
- inline binode_container<T,NodeGenerator,Balancer>&
- binode_container<T,NodeGenerator,Balancer>::operator=(
-#if defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- binode_container const& copy
-#else
- BOOST_COPY_ASSIGN_REF(binode_container) copy
-#endif
- )
- {
- if (this != &copy)
- {
- if (copy._root_ptr)
- {
- if (this->_root_ptr)
- {
- *this->_root_ptr = *copy._root_ptr;
- }
- else
- {
- this->_root_ptr = this->_construct_from(
- ::std::tr1::is_const<
- typename ::std::tr1::remove_reference<
- typename node::traits::allocator_reference
- >::type
- >()
- , this->_allocator
- , copy._root_ptr
- );
- }
- }
- else
- {
- this->clear();
- }
- }
-
- return *this;
- }
-
- template <typename T, typename NodeGenerator, typename Balancer>
- binode_container<T,NodeGenerator,Balancer>::~binode_container()
- {
- this->clear();
- }
-
- template <typename T, typename NodeGenerator, typename Balancer>
- inline typename binode_container<
- T
- , NodeGenerator
- , Balancer
- >::node::const_pointer
- binode_container<T,NodeGenerator,Balancer>::data() const
- {
- return this->_root_ptr;
- }
-
- template <typename T, typename NodeGenerator, typename Balancer>
- inline typename binode_container<T,NodeGenerator,Balancer>::node::pointer
- binode_container<T,NodeGenerator,Balancer>::data()
- {
- return this->_root_ptr;
- }
-
- template <typename T, typename NodeGenerator, typename Balancer>
- inline typename binode_container<T,NodeGenerator,Balancer>::const_iterator
- binode_container<T,NodeGenerator,Balancer>::cbegin() const
- {
- return this->_root_ptr ? const_iterator(
- make_in_order_iterator(*this->_root_ptr)
- , transform_function()
- ) : this->cend();
- }
-
- template <typename T, typename NodeGenerator, typename Balancer>
- inline typename binode_container<T,NodeGenerator,Balancer>::const_iterator
- binode_container<T,NodeGenerator,Balancer>::begin() const
- {
- return this->_root_ptr ? const_iterator(
- make_in_order_iterator(*this->_root_ptr)
- , transform_function()
- ) : this->end();
- }
-
- template <typename T, typename NodeGenerator, typename Balancer>
- inline typename binode_container<T,NodeGenerator,Balancer>::iterator
- binode_container<T,NodeGenerator,Balancer>::begin()
- {
- return this->_root_ptr ? iterator(
- make_in_order_iterator(*this->_root_ptr)
- , transform_function()
- ) : this->end();
- }
-
- template <typename T, typename NodeGenerator, typename Balancer>
- inline typename binode_container<T,NodeGenerator,Balancer>::const_iterator
- binode_container<T,NodeGenerator,Balancer>::cend() const
- {
- return const_iterator(
- make_in_order_iterator_end(this->_root_ptr)
- , transform_function()
- );
- }
-
- template <typename T, typename NodeGenerator, typename Balancer>
- inline typename binode_container<T,NodeGenerator,Balancer>::const_iterator
- binode_container<T,NodeGenerator,Balancer>::end() const
- {
- return const_iterator(
- make_in_order_iterator_end(this->_root_ptr)
- , transform_function()
- );
- }
-
- template <typename T, typename NodeGenerator, typename Balancer>
- inline typename binode_container<T,NodeGenerator,Balancer>::iterator
- binode_container<T,NodeGenerator,Balancer>::end()
- {
- return iterator(
- make_in_order_iterator_end(this->_root_ptr)
- , transform_function()
- );
- }
-
- template <typename T, typename NodeGenerator, typename Balancer>
- inline typename binode_container<
- T
- , NodeGenerator
- , Balancer
- >::const_reverse_iterator
- binode_container<T,NodeGenerator,Balancer>::crbegin() const
- {
- return this->_root_ptr ? const_reverse_iterator(
- make_in_order_reverse_iterator(*this->_root_ptr)
- , transform_function()
- ) : this->crend();
- }
-
- template <typename T, typename NodeGenerator, typename Balancer>
- inline typename binode_container<
- T
- , NodeGenerator
- , Balancer
- >::const_reverse_iterator
- binode_container<T,NodeGenerator,Balancer>::rbegin() const
- {
- return this->_root_ptr ? const_reverse_iterator(
- make_in_order_reverse_iterator(*this->_root_ptr)
- , transform_function()
- ) : this->rend();
- }
-
- template <typename T, typename NodeGenerator, typename Balancer>
- inline typename binode_container<
- T
- , NodeGenerator
- , Balancer
- >::reverse_iterator
- binode_container<T,NodeGenerator,Balancer>::rbegin()
- {
- return this->_root_ptr ? reverse_iterator(
- make_in_order_reverse_iterator(*this->_root_ptr)
- , transform_function()
- ) : this->rend();
- }
-
- template <typename T, typename NodeGenerator, typename Balancer>
- inline typename binode_container<
- T
- , NodeGenerator
- , Balancer
- >::const_reverse_iterator
- binode_container<T,NodeGenerator,Balancer>::crend() const
- {
- return const_reverse_iterator(
- make_in_order_reverse_iterator_end(this->_root_ptr)
- , transform_function()
- );
- }
-
- template <typename T, typename NodeGenerator, typename Balancer>
- inline typename binode_container<
- T
- , NodeGenerator
- , Balancer
- >::const_reverse_iterator
- binode_container<T,NodeGenerator,Balancer>::rend() const
- {
- return const_reverse_iterator(
- make_in_order_reverse_iterator_end(this->_root_ptr)
- , transform_function()
- );
- }
-
- template <typename T, typename NodeGenerator, typename Balancer>
- inline typename binode_container<
- T
- , NodeGenerator
- , Balancer
- >::reverse_iterator
- binode_container<T,NodeGenerator,Balancer>::rend()
- {
- return reverse_iterator(
- make_in_order_reverse_iterator_end(this->_root_ptr)
- , transform_function()
- );
- }
-
- template <typename T, typename NodeGenerator, typename Balancer>
- inline typename binode_container<T,NodeGenerator,Balancer>::const_reference
- binode_container<T,NodeGenerator,Balancer>::front() const
- {
- return *this->cbegin();
- }
-
- template <typename T, typename NodeGenerator, typename Balancer>
- inline typename binode_container<T,NodeGenerator,Balancer>::reference
- binode_container<T,NodeGenerator,Balancer>::front()
- {
- return *this->begin();
- }
-
- template <typename T, typename NodeGenerator, typename Balancer>
- inline typename binode_container<T,NodeGenerator,Balancer>::const_reference
- binode_container<T,NodeGenerator,Balancer>::back() const
- {
- return *this->crbegin();
- }
-
- template <typename T, typename NodeGenerator, typename Balancer>
- inline typename binode_container<T,NodeGenerator,Balancer>::reference
- binode_container<T,NodeGenerator,Balancer>::back()
- {
- return *this->rbegin();
- }
-
- template <typename T, typename NodeGenerator, typename Balancer>
- inline void binode_container<T,NodeGenerator,Balancer>::pop_front()
- {
- this->erase(this->cbegin());
- }
-
- template <typename T, typename NodeGenerator, typename Balancer>
- typename binode_container<T,NodeGenerator,Balancer>::node::const_pointer
- binode_container<T,NodeGenerator,Balancer>::_back() const
- {
- typename node::const_pointer result = this->_root_ptr;
-
- if (result)
- {
- while (result->get_right_child_ptr())
- {
- result = result->get_right_child_ptr();
- }
- }
-
- return result;
- }
-
- template <typename T, typename NodeGenerator, typename Balancer>
- typename binode_container<T,NodeGenerator,Balancer>::node::pointer
- binode_container<T,NodeGenerator,Balancer>::_back()
- {
- typename node::pointer result = this->_root_ptr;
-
- if (result)
- {
- while (result->get_right_child_ptr())
- {
- result = result->get_right_child_ptr();
- }
- }
-
- return result;
- }
-
- template <typename T, typename NodeGenerator, typename Balancer>
- inline void binode_container<T,NodeGenerator,Balancer>::pop_back()
- {
- this->erase(
- iterator(
- make_in_order_iterator_position(*this->_back())
- , transform_function()
- )
- );
- }
-
- template <typename T, typename NodeGenerator, typename Balancer>
- typename binode_container<T,NodeGenerator,Balancer>::node::pointer
- binode_container<T,NodeGenerator,Balancer>::_construct_from(
- ::std::tr1::true_type
- , allocator_type& allocator
- , value_type const& value
- )
- {
-#if defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- typename node::pointer result(allocator.allocate(1));
- allocator.construct(result, value);
-#else // !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- typename node::pointer result(
- ::boost::container::allocator_traits<
- allocator_type
- >::allocate(allocator, 1)
- );
- ::boost::container::allocator_traits<
- allocator_type
- >::construct(allocator, result, value);
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- return result;
- }
-
- template <typename T, typename NodeGenerator, typename Balancer>
- typename binode_container<T,NodeGenerator,Balancer>::node::pointer
- binode_container<T,NodeGenerator,Balancer>::_construct_from(
- ::std::tr1::false_type
- , allocator_type& allocator
- , value_type const& value
- )
- {
-#if defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- typename node::pointer result(allocator.allocate(1));
- allocator.construct(
- result
- , ::boost::container::allocator_arg
- , allocator
- , value
- );
-#else // !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- typename node::pointer result(
- ::boost::container::allocator_traits<
- allocator_type
- >::allocate(allocator, 1)
- );
- ::boost::container::allocator_traits<allocator_type>::construct(
- allocator
- , result
- , ::boost::container::allocator_arg
- , allocator
- , value
- );
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- return result;
- }
-
- template <typename T, typename NodeGenerator, typename Balancer>
- void
- binode_container<T,NodeGenerator,Balancer>::push_front(
- const_reference t
- )
- {
- if (this->_root_ptr)
- {
- typename node::pointer p = this->_root_ptr;
-
- while (p->get_left_child_ptr())
- {
- p = p->get_left_child_ptr();
- }
-
- p = Balancer::post_insert(p = &*p->emplace_left(t));
-
- if (!p->get_parent_ptr())
- {
- this->_root_ptr = p;
- }
- }
- else // if (!this->_root_ptr)
- {
- this->_root_ptr = this->_construct_from(
- ::std::tr1::is_const<
- typename ::std::tr1::remove_reference<
- typename node::traits::allocator_reference
- >::type
- >()
- , this->_allocator
- , t
- );
- }
- }
-
- template <typename T, typename NodeGenerator, typename Balancer>
- void
- binode_container<T,NodeGenerator,Balancer>::push_back(
- const_reference t
- )
- {
- if (this->_root_ptr)
- {
- typename node::pointer p = this->_root_ptr;
-
- while (p->get_right_child_ptr())
- {
- p = p->get_right_child_ptr();
- }
-
- p = Balancer::post_insert(p = &*p->emplace_right(t));
-
- if (!p->get_parent_ptr())
- {
- this->_root_ptr = p;
- }
- }
- else // if (!this->_root_ptr)
- {
- this->_root_ptr = this->_construct_from(
- ::std::tr1::is_const<
- typename ::std::tr1::remove_reference<
- typename node::traits::allocator_reference
- >::type
- >()
- , this->_allocator
- , t
- );
- }
- }
-
- template <typename T, typename NodeGenerator, typename Balancer>
- typename binode_container<T,NodeGenerator,Balancer>::iterator
- binode_container<T,NodeGenerator,Balancer>::insert(
- const_iterator itr
- , const_reference t
- )
- {
- if (itr.base())
- {
- typename node::pointer anc_ptr = const_cast<
- typename node::pointer
- >(&*itr.base());
- typename node::pointer node_ptr = anc_ptr->get_left_child_ptr();
-
- if (node_ptr)
- {
- while (node_ptr->get_right_child_ptr())
- {
- node_ptr = node_ptr->get_right_child_ptr();
- }
-
- node_ptr = &*node_ptr->emplace_right(t);
- }
- else
- {
- node_ptr = &*anc_ptr->emplace_left(t);
- }
-
- anc_ptr = Balancer::post_insert(node_ptr);
-
- if (!anc_ptr->get_parent_ptr())
- {
- this->_root_ptr = anc_ptr;
- }
-
- return iterator(
- make_in_order_iterator_position(*node_ptr)
- , transform_function()
- );
- }
- else // if (!itr)
- {
- this->push_back(t);
- return this->end();
- }
- }
-
-#if defined BOOST_CONTAINER_PERFECT_FORWARDING
- template <typename T, typename NodeGenerator, typename Balancer>
- template <typename ...Args>
- typename binode_container<T,NodeGenerator,Balancer>::node::pointer
- binode_container<T,NodeGenerator,Balancer>::_construct_from(
- ::std::tr1::true_type
- , allocator_type& allocator
- , Args&& ...args
- )
- {
-#if defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- typename node::pointer result(allocator.allocate(1));
- allocator.construct(result, ::boost::forward<Args>(args)...);
-#else // !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- typename node::pointer result(
- ::boost::container::allocator_traits<
- allocator_type
- >::allocate(allocator, 1)
- );
- ::boost::container::allocator_traits<
- allocator_type
- >::construct(allocator, result, ::boost::forward<Args>(args)...);
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- return result;
- }
-
- template <typename T, typename NodeGenerator, typename Balancer>
- template <typename ...Args>
- typename binode_container<T,NodeGenerator,Balancer>::node::pointer
- binode_container<T,NodeGenerator,Balancer>::_construct_from(
- ::std::tr1::false_type
- , allocator_type& allocator
- , Args&& ...args
- )
- {
-#if defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- typename node::pointer result(allocator.allocate(1));
- allocator.construct(
- result
- , ::boost::container::allocator_arg
- , allocator
- , ::boost::forward<Args>(args)...
- );
-#else // !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- typename node::pointer result(
- ::boost::container::allocator_traits<
- allocator_type
- >::allocate(allocator, 1)
- );
- ::boost::container::allocator_traits<allocator_type>::construct(
- allocator
- , result
- , ::boost::container::allocator_arg
- , allocator
- , ::boost::forward<Args>(args)...
- );
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- return result;
- }
-
- template <typename T, typename NodeGenerator, typename Balancer>
- template <typename ...Args>
- void
- binode_container<T,NodeGenerator,Balancer>::emplace_front(
- Args&& ...args
- )
- {
- if (this->_root_ptr)
- {
- typename node::pointer p = this->_root;
-
- while (p->get_left_child_ptr())
- {
- p = p->get_left_child_ptr();
- }
-
- p = Balancer::post_insert(
- p = &*p->emplace_left(::boost::forward<Args>(args)...)
- );
-
- if (!p->get_parent_ptr())
- {
- this->_root_ptr = p;
- }
- }
- else // if (!this->_root_ptr)
- {
- this->_root_ptr = this->_construct_from(
- ::std::tr1::is_const<
- typename ::std::tr1::remove_reference<
- typename node::traits::allocator_reference
- >::type
- >()
- , this->_allocator
- , ::boost::forward<Args>(args)...
- );
- }
- }
-
- template <typename T, typename NodeGenerator, typename Balancer>
- template <typename ...Args>
- void
- binode_container<T,NodeGenerator,Balancer>::emplace_back(
- Args&& ...args
- )
- {
- if (this->_root_ptr)
- {
- typename node::pointer p = this->_root;
-
- while (p->get_right_child_ptr())
- {
- p = p->get_right_child_ptr();
- }
-
- p = Balancer::post_insert(
- p = &*p->emplace_right(::boost::forward<Args>(args)...)
- );
-
- if (!p->get_parent_ptr())
- {
- this->_root_ptr = p;
- }
- }
- else // if (!this->_root_ptr)
- {
- this->_root_ptr = this->_construct_from(
- ::std::tr1::is_const<
- typename ::std::tr1::remove_reference<
- typename node::traits::allocator_reference
- >::type
- >()
- , this->_allocator
- , ::boost::forward<Args>(args)...
- );
- }
- }
-
- template <typename T, typename NodeGenerator, typename Balancer>
- template <typename ...Args>
- typename binode_container<T,NodeGenerator,Balancer>::iterator
- binode_container<T,NodeGenerator,Balancer>::emplace(
- const_iterator itr
- , Args&& ...args
- )
- {
- if (itr.base())
- {
- typename node::pointer anc_ptr = const_cast<
- typename node::pointer
- >(&*itr.base());
- typename node::pointer node_ptr = anc_ptr->get_left_child_ptr();
-
- if (node_ptr)
- {
- while (node_ptr->get_right_child_ptr())
- {
- node_ptr = node_ptr->get_right_child_ptr();
- }
-
- node_ptr = &*node_ptr->emplace_right(
- ::boost::forward<Args>(args)...
- );
- }
- else
- {
- node_ptr = &*anc_ptr->emplace_left(
- ::boost::forward<Args>(args)...
- );
- }
-
- anc_ptr = Balancer::post_insert(node_ptr);
-
- if (!anc_ptr->get_parent_ptr())
- {
- this->_root_ptr = anc_ptr;
- }
-
- return iterator(
- make_in_order_iterator_position(*node_ptr)
- , transform_function()
- );
- }
- else // if (!itr)
- {
- this->emplace_back(::boost::forward<Args>(args)...);
- return this->end();
- }
- }
-#else // !defined BOOST_CONTAINER_PERFECT_FORWARDING
-#if defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-#define BOOST_TREE_NODE_CONTAINER_BINARY_MACRO(z, n, _) \
- template <typename T, typename NodeGenerator, typename Balancer> \
- BOOST_PP_EXPR_IF(n, template <) \
- BOOST_PP_ENUM_PARAMS_Z(z, n, typename P) \
- BOOST_PP_EXPR_IF(n, >) \
- typename binode_container<T,NodeGenerator,Balancer>::node::pointer \
- binode_container<T,NodeGenerator,Balancer>::_construct_from( \
- ::std::tr1::true_type \
- , allocator_type& allocator \
- BOOST_PP_CAT(BOOST_PP_ENUM_TRAILING_, z)( \
- n \
- , BOOST_CONTAINER_PP_PARAM_LIST \
- , _ \
- ) \
- ) \
- { \
- typename node::pointer result(allocator.allocate(1)); \
- allocator.construct( \
- result \
- BOOST_PP_CAT(BOOST_PP_ENUM_TRAILING_, z)( \
- n \
- , BOOST_CONTAINER_PP_PARAM_FORWARD \
- , _ \
- ) \
- ); \
- return result; \
- } \
-//!
- BOOST_PP_REPEAT(
- BOOST_CONTAINER_MAX_CONSTRUCTOR_PARAMETERS
- , BOOST_TREE_NODE_CONTAINER_BINARY_MACRO
- , _
- )
-#undef BOOST_TREE_NODE_CONTAINER_BINARY_MACRO
-
-#define BOOST_TREE_NODE_CONTAINER_BINARY_MACRO(z, n, _) \
- template <typename T, typename NodeGenerator, typename Balancer> \
- BOOST_PP_EXPR_IF(n, template <) \
- BOOST_PP_ENUM_PARAMS_Z(z, n, typename P) \
- BOOST_PP_EXPR_IF(n, >) \
- typename binode_container<T,NodeGenerator,Balancer>::node::pointer \
- binode_container<T,NodeGenerator,Balancer>::_construct_from( \
- ::std::tr1::false_type \
- , allocator_type& allocator \
- BOOST_PP_CAT(BOOST_PP_ENUM_TRAILING_, z)( \
- n \
- , BOOST_CONTAINER_PP_PARAM_LIST \
- , _ \
- ) \
- ) \
- { \
- typename node::pointer result(allocator.allocate(1)); \
- allocator.construct( \
- result \
- , ::boost::container::allocator_arg \
- , allocator \
- BOOST_PP_CAT(BOOST_PP_ENUM_TRAILING_, z)( \
- n \
- , BOOST_CONTAINER_PP_PARAM_FORWARD \
- , _ \
- ) \
- ); \
- return result; \
- } \
-//!
- BOOST_PP_REPEAT(
- BOOST_CONTAINER_MAX_CONSTRUCTOR_PARAMETERS
- , BOOST_TREE_NODE_CONTAINER_BINARY_MACRO
- , _
- )
-#undef BOOST_TREE_NODE_CONTAINER_BINARY_MACRO
-#else // !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-#define BOOST_TREE_NODE_CONTAINER_BINARY_MACRO(z, n, _) \
- template <typename T, typename NodeGenerator, typename Balancer> \
- BOOST_PP_EXPR_IF(n, template <) \
- BOOST_PP_ENUM_PARAMS_Z(z, n, typename P) \
- BOOST_PP_EXPR_IF(n, >) \
- typename binode_container<T,NodeGenerator,Balancer>::node::pointer \
- binode_container<T,NodeGenerator,Balancer>::_construct_from( \
- ::std::tr1::true_type \
- , allocator_type& allocator \
- BOOST_PP_CAT(BOOST_PP_ENUM_TRAILING_, z)( \
- n \
- , BOOST_CONTAINER_PP_PARAM_LIST \
- , _ \
- ) \
- ) \
- { \
- typename node::pointer result( \
- ::boost::container::allocator_traits< \
- allocator_type \
- >::allocate(allocator, 1) \
- ); \
- ::boost::container::allocator_traits<allocator_type>::construct( \
- allocator \
- , result \
- BOOST_PP_CAT(BOOST_PP_ENUM_TRAILING_, z)( \
- n \
- , BOOST_CONTAINER_PP_PARAM_FORWARD \
- , _ \
- ) \
- ); \
- return result; \
- } \
-//!
- BOOST_PP_REPEAT(
- BOOST_CONTAINER_MAX_CONSTRUCTOR_PARAMETERS
- , BOOST_TREE_NODE_CONTAINER_BINARY_MACRO
- , _
- )
-#undef BOOST_TREE_NODE_CONTAINER_BINARY_MACRO
-
-#define BOOST_TREE_NODE_CONTAINER_BINARY_MACRO(z, n, _) \
- template <typename T, typename NodeGenerator, typename Balancer> \
- BOOST_PP_EXPR_IF(n, template <) \
- BOOST_PP_ENUM_PARAMS_Z(z, n, typename P) \
- BOOST_PP_EXPR_IF(n, >) \
- typename binode_container<T,NodeGenerator,Balancer>::node::pointer \
- binode_container<T,NodeGenerator,Balancer>::_construct_from( \
- ::std::tr1::false_type \
- , allocator_type& allocator \
- BOOST_PP_CAT(BOOST_PP_ENUM_TRAILING_, z)( \
- n \
- , BOOST_CONTAINER_PP_PARAM_LIST \
- , _ \
- ) \
- ) \
- { \
- typename node::pointer result( \
- ::boost::container::allocator_traits< \
- allocator_type \
- >::allocate(allocator, 1) \
- ); \
- ::boost::container::allocator_traits<allocator_type>::construct( \
- allocator \
- , result \
- , ::boost::container::allocator_arg \
- , allocator \
- BOOST_PP_CAT(BOOST_PP_ENUM_TRAILING_, z)( \
- n \
- , BOOST_CONTAINER_PP_PARAM_FORWARD \
- , _ \
- ) \
- ); \
- return result; \
- } \
-//!
- BOOST_PP_REPEAT(
- BOOST_CONTAINER_MAX_CONSTRUCTOR_PARAMETERS
- , BOOST_TREE_NODE_CONTAINER_BINARY_MACRO
- , _
- )
-#undef BOOST_TREE_NODE_CONTAINER_BINARY_MACRO
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-#define BOOST_TREE_NODE_CONTAINER_BINARY_MACRO(z, n, _) \
- template <typename T, typename NodeGenerator, typename Balancer> \
- BOOST_PP_EXPR_IF(n, template <) \
- BOOST_PP_ENUM_PARAMS_Z(z, n, typename P) \
- BOOST_PP_EXPR_IF(n, >) \
- void \
- binode_container<T,NodeGenerator,Balancer>::emplace_front( \
- BOOST_PP_CAT(BOOST_PP_ENUM_, z)( \
- n \
- , BOOST_CONTAINER_PP_PARAM_LIST \
- , _ \
- ) \
- ) \
- { \
- if (this->_root_ptr) \
- { \
- typename node::pointer p = this->_root; \
- while (p->get_left_child_ptr()) \
- { \
- p = p->get_left_child_ptr(); \
- } \
- p = Balancer::post_insert( \
- p = &*p->emplace_left( \
- BOOST_PP_CAT(BOOST_PP_ENUM_, z)( \
- n \
- , BOOST_CONTAINER_PP_PARAM_FORWARD \
- , _ \
- ) \
- ) \
- ); \
- if (!p->get_parent_ptr()) \
- { \
- this->_root_ptr = p; \
- } \
- } \
- else \
- { \
- this->_root_ptr = this->_construct_from( \
- ::std::tr1::is_const< \
- typename ::std::tr1::remove_reference< \
- typename node::traits::allocator_reference \
- >::type \
- >() \
- , this->_allocator \
- BOOST_PP_CAT(BOOST_PP_ENUM_TRAILING_, z)( \
- n \
- , BOOST_CONTAINER_PP_PARAM_FORWARD \
- , _ \
- ) \
- ); \
- } \
- } \
-//!
- BOOST_PP_REPEAT(
- BOOST_CONTAINER_MAX_CONSTRUCTOR_PARAMETERS
- , BOOST_TREE_NODE_CONTAINER_BINARY_MACRO
- , _
- )
-#undef BOOST_TREE_NODE_CONTAINER_BINARY_MACRO
-
-#define BOOST_TREE_NODE_CONTAINER_BINARY_MACRO(z, n, _) \
- template <typename T, typename NodeGenerator, typename Balancer> \
- BOOST_PP_EXPR_IF(n, template <) \
- BOOST_PP_ENUM_PARAMS_Z(z, n, typename P) \
- BOOST_PP_EXPR_IF(n, >) \
- void \
- binode_container<T,NodeGenerator,Balancer>::emplace_back( \
- BOOST_PP_CAT(BOOST_PP_ENUM_, z)( \
- n \
- , BOOST_CONTAINER_PP_PARAM_LIST \
- , _ \
- ) \
- ) \
- { \
- if (this->_root_ptr) \
- { \
- typename node::pointer p = this->_root; \
- while (p->get_right_child_ptr()) \
- { \
- p = p->get_right_child_ptr(); \
- } \
- p = Balancer::post_insert( \
- p = &*p->emplace_right( \
- BOOST_PP_CAT(BOOST_PP_ENUM_, z)( \
- n \
- , BOOST_CONTAINER_PP_PARAM_FORWARD \
- , _ \
- ) \
- ) \
- ); \
- if (!p->get_parent_ptr()) \
- { \
- this->_root_ptr = p; \
- } \
- } \
- else \
- { \
- this->_root_ptr = this->_construct_from( \
- ::std::tr1::is_const< \
- typename ::std::tr1::remove_reference< \
- typename node::traits::allocator_reference \
- >::type \
- >() \
- , this->_allocator \
- BOOST_PP_CAT(BOOST_PP_ENUM_TRAILING_, z)( \
- n \
- , BOOST_CONTAINER_PP_PARAM_FORWARD \
- , _ \
- ) \
- ); \
- } \
- } \
-//!
- BOOST_PP_REPEAT(
- BOOST_CONTAINER_MAX_CONSTRUCTOR_PARAMETERS
- , BOOST_TREE_NODE_CONTAINER_BINARY_MACRO
- , _
- )
-#undef BOOST_TREE_NODE_CONTAINER_BINARY_MACRO
-
-#define BOOST_TREE_NODE_CONTAINER_BINARY_MACRO(z, n, _) \
- template <typename T, typename NodeGenerator, typename Balancer> \
- BOOST_PP_EXPR_IF(n, template <) \
- BOOST_PP_ENUM_PARAMS_Z(z, n, typename P) \
- BOOST_PP_EXPR_IF(n, >) \
- typename binode_container<T,NodeGenerator,Balancer>::iterator \
- binode_container<T,NodeGenerator,Balancer>::emplace( \
- const_iterator itr \
- BOOST_PP_CAT(BOOST_PP_ENUM_TRAILING_, z)( \
- n \
- , BOOST_CONTAINER_PP_PARAM_LIST \
- , _ \
- ) \
- ) \
- { \
- if (itr.base()) \
- { \
- typename node::pointer anc_ptr = const_cast< \
- typename node::pointer \
- >(&*itr.base()); \
- typename node::pointer node_ptr = ( \
- anc_ptr->get_left_child_ptr() \
- ); \
- if (node_ptr) \
- { \
- while (node_ptr->get_right_child_ptr()) \
- { \
- node_ptr = node_ptr->get_right_child_ptr(); \
- } \
- node_ptr = &*node_ptr->emplace_right( \
- BOOST_PP_CAT(BOOST_PP_ENUM_, z)( \
- n \
- , BOOST_CONTAINER_PP_PARAM_FORWARD \
- , _ \
- ) \
- ); \
- } \
- else \
- { \
- node_ptr = &*anc_ptr->emplace_left( \
- BOOST_PP_CAT(BOOST_PP_ENUM_, z)( \
- n \
- , BOOST_CONTAINER_PP_PARAM_FORWARD \
- , _ \
- ) \
- ); \
- } \
- anc_ptr = Balancer::post_insert(node_ptr); \
- if (!anc_ptr->get_parent_ptr()) \
- { \
- this->_root_ptr = anc_ptr; \
- } \
- return iterator( \
- make_in_order_iterator_position(*node_ptr) \
- , transform_function() \
- ); \
- } \
- else \
- { \
- this->emplace_back( \
- BOOST_PP_CAT(BOOST_PP_ENUM_TRAILING_, z)( \
- n \
- , BOOST_CONTAINER_PP_PARAM_FORWARD \
- , _ \
- ) \
- ); \
- return this->end(); \
- } \
- } \
-//!
- BOOST_PP_REPEAT(
- BOOST_CONTAINER_MAX_CONSTRUCTOR_PARAMETERS
- , BOOST_TREE_NODE_CONTAINER_BINARY_MACRO
- , _
- )
-#undef BOOST_TREE_NODE_CONTAINER_BINARY_MACRO
-#endif // BOOST_CONTAINER_PERFECT_FORWARDING
-
- template <typename T, typename NodeGenerator, typename Balancer>
- typename binode_container<T,NodeGenerator,Balancer>::iterator
- binode_container<T,NodeGenerator,Balancer>::erase(
- const_iterator itr
- )
- {
- if (itr.base()->empty() && (this->_root_ptr == &*itr.base()))
- {
- this->clear();
- return this->end();
- }
-
- typename node::pointer anc_ptr = const_cast<typename node::pointer>(
- &*itr.base()
- );
- iterator result(
- make_in_order_iterator_position(*anc_ptr)
- , transform_function()
- );
- bool must_erase_begin = (result == this->begin());
-
- if (!must_erase_begin)
- {
- --result;
- }
-
- for (typename node::pointer desc_ptr;;)
- {
- if (
- (desc_ptr = anc_ptr->get_left_child_ptr()) && (
- !anc_ptr->get_right_child_ptr()
- )
- )
- {
- while (desc_ptr->get_right_child_ptr())
- {
- desc_ptr = desc_ptr->get_right_child_ptr();
- }
-
- if (desc_ptr->get_parent_ptr() == anc_ptr)
- {
- if (!anc_ptr->get_right_child_ptr())
- {
- put(*anc_ptr, data_key(), get(*desc_ptr, data_key()));
-
- bool must_rebalance = Balancer::pre_erase(*desc_ptr);
-
- anc_ptr->erase_left();
-
- if (must_rebalance)
- {
- anc_ptr = Balancer::post_erase_left(anc_ptr);
-
- if (!anc_ptr->get_parent_ptr())
- {
- this->_root_ptr = anc_ptr;
- }
- }
-
- break;
- }
- }
- else // if (desc_ptr == anc_ptr->get_right_child_ptr())
- {
- put(*anc_ptr, data_key(), get(*desc_ptr, data_key()));
-
- if (desc_ptr->get_left_child_ptr())
- {
- anc_ptr = desc_ptr;
- }
- else // if (desc_ptr->empty())
- {
- anc_ptr = desc_ptr->get_parent_ptr();
-
- if (anc_ptr->get_left_child_ptr())
- {
- put(*desc_ptr, data_key(), get(*anc_ptr, data_key()));
- }
- else // desc_ptr is only child of anc_ptr
- {
- bool must_rebalance = Balancer::pre_erase(*desc_ptr);
-
- anc_ptr->erase_right();
-
- if (must_rebalance)
- {
- anc_ptr = Balancer::post_erase_right(anc_ptr);
-
- if (!anc_ptr->get_parent_ptr())
- {
- this->_root_ptr = anc_ptr;
- }
- }
-
- break;
- }
- }
-
- continue;
- }
- }
-
- if ((desc_ptr = anc_ptr->get_right_child_ptr()))
- {
- while (desc_ptr->get_left_child_ptr())
- {
- desc_ptr = desc_ptr->get_left_child_ptr();
- }
-
- put(*anc_ptr, data_key(), get(*desc_ptr, data_key()));
-
- if (desc_ptr->get_right_child_ptr())
- {
- if (desc_ptr->get_right_child_ptr()->empty())
- {
- bool must_rebalance = Balancer::pre_erase(*desc_ptr);
-
- anc_ptr->erase_right();
-
- if (must_rebalance)
- {
- anc_ptr = Balancer::post_erase_right(anc_ptr);
-
- if (!anc_ptr->get_parent_ptr())
- {
- this->_root_ptr = anc_ptr;
- }
- }
- }
- else
- {
- anc_ptr = desc_ptr;
- }
- }
- else if (desc_ptr->get_parent_ptr() == anc_ptr)
- {
- bool must_rebalance = Balancer::pre_erase(*desc_ptr);
-
- anc_ptr->erase_right();
-
- if (must_rebalance)
- {
- anc_ptr = Balancer::post_erase_right(anc_ptr);
-
- if (!anc_ptr->get_parent_ptr())
- {
- this->_root_ptr = anc_ptr;
- }
- }
-
- break;
- }
- else
- {
- BOOST_ASSERT(desc_ptr->empty());
- anc_ptr = desc_ptr->get_parent_ptr();
- BOOST_ASSERT(anc_ptr->get_left_child_ptr() == desc_ptr);
-
- if (anc_ptr->get_right_child_ptr())
- {
- put(*desc_ptr, data_key(), get(*anc_ptr, data_key()));
- }
- else // desc_ptr is only child of anc_ptr
- {
- bool must_rebalance = Balancer::pre_erase(*desc_ptr);
-
- anc_ptr->erase_left();
-
- if (must_rebalance)
- {
- anc_ptr = Balancer::post_erase_left(anc_ptr);
-
- if (!anc_ptr->get_parent_ptr())
- {
- this->_root_ptr = anc_ptr;
- }
- }
-
- break;
- }
- }
- }
- else // if (anc_ptr->empty())
- {
- desc_ptr = anc_ptr;
- anc_ptr = anc_ptr->get_parent_ptr();
-
- bool must_rebalance = Balancer::pre_erase(*desc_ptr);
-
- if (anc_ptr->get_left_child_ptr() == desc_ptr)
- {
- anc_ptr->erase_left();
-
- if (must_rebalance)
- {
- anc_ptr = Balancer::post_erase_left(anc_ptr);
-
- if (!anc_ptr->get_parent_ptr())
- {
- this->_root_ptr = anc_ptr;
- }
- }
- }
- else // if (anc_ptr->get_right_child_ptr() == desc_ptr)
- {
- anc_ptr->erase_right();
-
- if (must_rebalance)
- {
- anc_ptr = Balancer::post_erase_right(anc_ptr);
-
- if (!anc_ptr->get_parent_ptr())
- {
- this->_root_ptr = anc_ptr;
- }
- }
- }
-
- break;
- }
- }
-
- return must_erase_begin ? this->begin() : ++result;
- }
-
- template <typename T, typename NodeGenerator, typename Balancer>
- void
- binode_container<T,NodeGenerator,Balancer>::erase(
- const_iterator itr
- , const_iterator itr_end
- )
- {
- while (itr != itr_end)
- {
- itr = this->erase(itr);
- }
- }
-
- template <typename T, typename NodeGenerator, typename Balancer>
- inline bool binode_container<T,NodeGenerator,Balancer>::empty() const
- {
- return !this->_root_ptr;
- }
-
- template <typename T, typename NodeGenerator, typename Balancer>
- void binode_container<T,NodeGenerator,Balancer>::clear()
- {
- if (this->_root_ptr)
- {
-#if defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- this->_allocator.destroy(this->_root_ptr);
- this->_allocator.deallocate(this->_root_ptr, 1);
-#else // !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- ::boost::container::allocator_traits<
- allocator_type
- >::destroy(this->_allocator, this->_root_ptr);
- ::boost::container::allocator_traits<
- allocator_type
- >::deallocate(this->_allocator, this->_root_ptr, 1);
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-#if defined BOOST_NO_CXX11_NULLPTR
- this->_root_ptr = 0;
-#else
- this->_root_ptr = nullptr;
-#endif
- }
- }
-
- template <typename T, typename NodeGenerator, typename Balancer>
- inline typename binode_container<T,NodeGenerator,Balancer>::size_type
- binode_container<T,NodeGenerator,Balancer>::_size(
- ::boost::mpl::true_
- ) const
- {
- return this->_root_ptr ? get(*this->_root_ptr, count_key()) : 0;
- }
-
- template <typename T, typename NodeGenerator, typename Balancer>
- inline typename binode_container<T,NodeGenerator,Balancer>::size_type
- binode_container<T,NodeGenerator,Balancer>::_size(
- ::boost::mpl::false_
- ) const
- {
- return ::std::distance(this->cbegin(), this->cend());
- }
-
- template <typename T, typename NodeGenerator, typename Balancer>
- inline typename binode_container<T,NodeGenerator,Balancer>::size_type
- binode_container<T,NodeGenerator,Balancer>::size() const
- {
- return this->_size(result_of::has_key<node,count_key>());
- }
-
- template <typename T, typename NodeGenerator, typename Balancer>
- inline typename binode_container<T,NodeGenerator,Balancer>::const_reference
- binode_container<T,NodeGenerator,Balancer>::operator[](
- size_type index
- ) const
- {
- BOOST_ASSERT_MSG(
- this->_root_ptr && (index < this->size())
- , "index out of bounds"
- );
-
- typename node::const_pointer node_ptr = this->_root_ptr;
-
- return transform_function()(
- *binary_descendant_at_index(node_ptr, index)
- );
- }
-
- template <typename T, typename NodeGenerator, typename Balancer>
- inline typename binode_container<T,NodeGenerator,Balancer>::reference
- binode_container<T,NodeGenerator,Balancer>::operator[](size_type index)
- {
- BOOST_ASSERT_MSG(
- this->_root_ptr && (index < this->size())
- , "index out of bounds"
- );
-
- return transform_function()(
- *binary_descendant_at_index(this->_root_ptr, index)
- );
- }
-}} // namespace boost::tree_node
-
-#endif // BOOST_TREE_NODE_CONTAINER_BINODE_HPP_INCLUDED
-

Deleted: sandbox/tree_node/boost/tree_node/container/binode_associative.hpp
==============================================================================
--- sandbox/tree_node/boost/tree_node/container/binode_associative.hpp 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84956)
+++ /dev/null 00:00:00 1970 (deleted)
@@ -1,4655 +0,0 @@
-// 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)
-
-#ifndef BOOST_TREE_NODE_CONTAINER_BINODE_ASSOCIATIVE_HPP_INCLUDED
-#define BOOST_TREE_NODE_CONTAINER_BINODE_ASSOCIATIVE_HPP_INCLUDED
-
-#include <boost/config.hpp>
-
-#if !defined BOOST_NO_CXX11_NULLPTR
-#include <cstddef>
-#endif
-
-#include <algorithm>
-#include <utility>
-#include <boost/tr1/type_traits.hpp>
-#include <boost/mpl/bool.hpp>
-#include <boost/mpl/apply_wrap.hpp>
-#include <boost/mpl/if.hpp>
-#include <boost/mpl/eval_if.hpp>
-#include <boost/iterator/transform_iterator.hpp>
-#include <boost/utility/value_init.hpp>
-
-#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-#include <boost/move/move.hpp>
-#include <boost/container/allocator_traits.hpp>
-#endif
-
-#if !defined BOOST_CONTAINER_PERFECT_FORWARDING
-#include <boost/preprocessor/repetition/repeat.hpp>
-#endif
-
-#include <boost/tree_node/preprocessor.hpp>
-#include <boost/tree_node/key/data.hpp>
-#include <boost/tree_node/key/count.hpp>
-#include <boost/tree_node/iterator/in_order.hpp>
-#include <boost/tree_node/intrinsic/has_key.hpp>
-#include <boost/tree_node/intrinsic/value_at_key.hpp>
-#include <boost/tree_node/algorithm/binary_descendant.hpp>
-#include <boost/tree_node/algorithm/binary_lower_bound.hpp>
-#include <boost/tree_node/algorithm/binary_upper_bound.hpp>
-#include <boost/tree_node/algorithm/binary_descendant_at_index.hpp>
-#include <boost/tree_node/container/binode_associative_fwd.hpp>
-#include <boost/assert.hpp>
-
-namespace boost { namespace tree_node {
-
- template <
- typename NodeGenerator
- , typename T1
- , typename T2
- , typename IsMultipleAssociative
- , typename CompareSelector
- , typename Balancer
- >
- class binode_associative_container
- {
-#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- BOOST_COPYABLE_AND_MOVABLE(binode_associative_container)
-#endif
-
- public:
- //[reference__binode_associative_container__key_type
- typedef T1 key_type;
- //]
-
- //[reference__binode_associative_container__value_type
- typedef typename ::boost::mpl::if_<
- ::std::tr1::is_void<T2>
- , T1
- , ::std::pair<T1 const,T2>
- >::type
- value_type;
- //]
-
- //[reference__binode_associative_container__reference
- typedef value_type& reference;
- //]
-
- //[reference__binode_associative_container__const_reference
- typedef value_type const& const_reference;
- //]
-
- //[reference__binode_associative_container__pointer
- typedef value_type* pointer;
- //]
-
- //[reference__binode_associative_container__const_pointer
- typedef value_type const* const_pointer;
- //]
-
- //[reference__binode_associative_container__node
- typedef typename ::boost::mpl::apply_wrap1<
- NodeGenerator
- , typename ::boost::mpl::if_<
- ::std::tr1::is_void<T2>
- , T1
- , ::std::pair<T1,T2>
- >::type
- >::type
- node;
- //]
-
- //[reference__binode_associative_container__allocator_type
- typedef typename node::traits::allocator allocator_type;
- //]
-
- private:
- //[reference__binode_associative_container__transition_function
- struct simple_transform_function
- {
- typedef const_reference const_result;
- typedef const_reference mutable_result;
- const_reference operator()(node const& n) const;
- };
-
- struct pair_associative_transform_function
- {
- typedef ::std::pair<T1 const&,T2 const&> const_result;
- typedef ::std::pair<T1 const&,T2&> mutable_result;
- const_result operator()(node const& n) const;
- mutable_result operator()(node& n) const;
- };
-
- typedef typename ::boost::mpl::if_<
- ::std::tr1::is_void<T2>
- , simple_transform_function
- , pair_associative_transform_function
- >::type
- transform_function;
- //]
-
- public:
- //[reference__binode_associative_container__iterator
- typedef ::boost::transform_iterator<
- transform_function
- , in_order_iterator<
- typename ::boost::mpl::if_<
- ::std::tr1::is_void<T2>
- , node const
- , node
- >::type
- >
- >
- iterator;
- //]
-
- //[reference__binode_associative_container__const_iterator
- typedef ::boost::transform_iterator<
- transform_function
- , in_order_iterator<node const>
- >
- const_iterator;
- //]
-
- //[reference__binode_associative_container__reverse_iterator
- typedef ::boost::transform_iterator<
- transform_function
- , in_order_iterator<
- typename ::boost::mpl::if_<
- ::std::tr1::is_void<T2>
- , node const
- , node
- >::type
- , ::boost::mpl::true_
- >
- >
- reverse_iterator;
- //]
-
- //[reference__binode_associative_container__const_reverse_iterator
- typedef ::boost::transform_iterator<
- transform_function
- , in_order_iterator<node const,::boost::mpl::true_>
- >
- const_reverse_iterator;
- //]
-
- //[reference__binode_associative_container__size_type
- typedef typename ::boost::mpl::eval_if<
- result_of::has_key<node,count_key>
- , result_of::value_at_key<node,count_key>
- , typename node::size_type
- >::type
- size_type;
- //]
-
- //[reference__binode_associative_container__key_compare
- typedef typename ::boost::mpl::apply_wrap1<
- CompareSelector
- , key_type
- >::type
- key_compare;
- //]
-
- //[reference__binode_associative_container__value_compare
- class value_compare
- {
- //<-
- key_compare const& _compare;
- //->
-
- public:
- typedef bool result_type;
-
- explicit value_compare(key_compare const& compare);
- result_type operator()(const_reference, const_reference) const;
- result_type operator()(node const& n, key_type const& key) const;
- result_type operator()(key_type const& key, node const& n) const;
-
- //<-
- private:
- result_type
- _evaluate(
- const_reference arg1
- , const_reference arg2
- , ::std::tr1::true_type
- ) const;
- result_type
- _evaluate(
- const_reference arg1
- , const_reference arg2
- , ::std::tr1::false_type
- ) const;
- result_type
- _evaluate(
- node const& n
- , key_type const& key
- , ::std::tr1::true_type
- ) const;
- result_type
- _evaluate(
- node const& n
- , key_type const& key
- , ::std::tr1::false_type
- ) const;
- result_type
- _evaluate(
- key_type const& key
- , node const& n
- , ::std::tr1::true_type
- ) const;
- result_type
- _evaluate(
- key_type const& key
- , node const& n
- , ::std::tr1::false_type
- ) const;
- //->
- };
- //]
-
- private:
- class insert_compare
- {
- key_compare const& _compare;
-
- public:
- typedef bool result_type;
-
- explicit insert_compare(key_compare const& compare);
- result_type operator()(node const&, const_reference) const;
- result_type operator()(const_reference, node const&) const;
-
- private:
- result_type
- _evaluate(
- node const& n
- , const_reference value
- , ::std::tr1::true_type
- ) const;
- result_type
- _evaluate(
- node const& n
- , const_reference value
- , ::std::tr1::false_type
- ) const;
- result_type
- _evaluate(
- const_reference value
- , node const& n
- , ::std::tr1::true_type
- ) const;
- result_type
- _evaluate(
- const_reference value
- , node const& n
- , ::std::tr1::false_type
- ) const;
- };
-
- allocator_type _allocator;
- typename node::pointer _root_ptr;
- key_compare _key_compare;
- value_compare _value_compare;
-
- public:
- //[reference__binode_associative_container__default_ctor
- binode_associative_container();
- //]
-
- //[reference__binode_associative_container__ctor_w_alloc
- explicit binode_associative_container(allocator_type const& allocator);
- //]
-
-#if defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- //[reference__binode_associative_container__copy_ctor
- binode_associative_container(
- binode_associative_container const& copy
- );
- //]
-#else
- binode_associative_container(
- BOOST_COPY_ASSIGN_REF(binode_associative_container) copy
- );
-#endif
-
-#if defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- //[reference__binode_associative_container__copy_ctor_w_alloc
- binode_associative_container(
- binode_associative_container const& copy
- , allocator_type const& allocator
- );
- //]
-#else
- binode_associative_container(
- BOOST_COPY_ASSIGN_REF(binode_associative_container) copy
- , allocator_type const& allocator
- );
-#endif
-
-#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- binode_associative_container(
- BOOST_RV_REF(binode_associative_container) source
- );
-
- binode_associative_container(
- BOOST_RV_REF(binode_associative_container) source
- , allocator_type const& allocator
- );
-
- binode_associative_container&
- operator=(BOOST_RV_REF(binode_associative_container) source);
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-#if defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- //[reference__binode_associative_container__copy_assign
- binode_associative_container&
- operator=(binode_associative_container const& copy);
- //]
-#else
- binode_associative_container&
- operator=(
- BOOST_COPY_ASSIGN_REF(binode_associative_container) copy
- );
-#endif
-
- //[reference__binode_associative_container__dtor
- ~binode_associative_container();
- //]
-
- //[reference__binode_associative_container__data
- typename node::const_pointer data() const;
- //]
-
- //[reference__binode_associative_container__cbegin
- const_iterator cbegin() const;
- const_iterator begin() const;
- //]
-
- //[reference__binode_associative_container__begin
- iterator begin();
- //]
-
- //[reference__binode_associative_container__cend
- const_iterator cend() const;
- const_iterator end() const;
- //]
-
- //[reference__binode_associative_container__end
- iterator end();
- //]
-
- //[reference__binode_associative_container__crbegin
- const_reverse_iterator crbegin() const;
- const_reverse_iterator rbegin() const;
- //]
-
- //[reference__binode_associative_container__rbegin
- reverse_iterator rbegin();
- //]
-
- //[reference__binode_associative_container__crend
- const_reverse_iterator crend() const;
- const_reverse_iterator rend() const;
- //]
-
- //[reference__binode_associative_container__rend
- reverse_iterator rend();
- //]
-
- //[reference__binode_associative_container__cfind
- const_iterator find(key_type const& key) const;
- //]
-
- //[reference__binode_associative_container__find
- iterator find(key_type const& key);
- //]
-
- //[reference__binode_associative_container__lower_bound__const
- const_iterator lower_bound(key_type const& key) const;
- //]
-
- //[reference__binode_associative_container__lower_bound
- iterator lower_bound(key_type const& key);
- //]
-
- //[reference__binode_associative_container__upper_bound__const
- const_iterator upper_bound(key_type const& key) const;
- //]
-
- //[reference__binode_associative_container__upper_bound
- iterator upper_bound(key_type const& key);
- //]
-
- //[reference__binode_associative_container__equal_range__const
- ::std::pair<const_iterator,const_iterator>
- equal_range(key_type const& key) const;
- //]
-
- //[reference__binode_associative_container__equal_range
- ::std::pair<iterator,iterator> equal_range(key_type const& key);
- //]
-
- //[reference__binode_associative_container__insert
- typename ::boost::mpl::if_<
- IsMultipleAssociative
- , iterator
- , ::std::pair<iterator,bool>
- >::type
- insert(value_type const& value);
- //]
-
-#if defined BOOST_CONTAINER_PERFECT_FORWARDING
- //[reference__binode_associative_container__emplace
- template <typename ...Args>
- typename ::boost::mpl::if_<
- IsMultipleAssociative
- , iterator
- , ::std::pair<iterator,bool>
- >::type
- emplace(Args&& ...args);
- //]
-#else // !defined BOOST_CONTAINER_PERFECT_FORWARDING
-#define BOOST_TREE_NODE_CONTAINER_BINARY_ASSOCIATIVE_MACRO(z, n, _) \
- BOOST_PP_EXPR_IF(n, template <) \
- BOOST_PP_ENUM_PARAMS_Z(z, n, typename P) \
- BOOST_PP_EXPR_IF(n, >) \
- typename ::boost::mpl::if_< \
- IsMultipleAssociative \
- , iterator \
- , ::std::pair<iterator,bool> \
- >::type \
- emplace( \
- BOOST_PP_CAT(BOOST_PP_ENUM_, z)( \
- n \
- , BOOST_CONTAINER_PP_PARAM_LIST \
- , _ \
- ) \
- ); \
-//!
- BOOST_PP_REPEAT(
- BOOST_CONTAINER_MAX_CONSTRUCTOR_PARAMETERS
- , BOOST_TREE_NODE_CONTAINER_BINARY_ASSOCIATIVE_MACRO
- , _
- )
-#undef BOOST_TREE_NODE_CONTAINER_BINARY_ASSOCIATIVE_MACRO
-#endif // BOOST_CONTAINER_PERFECT_FORWARDING
-
- //[reference__binode_associative_container__erase
- size_type erase(key_type const& key);
- //]
-
- //[reference__binode_associative_container__empty
- bool empty() const;
- //]
-
- //[reference__binode_associative_container__clear
- void clear();
- //]
-
- //[reference__binode_associative_container__size
- size_type size() const;
- //]
-
- //[reference__binode_associative_container__index_operator__const
- typename transform_function::const_result
- operator[](size_type const& index) const;
- //]
-
- //[reference__binode_associative_container__index_operator
- typename transform_function::mutable_result
- operator[](size_type const& index);
- //]
-
- private:
- static typename node::pointer
- _construct_node_from(
- ::std::tr1::true_type
- , allocator_type& allocator
- , value_type const& value
- );
-
- static typename node::pointer
- _construct_node_from(
- ::std::tr1::false_type
- , allocator_type& allocator
- , value_type const& value
- );
-
- static typename node::pointer
- _construct_node_from(
- ::std::tr1::true_type
- , allocator_type& allocator
- , typename node::pointer p
- );
-
- static typename node::pointer
- _construct_node_from(
- ::std::tr1::false_type
- , allocator_type& allocator
- , typename node::pointer p
- );
-
-#if defined BOOST_CONTAINER_PERFECT_FORWARDING
- template <typename ...Args>
- static typename node::pointer
- _construct_node_from(
- ::std::tr1::true_type
- , allocator_type& allocator
- , Args&& ...args
- );
-
- template <typename ...Args>
- static typename node::pointer
- _construct_node_from(
- ::std::tr1::false_type
- , allocator_type& allocator
- , Args&& ...args
- );
-
- template <typename ...Args>
- static value_type
- _construct_value_from(
- ::std::tr1::true_type
- , Args&& ...args
- );
-
- template <typename ...Args>
- static value_type
- _construct_value_from(
- ::std::tr1::false_type
- , key_type const& key
- , Args&& ...args
- );
-
- template <typename ...Args>
- iterator _emplace(::boost::mpl::true_, Args&& ...args);
-
- template <typename ...Args>
- ::std::pair<iterator,bool>
- _emplace(::boost::mpl::false_, Args&& ...args);
-#else // !defined BOOST_CONTAINER_PERFECT_FORWARDING
-#define BOOST_TREE_NODE_CONTAINER_BINARY_ASSOCIATIVE_MACRO(z, n, _) \
- BOOST_PP_EXPR_IF(n, template <) \
- BOOST_PP_ENUM_PARAMS_Z(z, n, typename P) \
- BOOST_PP_EXPR_IF(n, >) \
- static typename node::pointer \
- _construct_node_from( \
- ::std::tr1::true_type \
- , allocator_type& allocator \
- BOOST_PP_CAT(BOOST_PP_ENUM_TRAILING_, z)( \
- n \
- , BOOST_CONTAINER_PP_PARAM_LIST \
- , _ \
- ) \
- ); \
-//!
- BOOST_PP_REPEAT(
- BOOST_CONTAINER_MAX_CONSTRUCTOR_PARAMETERS
- , BOOST_TREE_NODE_CONTAINER_BINARY_ASSOCIATIVE_MACRO
- , _
- )
-#undef BOOST_TREE_NODE_CONTAINER_BINARY_ASSOCIATIVE_MACRO
-
-#define BOOST_TREE_NODE_CONTAINER_BINARY_ASSOCIATIVE_MACRO(z, n, _) \
- BOOST_PP_EXPR_IF(n, template <) \
- BOOST_PP_ENUM_PARAMS_Z(z, n, typename P) \
- BOOST_PP_EXPR_IF(n, >) \
- static typename node::pointer \
- _construct_node_from( \
- ::std::tr1::false_type \
- , allocator_type& allocator \
- BOOST_PP_CAT(BOOST_PP_ENUM_TRAILING_, z)( \
- n \
- , BOOST_CONTAINER_PP_PARAM_LIST \
- , _ \
- ) \
- ); \
-//!
- BOOST_PP_REPEAT(
- BOOST_CONTAINER_MAX_CONSTRUCTOR_PARAMETERS
- , BOOST_TREE_NODE_CONTAINER_BINARY_ASSOCIATIVE_MACRO
- , _
- )
-#undef BOOST_TREE_NODE_CONTAINER_BINARY_ASSOCIATIVE_MACRO
-
-#define BOOST_TREE_NODE_CONTAINER_BINARY_ASSOCIATIVE_MACRO(z, n, _) \
- BOOST_PP_EXPR_IF(n, template <) \
- BOOST_PP_ENUM_PARAMS_Z(z, n, typename P) \
- BOOST_PP_EXPR_IF(n, >) \
- static value_type \
- _construct_value_from( \
- ::std::tr1::true_type \
- BOOST_PP_CAT(BOOST_PP_ENUM_TRAILING_, z)( \
- n \
- , BOOST_CONTAINER_PP_PARAM_LIST \
- , _ \
- ) \
- ); \
-//!
- BOOST_PP_REPEAT(
- BOOST_CONTAINER_MAX_CONSTRUCTOR_PARAMETERS
- , BOOST_TREE_NODE_CONTAINER_BINARY_ASSOCIATIVE_MACRO
- , _
- )
-#undef BOOST_TREE_NODE_CONTAINER_BINARY_ASSOCIATIVE_MACRO
-
-#define BOOST_TREE_NODE_CONTAINER_BINARY_ASSOCIATIVE_MACRO(z, n, _) \
- BOOST_PP_EXPR_IF(n, template <) \
- BOOST_PP_ENUM_PARAMS_Z(z, n, typename P) \
- BOOST_PP_EXPR_IF(n, >) \
- static value_type \
- _construct_value_from( \
- ::std::tr1::false_type \
- , key_type const& key \
- BOOST_PP_CAT(BOOST_PP_ENUM_TRAILING_, z)( \
- n \
- , BOOST_CONTAINER_PP_PARAM_LIST \
- , _ \
- ) \
- ); \
-//!
- BOOST_PP_REPEAT(
- BOOST_PP_DEC(BOOST_CONTAINER_MAX_CONSTRUCTOR_PARAMETERS)
- , BOOST_TREE_NODE_CONTAINER_BINARY_ASSOCIATIVE_MACRO
- , _
- )
-#undef BOOST_TREE_NODE_CONTAINER_BINARY_ASSOCIATIVE_MACRO
-
-#define BOOST_TREE_NODE_CONTAINER_BINARY_ASSOCIATIVE_MACRO(z, n, _) \
- BOOST_PP_EXPR_IF(n, template <) \
- BOOST_PP_ENUM_PARAMS_Z(z, n, typename P) \
- BOOST_PP_EXPR_IF(n, >) \
- iterator \
- _emplace( \
- ::boost::mpl::true_ \
- BOOST_PP_CAT(BOOST_PP_ENUM_TRAILING_, z)( \
- n \
- , BOOST_CONTAINER_PP_PARAM_LIST \
- , _ \
- ) \
- ); \
-//!
- BOOST_PP_REPEAT(
- BOOST_CONTAINER_MAX_CONSTRUCTOR_PARAMETERS
- , BOOST_TREE_NODE_CONTAINER_BINARY_ASSOCIATIVE_MACRO
- , _
- )
-#undef BOOST_TREE_NODE_CONTAINER_BINARY_ASSOCIATIVE_MACRO
-
-#define BOOST_TREE_NODE_CONTAINER_BINARY_ASSOCIATIVE_MACRO(z, n, _) \
- BOOST_PP_EXPR_IF(n, template <) \
- BOOST_PP_ENUM_PARAMS_Z(z, n, typename P) \
- BOOST_PP_EXPR_IF(n, >) \
- ::std::pair<iterator,bool> \
- _emplace( \
- ::boost::mpl::false_ \
- BOOST_PP_CAT(BOOST_PP_ENUM_TRAILING_, z)( \
- n \
- , BOOST_CONTAINER_PP_PARAM_LIST \
- , _ \
- ) \
- ); \
-//!
- BOOST_PP_REPEAT(
- BOOST_CONTAINER_MAX_CONSTRUCTOR_PARAMETERS
- , BOOST_TREE_NODE_CONTAINER_BINARY_ASSOCIATIVE_MACRO
- , _
- )
-#undef BOOST_TREE_NODE_CONTAINER_BINARY_ASSOCIATIVE_MACRO
-#endif // BOOST_CONTAINER_PERFECT_FORWARDING
-
- iterator _insert(value_type const& value, ::boost::mpl::true_);
-
- ::std::pair<iterator,bool>
- _insert(value_type const& value, ::boost::mpl::false_);
-
- void _erase_one(typename node::pointer p);
-
- size_type _erase(key_type const& key, ::boost::mpl::true_);
-
- size_type _erase(key_type const& key, ::boost::mpl::false_);
-
- size_type _size(::boost::mpl::true_) const;
-
- size_type _size(::boost::mpl::false_) const;
- };
-
- template <
- typename NodeGenerator
- , typename T1
- , typename T2
- , typename IsMultipleAssociative
- , typename CompareSelector
- , typename Balancer
- >
- inline typename binode_associative_container<
- NodeGenerator
- , T1
- , T2
- , IsMultipleAssociative
- , CompareSelector
- , Balancer
- >::const_reference
- binode_associative_container<
- NodeGenerator
- , T1
- , T2
- , IsMultipleAssociative
- , CompareSelector
- , Balancer
- >::simple_transform_function::operator()(node const& n) const
- {
- return get(n, data_key());
- }
-
- template <
- typename NodeGenerator
- , typename T1
- , typename T2
- , typename IsMultipleAssociative
- , typename CompareSelector
- , typename Balancer
- >
- inline typename binode_associative_container<
- NodeGenerator
- , T1
- , T2
- , IsMultipleAssociative
- , CompareSelector
- , Balancer
- >::pair_associative_transform_function::const_result
- binode_associative_container<
- NodeGenerator
- , T1
- , T2
- , IsMultipleAssociative
- , CompareSelector
- , Balancer
- >::pair_associative_transform_function::operator()(node const& n) const
- {
- ::std::pair<T1,T2> const& p = get(n, data_key());
- ::std::pair<T1 const&,T2 const&> result(p.first, p.second);
- return result;
- }
-
- template <
- typename NodeGenerator
- , typename T1
- , typename T2
- , typename IsMultipleAssociative
- , typename CompareSelector
- , typename Balancer
- >
- inline typename binode_associative_container<
- NodeGenerator
- , T1
- , T2
- , IsMultipleAssociative
- , CompareSelector
- , Balancer
- >::pair_associative_transform_function::mutable_result
- binode_associative_container<
- NodeGenerator
- , T1
- , T2
- , IsMultipleAssociative
- , CompareSelector
- , Balancer
- >::pair_associative_transform_function::operator()(node& n) const
- {
- ::std::pair<T1,T2>& p = get(n, data_key());
- ::std::pair<T1 const&,T2&> result(p.first, p.second);
- return result;
- }
-
- template <
- typename NodeGenerator
- , typename T1
- , typename T2
- , typename IsMultipleAssociative
- , typename CompareSelector
- , typename Balancer
- >
- binode_associative_container<
- NodeGenerator
- , T1
- , T2
- , IsMultipleAssociative
- , CompareSelector
- , Balancer
- >::value_compare::value_compare(key_compare const& c) : _compare(c)
- {
- }
-
- template <
- typename NodeGenerator
- , typename T1
- , typename T2
- , typename IsMultipleAssociative
- , typename CompareSelector
- , typename Balancer
- >
- inline typename binode_associative_container<
- NodeGenerator
- , T1
- , T2
- , IsMultipleAssociative
- , CompareSelector
- , Balancer
- >::value_compare::result_type
- binode_associative_container<
- NodeGenerator
- , T1
- , T2
- , IsMultipleAssociative
- , CompareSelector
- , Balancer
- >::value_compare::_evaluate(
- const_reference arg1
- , const_reference arg2
- , ::std::tr1::true_type
- ) const
- {
- return this->_compare(arg1, arg2);
- }
-
- template <
- typename NodeGenerator
- , typename T1
- , typename T2
- , typename IsMultipleAssociative
- , typename CompareSelector
- , typename Balancer
- >
- inline typename binode_associative_container<
- NodeGenerator
- , T1
- , T2
- , IsMultipleAssociative
- , CompareSelector
- , Balancer
- >::value_compare::result_type
- binode_associative_container<
- NodeGenerator
- , T1
- , T2
- , IsMultipleAssociative
- , CompareSelector
- , Balancer
- >::value_compare::_evaluate(
- const_reference arg1
- , const_reference arg2
- , ::std::tr1::false_type
- ) const
- {
- return this->_compare(arg1.first, arg2.first);
- }
-
- template <
- typename NodeGenerator
- , typename T1
- , typename T2
- , typename IsMultipleAssociative
- , typename CompareSelector
- , typename Balancer
- >
- inline typename binode_associative_container<
- NodeGenerator
- , T1
- , T2
- , IsMultipleAssociative
- , CompareSelector
- , Balancer
- >::value_compare::result_type
- binode_associative_container<
- NodeGenerator
- , T1
- , T2
- , IsMultipleAssociative
- , CompareSelector
- , Balancer
- >::value_compare::operator()(
- const_reference arg1
- , const_reference arg2
- ) const
- {
- return this->_evaluate(arg1, arg2, ::std::tr1::is_void<T2>());
- }
-
- template <
- typename NodeGenerator
- , typename T1
- , typename T2
- , typename IsMultipleAssociative
- , typename CompareSelector
- , typename Balancer
- >
- inline typename binode_associative_container<
- NodeGenerator
- , T1
- , T2
- , IsMultipleAssociative
- , CompareSelector
- , Balancer
- >::value_compare::result_type
- binode_associative_container<
- NodeGenerator
- , T1
- , T2
- , IsMultipleAssociative
- , CompareSelector
- , Balancer
- >::value_compare::_evaluate(
- node const& n
- , key_type const& key
- , ::std::tr1::true_type
- ) const
- {
- return this->_compare(get(n, data_key()), key);
- }
-
- template <
- typename NodeGenerator
- , typename T1
- , typename T2
- , typename IsMultipleAssociative
- , typename CompareSelector
- , typename Balancer
- >
- inline typename binode_associative_container<
- NodeGenerator
- , T1
- , T2
- , IsMultipleAssociative
- , CompareSelector
- , Balancer
- >::value_compare::result_type
- binode_associative_container<
- NodeGenerator
- , T1
- , T2
- , IsMultipleAssociative
- , CompareSelector
- , Balancer
- >::value_compare::_evaluate(
- node const& n
- , key_type const& key
- , ::std::tr1::false_type
- ) const
- {
- return this->_compare(get(n, data_key()).first, key);
- }
-
- template <
- typename NodeGenerator
- , typename T1
- , typename T2
- , typename IsMultipleAssociative
- , typename CompareSelector
- , typename Balancer
- >
- inline typename binode_associative_container<
- NodeGenerator
- , T1
- , T2
- , IsMultipleAssociative
- , CompareSelector
- , Balancer
- >::value_compare::result_type
- binode_associative_container<
- NodeGenerator
- , T1
- , T2
- , IsMultipleAssociative
- , CompareSelector
- , Balancer
- >::value_compare::operator()(node const& n, key_type const& key) const
- {
- return this->_evaluate(n, key, ::std::tr1::is_void<T2>());
- }
-
- template <
- typename NodeGenerator
- , typename T1
- , typename T2
- , typename IsMultipleAssociative
- , typename CompareSelector
- , typename Balancer
- >
- inline typename binode_associative_container<
- NodeGenerator
- , T1
- , T2
- , IsMultipleAssociative
- , CompareSelector
- , Balancer
- >::value_compare::result_type
- binode_associative_container<
- NodeGenerator
- , T1
- , T2
- , IsMultipleAssociative
- , CompareSelector
- , Balancer
- >::value_compare::_evaluate(
- key_type const& key
- , node const& n
- , ::std::tr1::true_type
- ) const
- {
- return this->_compare(key, get(n, data_key()));
- }
-
- template <
- typename NodeGenerator
- , typename T1
- , typename T2
- , typename IsMultipleAssociative
- , typename CompareSelector
- , typename Balancer
- >
- inline typename binode_associative_container<
- NodeGenerator
- , T1
- , T2
- , IsMultipleAssociative
- , CompareSelector
- , Balancer
- >::value_compare::result_type
- binode_associative_container<
- NodeGenerator
- , T1
- , T2
- , IsMultipleAssociative
- , CompareSelector
- , Balancer
- >::value_compare::_evaluate(
- key_type const& key
- , node const& n
- , ::std::tr1::false_type
- ) const
- {
- return this->_compare(key, get(n, data_key()).first);
- }
-
- template <
- typename NodeGenerator
- , typename T1
- , typename T2
- , typename IsMultipleAssociative
- , typename CompareSelector
- , typename Balancer
- >
- inline typename binode_associative_container<
- NodeGenerator
- , T1
- , T2
- , IsMultipleAssociative
- , CompareSelector
- , Balancer
- >::value_compare::result_type
- binode_associative_container<
- NodeGenerator
- , T1
- , T2
- , IsMultipleAssociative
- , CompareSelector
- , Balancer
- >::value_compare::operator()(key_type const& key, node const& n) const
- {
- return this->_evaluate(key, n, ::std::tr1::is_void<T2>());
- }
-
- template <
- typename NodeGenerator
- , typename T1
- , typename T2
- , typename IsMultipleAssociative
- , typename CompareSelector
- , typename Balancer
- >
- binode_associative_container<
- NodeGenerator
- , T1
- , T2
- , IsMultipleAssociative
- , CompareSelector
- , Balancer
- >::insert_compare::insert_compare(key_compare const& c) : _compare(c)
- {
- }
-
- template <
- typename NodeGenerator
- , typename T1
- , typename T2
- , typename IsMultipleAssociative
- , typename CompareSelector
- , typename Balancer
- >
- inline typename binode_associative_container<
- NodeGenerator
- , T1
- , T2
- , IsMultipleAssociative
- , CompareSelector
- , Balancer
- >::insert_compare::result_type
- binode_associative_container<
- NodeGenerator
- , T1
- , T2
- , IsMultipleAssociative
- , CompareSelector
- , Balancer
- >::insert_compare::_evaluate(
- const_reference value
- , node const& n
- , ::std::tr1::true_type
- ) const
- {
- return this->_compare(value, get(n, data_key()));
- }
-
- template <
- typename NodeGenerator
- , typename T1
- , typename T2
- , typename IsMultipleAssociative
- , typename CompareSelector
- , typename Balancer
- >
- inline typename binode_associative_container<
- NodeGenerator
- , T1
- , T2
- , IsMultipleAssociative
- , CompareSelector
- , Balancer
- >::insert_compare::result_type
- binode_associative_container<
- NodeGenerator
- , T1
- , T2
- , IsMultipleAssociative
- , CompareSelector
- , Balancer
- >::insert_compare::_evaluate(
- const_reference value
- , node const& n
- , ::std::tr1::false_type
- ) const
- {
- return this->_compare(value.first, get(n, data_key()).first);
- }
-
- template <
- typename NodeGenerator
- , typename T1
- , typename T2
- , typename IsMultipleAssociative
- , typename CompareSelector
- , typename Balancer
- >
- inline typename binode_associative_container<
- NodeGenerator
- , T1
- , T2
- , IsMultipleAssociative
- , CompareSelector
- , Balancer
- >::insert_compare::result_type
- binode_associative_container<
- NodeGenerator
- , T1
- , T2
- , IsMultipleAssociative
- , CompareSelector
- , Balancer
- >::insert_compare::operator()(
- const_reference value
- , node const& n
- ) const
- {
- return this->_evaluate(value, n, ::std::tr1::is_void<T2>());
- }
-
- template <
- typename NodeGenerator
- , typename T1
- , typename T2
- , typename IsMultipleAssociative
- , typename CompareSelector
- , typename Balancer
- >
- inline typename binode_associative_container<
- NodeGenerator
- , T1
- , T2
- , IsMultipleAssociative
- , CompareSelector
- , Balancer
- >::insert_compare::result_type
- binode_associative_container<
- NodeGenerator
- , T1
- , T2
- , IsMultipleAssociative
- , CompareSelector
- , Balancer
- >::insert_compare::_evaluate(
- node const& n
- , const_reference value
- , ::std::tr1::true_type
- ) const
- {
- return this->_compare(get(n, data_key()), value);
- }
-
- template <
- typename NodeGenerator
- , typename T1
- , typename T2
- , typename IsMultipleAssociative
- , typename CompareSelector
- , typename Balancer
- >
- inline typename binode_associative_container<
- NodeGenerator
- , T1
- , T2
- , IsMultipleAssociative
- , CompareSelector
- , Balancer
- >::insert_compare::result_type
- binode_associative_container<
- NodeGenerator
- , T1
- , T2
- , IsMultipleAssociative
- , CompareSelector
- , Balancer
- >::insert_compare::_evaluate(
- node const& n
- , const_reference value
- , ::std::tr1::false_type
- ) const
- {
- return this->_compare(get(n, data_key()).first, value.first);
- }
-
- template <
- typename NodeGenerator
- , typename T1
- , typename T2
- , typename IsMultipleAssociative
- , typename CompareSelector
- , typename Balancer
- >
- inline typename binode_associative_container<
- NodeGenerator
- , T1
- , T2
- , IsMultipleAssociative
- , CompareSelector
- , Balancer
- >::insert_compare::result_type
- binode_associative_container<
- NodeGenerator
- , T1
- , T2
- , IsMultipleAssociative
- , CompareSelector
- , Balancer
- >::insert_compare::operator()(
- node const& n
- , const_reference value
- ) const
- {
- return this->_evaluate(n, value, ::std::tr1::is_void<T2>());
- }
-
- template <
- typename NodeGenerator
- , typename T1
- , typename T2
- , typename IsMultipleAssociative
- , typename CompareSelector
- , typename Balancer
- >
- binode_associative_container<
- NodeGenerator
- , T1
- , T2
- , IsMultipleAssociative
- , CompareSelector
- , Balancer
- >::binode_associative_container()
- : _allocator()
- , _root_ptr(
-#if defined BOOST_NO_CXX11_NULLPTR
- 0
-#else
- nullptr
-#endif
- )
- , _key_compare()
- , _value_compare(this->_key_compare)
- {
- }
-
- template <
- typename NodeGenerator
- , typename T1
- , typename T2
- , typename IsMultipleAssociative
- , typename CompareSelector
- , typename Balancer
- >
- binode_associative_container<
- NodeGenerator
- , T1
- , T2
- , IsMultipleAssociative
- , CompareSelector
- , Balancer
- >::binode_associative_container(allocator_type const& allocator)
- : _allocator(allocator)
- , _root_ptr(
-#if defined BOOST_NO_CXX11_NULLPTR
- 0
-#else
- nullptr
-#endif
- )
- , _key_compare()
- , _value_compare(this->_key_compare)
- {
- }
-
- template <
- typename NodeGenerator
- , typename T1
- , typename T2
- , typename IsMultipleAssociative
- , typename CompareSelector
- , typename Balancer
- >
- typename binode_associative_container<
- NodeGenerator
- , T1
- , T2
- , IsMultipleAssociative
- , CompareSelector
- , Balancer
- >::node::pointer
- binode_associative_container<
- NodeGenerator
- , T1
- , T2
- , IsMultipleAssociative
- , CompareSelector
- , Balancer
- >::_construct_node_from(
- ::std::tr1::true_type
- , allocator_type& allocator
- , typename node::pointer p
- )
- {
- if (p)
- {
-#if defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- typename node::pointer result(allocator.allocate(1));
- allocator.construct(result, *p);
-#else // !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- typename node::pointer result(
- ::boost::container::allocator_traits<
- allocator_type
- >::allocate(allocator, 1)
- );
- ::boost::container::allocator_traits<
- allocator_type
- >::construct(allocator, result, *p);
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- return result;
- }
- else
- {
- return p;
- }
- }
-
- template <
- typename NodeGenerator
- , typename T1
- , typename T2
- , typename IsMultipleAssociative
- , typename CompareSelector
- , typename Balancer
- >
- typename binode_associative_container<
- NodeGenerator
- , T1
- , T2
- , IsMultipleAssociative
- , CompareSelector
- , Balancer
- >::node::pointer
- binode_associative_container<
- NodeGenerator
- , T1
- , T2
- , IsMultipleAssociative
- , CompareSelector
- , Balancer
- >::_construct_node_from(
- ::std::tr1::false_type
- , allocator_type& allocator
- , typename node::pointer p
- )
- {
- if (p)
- {
-#if defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- typename node::pointer result(allocator.allocate(1));
- allocator.construct(result, *p, allocator);
-#else // !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- typename node::pointer result(
- ::boost::container::allocator_traits<
- allocator_type
- >::allocate(allocator, 1)
- );
- ::boost::container::allocator_traits<
- allocator_type
- >::construct(allocator, result, *p, allocator);
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- return result;
- }
- else
- {
- return p;
- }
- }
-
- template <
- typename NodeGenerator
- , typename T1
- , typename T2
- , typename IsMultipleAssociative
- , typename CompareSelector
- , typename Balancer
- >
- binode_associative_container<
- NodeGenerator
- , T1
- , T2
- , IsMultipleAssociative
- , CompareSelector
- , Balancer
- >::binode_associative_container(
-#if defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- binode_associative_container const& copy
-#else
- BOOST_COPY_ASSIGN_REF(binode_associative_container) copy
-#endif
- ) : _allocator(copy._allocator)
- , _root_ptr(
- this->_construct_node_from(
- ::std::tr1::is_const<
- typename ::std::tr1::remove_reference<
- typename node::traits::allocator_reference
- >::type
- >()
- , this->_allocator
- , copy._root_ptr
- )
- )
- , _key_compare(copy._key_compare)
- , _value_compare(this->_key_compare)
- {
- }
-
- template <
- typename NodeGenerator
- , typename T1
- , typename T2
- , typename IsMultipleAssociative
- , typename CompareSelector
- , typename Balancer
- >
- binode_associative_container<
- NodeGenerator
- , T1
- , T2
- , IsMultipleAssociative
- , CompareSelector
- , Balancer
- >::binode_associative_container(
-#if defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- binode_associative_container const& copy
-#else
- BOOST_COPY_ASSIGN_REF(binode_associative_container) copy
-#endif
- , allocator_type const& allocator
- ) : _allocator(allocator)
- , _root_ptr(
- this->_construct_node_from(
- ::std::tr1::is_const<
- typename ::std::tr1::remove_reference<
- typename node::traits::allocator_reference
- >::type
- >()
- , this->_allocator
- , copy._root_ptr
- )
- )
- , _key_compare(copy._key_compare)
- , _value_compare(this->_key_compare)
- {
- }
-
-#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- template <
- typename NodeGenerator
- , typename T1
- , typename T2
- , typename IsMultipleAssociative
- , typename CompareSelector
- , typename Balancer
- >
- binode_associative_container<
- NodeGenerator
- , T1
- , T2
- , IsMultipleAssociative
- , CompareSelector
- , Balancer
- >::binode_associative_container(
- BOOST_RV_REF(binode_associative_container) source
- ) : _allocator(::boost::move(source._allocator))
- , _root_ptr(source._root_ptr)
- , _key_compare(::boost::move(source._key_compare))
- , _value_compare(this->_key_compare)
- {
-#if defined BOOST_NO_CXX11_NULLPTR
- source._root_ptr = 0;
-#else
- source._root_ptr = nullptr;
-#endif
- }
-
- template <
- typename NodeGenerator
- , typename T1
- , typename T2
- , typename IsMultipleAssociative
- , typename CompareSelector
- , typename Balancer
- >
- binode_associative_container<
- NodeGenerator
- , T1
- , T2
- , IsMultipleAssociative
- , CompareSelector
- , Balancer
- >::binode_associative_container(
- BOOST_RV_REF(binode_associative_container) source
- , allocator_type const& allocator
- ) : _allocator(allocator)
- , _root_ptr(source._root_ptr)
- , _key_compare(::boost::move(source._key_compare))
- , _value_compare(this->_key_compare)
- {
-#if defined BOOST_NO_CXX11_NULLPTR
- source._root_ptr = 0;
-#else
- source._root_ptr = nullptr;
-#endif
- }
-
- template <
- typename NodeGenerator
- , typename T1
- , typename T2
- , typename IsMultipleAssociative
- , typename CompareSelector
- , typename Balancer
- >
- inline binode_associative_container<
- NodeGenerator
- , T1
- , T2
- , IsMultipleAssociative
- , CompareSelector
- , Balancer
- >&
- binode_associative_container<
- NodeGenerator
- , T1
- , T2
- , IsMultipleAssociative
- , CompareSelector
- , Balancer
- >::operator=(BOOST_RV_REF(binode_associative_container) source)
- {
- if (this != &static_cast<binode_associative_container&>(source))
- {
- this->_allocator = ::boost::move(source._allocator);
- this->clear();
- this->_root_ptr = source._root_ptr;
-#if defined BOOST_NO_CXX11_NULLPTR
- source._root_ptr = 0;
-#else
- source._root_ptr = nullptr;
-#endif
- this->_key_compare = ::boost::move(source._key_compare);
- }
-
- return *this;
- }
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
- template <
- typename NodeGenerator
- , typename T1
- , typename T2
- , typename IsMultipleAssociative
- , typename CompareSelector
- , typename Balancer
- >
- inline binode_associative_container<
- NodeGenerator
- , T1
- , T2
- , IsMultipleAssociative
- , CompareSelector
- , Balancer
- >&
- binode_associative_container<
- NodeGenerator
- , T1
- , T2
- , IsMultipleAssociative
- , CompareSelector
- , Balancer
- >::operator=(
-#if defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- binode_associative_container const& copy
-#else
- BOOST_COPY_ASSIGN_REF(binode_associative_container) copy
-#endif
- )
- {
- if (this != &static_cast<binode_associative_container const&>(copy))
- {
- if (copy._root_ptr)
- {
- if (this->_root_ptr)
- {
- *this->_root_ptr = *copy._root_ptr;
- }
- else
- {
- this->_root_ptr = this->_construct_node_from(
- ::std::tr1::is_const<
- typename ::std::tr1::remove_reference<
- typename node::traits::allocator_reference
- >::type
- >()
- , this->_allocator
- , copy._root_ptr
- );
- }
- }
- else
- {
- this->clear();
- }
-
- this->_key_compare = copy._key_compare;
- }
-
- return *this;
- }
-
- template <
- typename NodeGenerator
- , typename T1
- , typename T2
- , typename IsMultipleAssociative
- , typename CompareSelector
- , typename Balancer
- >
- binode_associative_container<
- NodeGenerator
- , T1
- , T2
- , IsMultipleAssociative
- , CompareSelector
- , Balancer
- >::~binode_associative_container()
- {
- this->clear();
- }
-
- template <
- typename NodeGenerator
- , typename T1
- , typename T2
- , typename IsMultipleAssociative
- , typename CompareSelector
- , typename Balancer
- >
- inline typename binode_associative_container<
- NodeGenerator
- , T1
- , T2
- , IsMultipleAssociative
- , CompareSelector
- , Balancer
- >::node::const_pointer
- binode_associative_container<
- NodeGenerator
- , T1
- , T2
- , IsMultipleAssociative
- , CompareSelector
- , Balancer
- >::data() const
- {
- return this->_root_ptr;
- }
-
- template <
- typename NodeGenerator
- , typename T1
- , typename T2
- , typename IsMultipleAssociative
- , typename CompareSelector
- , typename Balancer
- >
- inline typename binode_associative_container<
- NodeGenerator
- , T1
- , T2
- , IsMultipleAssociative
- , CompareSelector
- , Balancer
- >::const_iterator
- binode_associative_container<
- NodeGenerator
- , T1
- , T2
- , IsMultipleAssociative
- , CompareSelector
- , Balancer
- >::cbegin() const
- {
- return this->_root_ptr ? const_iterator(
- make_in_order_iterator(*this->_root_ptr)
- , transform_function()
- ) : this->cend();
- }
-
- template <
- typename NodeGenerator
- , typename T1
- , typename T2
- , typename IsMultipleAssociative
- , typename CompareSelector
- , typename Balancer
- >
- inline typename binode_associative_container<
- NodeGenerator
- , T1
- , T2
- , IsMultipleAssociative
- , CompareSelector
- , Balancer
- >::const_iterator
- binode_associative_container<
- NodeGenerator
- , T1
- , T2
- , IsMultipleAssociative
- , CompareSelector
- , Balancer
- >::begin() const
- {
- return this->_root_ptr ? const_iterator(
- make_in_order_iterator(*this->_root_ptr)
- , transform_function()
- ) : this->end();
- }
-
- template <
- typename NodeGenerator
- , typename T1
- , typename T2
- , typename IsMultipleAssociative
- , typename CompareSelector
- , typename Balancer
- >
- inline typename binode_associative_container<
- NodeGenerator
- , T1
- , T2
- , IsMultipleAssociative
- , CompareSelector
- , Balancer
- >::iterator
- binode_associative_container<
- NodeGenerator
- , T1
- , T2
- , IsMultipleAssociative
- , CompareSelector
- , Balancer
- >::begin()
- {
- return this->_root_ptr ? iterator(
- make_in_order_iterator(*this->_root_ptr)
- , transform_function()
- ) : this->end();
- }
-
- template <
- typename NodeGenerator
- , typename T1
- , typename T2
- , typename IsMultipleAssociative
- , typename CompareSelector
- , typename Balancer
- >
- inline typename binode_associative_container<
- NodeGenerator
- , T1
- , T2
- , IsMultipleAssociative
- , CompareSelector
- , Balancer
- >::const_iterator
- binode_associative_container<
- NodeGenerator
- , T1
- , T2
- , IsMultipleAssociative
- , CompareSelector
- , Balancer
- >::cend() const
- {
- return const_iterator(
- make_in_order_iterator_end(this->_root_ptr)
- , transform_function()
- );
- }
-
- template <
- typename NodeGenerator
- , typename T1
- , typename T2
- , typename IsMultipleAssociative
- , typename CompareSelector
- , typename Balancer
- >
- inline typename binode_associative_container<
- NodeGenerator
- , T1
- , T2
- , IsMultipleAssociative
- , CompareSelector
- , Balancer
- >::const_iterator
- binode_associative_container<
- NodeGenerator
- , T1
- , T2
- , IsMultipleAssociative
- , CompareSelector
- , Balancer
- >::end() const
- {
- return const_iterator(
- make_in_order_iterator_end(this->_root_ptr)
- , transform_function()
- );
- }
-
- template <
- typename NodeGenerator
- , typename T1
- , typename T2
- , typename IsMultipleAssociative
- , typename CompareSelector
- , typename Balancer
- >
- inline typename binode_associative_container<
- NodeGenerator
- , T1
- , T2
- , IsMultipleAssociative
- , CompareSelector
- , Balancer
- >::iterator
- binode_associative_container<
- NodeGenerator
- , T1
- , T2
- , IsMultipleAssociative
- , CompareSelector
- , Balancer
- >::end()
- {
- return iterator(
- make_in_order_iterator_end(this->_root_ptr)
- , transform_function()
- );
- }
-
- template <
- typename NodeGenerator
- , typename T1
- , typename T2
- , typename IsMultipleAssociative
- , typename CompareSelector
- , typename Balancer
- >
- inline typename binode_associative_container<
- NodeGenerator
- , T1
- , T2
- , IsMultipleAssociative
- , CompareSelector
- , Balancer
- >::const_reverse_iterator
- binode_associative_container<
- NodeGenerator
- , T1
- , T2
- , IsMultipleAssociative
- , CompareSelector
- , Balancer
- >::crbegin() const
- {
- return this->_root_ptr ? const_reverse_iterator(
- make_in_order_reverse_iterator(*this->_root_ptr)
- , transform_function()
- ) : this->crend();
- }
-
- template <
- typename NodeGenerator
- , typename T1
- , typename T2
- , typename IsMultipleAssociative
- , typename CompareSelector
- , typename Balancer
- >
- inline typename binode_associative_container<
- NodeGenerator
- , T1
- , T2
- , IsMultipleAssociative
- , CompareSelector
- , Balancer
- >::const_reverse_iterator
- binode_associative_container<
- NodeGenerator
- , T1
- , T2
- , IsMultipleAssociative
- , CompareSelector
- , Balancer
- >::rbegin() const
- {
- return this->_root_ptr ? const_reverse_iterator(
- make_in_order_reverse_iterator(*this->_root_ptr)
- , transform_function()
- ) : this->rend();
- }
-
- template <
- typename NodeGenerator
- , typename T1
- , typename T2
- , typename IsMultipleAssociative
- , typename CompareSelector
- , typename Balancer
- >
- inline typename binode_associative_container<
- NodeGenerator
- , T1
- , T2
- , IsMultipleAssociative
- , CompareSelector
- , Balancer
- >::reverse_iterator
- binode_associative_container<
- NodeGenerator
- , T1
- , T2
- , IsMultipleAssociative
- , CompareSelector
- , Balancer
- >::rbegin()
- {
- return this->_root_ptr ? reverse_iterator(
- make_in_order_reverse_iterator(*this->_root_ptr)
- , transform_function()
- ) : this->rend();
- }
-
- template <
- typename NodeGenerator
- , typename T1
- , typename T2
- , typename IsMultipleAssociative
- , typename CompareSelector
- , typename Balancer
- >
- inline typename binode_associative_container<
- NodeGenerator
- , T1
- , T2
- , IsMultipleAssociative
- , CompareSelector
- , Balancer
- >::const_reverse_iterator
- binode_associative_container<
- NodeGenerator
- , T1
- , T2
- , IsMultipleAssociative
- , CompareSelector
- , Balancer
- >::crend() const
- {
- return const_reverse_iterator(
- make_in_order_reverse_iterator_end(this->_root_ptr)
- , transform_function()
- );
- }
-
- template <
- typename NodeGenerator
- , typename T1
- , typename T2
- , typename IsMultipleAssociative
- , typename CompareSelector
- , typename Balancer
- >
- inline typename binode_associative_container<
- NodeGenerator
- , T1
- , T2
- , IsMultipleAssociative
- , CompareSelector
- , Balancer
- >::const_reverse_iterator
- binode_associative_container<
- NodeGenerator
- , T1
- , T2
- , IsMultipleAssociative
- , CompareSelector
- , Balancer
- >::rend() const
- {
- return const_reverse_iterator(
- make_in_order_reverse_iterator_end(this->_root_ptr)
- , transform_function()
- );
- }
-
- template <
- typename NodeGenerator
- , typename T1
- , typename T2
- , typename IsMultipleAssociative
- , typename CompareSelector
- , typename Balancer
- >
- inline typename binode_associative_container<
- NodeGenerator
- , T1
- , T2
- , IsMultipleAssociative
- , CompareSelector
- , Balancer
- >::reverse_iterator
- binode_associative_container<
- NodeGenerator
- , T1
- , T2
- , IsMultipleAssociative
- , CompareSelector
- , Balancer
- >::rend()
- {
- return reverse_iterator(
- make_in_order_reverse_iterator_end(this->_root_ptr)
- , transform_function()
- );
- }
-
- template <
- typename NodeGenerator
- , typename T1
- , typename T2
- , typename IsMultipleAssociative
- , typename CompareSelector
- , typename Balancer
- >
- inline typename binode_associative_container<
- NodeGenerator
- , T1
- , T2
- , IsMultipleAssociative
- , CompareSelector
- , Balancer
- >::const_iterator
- binode_associative_container<
- NodeGenerator
- , T1
- , T2
- , IsMultipleAssociative
- , CompareSelector
- , Balancer
- >::find(key_type const& key) const
- {
- typename node::const_pointer node_ptr = this->_root_ptr;
-
- node_ptr = binary_descendant(node_ptr, key, this->_value_compare);
- return node_ptr ? const_iterator(
- make_in_order_iterator_position(*node_ptr)
- , transform_function()
- ) : this->cend();
- }
-
- template <
- typename NodeGenerator
- , typename T1
- , typename T2
- , typename IsMultipleAssociative
- , typename CompareSelector
- , typename Balancer
- >
- inline typename binode_associative_container<
- NodeGenerator
- , T1
- , T2
- , IsMultipleAssociative
- , CompareSelector
- , Balancer
- >::iterator
- binode_associative_container<
- NodeGenerator
- , T1
- , T2
- , IsMultipleAssociative
- , CompareSelector
- , Balancer
- >::find(key_type const& key)
- {
- typename node::pointer node_ptr = binary_descendant(
- this->_root_ptr
- , key
- , this->_value_compare
- );
-
- return node_ptr ? iterator(
- make_in_order_iterator_position(*node_ptr)
- , transform_function()
- ) : this->end();
- }
-
- template <
- typename NodeGenerator
- , typename T1
- , typename T2
- , typename IsMultipleAssociative
- , typename CompareSelector
- , typename Balancer
- >
- inline typename binode_associative_container<
- NodeGenerator
- , T1
- , T2
- , IsMultipleAssociative
- , CompareSelector
- , Balancer
- >::const_iterator
- binode_associative_container<
- NodeGenerator
- , T1
- , T2
- , IsMultipleAssociative
- , CompareSelector
- , Balancer
- >::lower_bound(key_type const& key) const
- {
- typename node::const_pointer node_ptr = this->_root_ptr;
-
- node_ptr = binary_lower_bound(node_ptr, key, this->_value_compare);
- return node_ptr ? const_iterator(
- make_in_order_iterator_position(*node_ptr)
- , transform_function()
- ) : this->cend();
- }
-
- template <
- typename NodeGenerator
- , typename T1
- , typename T2
- , typename IsMultipleAssociative
- , typename CompareSelector
- , typename Balancer
- >
- inline typename binode_associative_container<
- NodeGenerator
- , T1
- , T2
- , IsMultipleAssociative
- , CompareSelector
- , Balancer
- >::iterator
- binode_associative_container<
- NodeGenerator
- , T1
- , T2
- , IsMultipleAssociative
- , CompareSelector
- , Balancer
- >::lower_bound(key_type const& key)
- {
- typename node::pointer node_ptr = binary_lower_bound(
- this->_root_ptr
- , key
- , this->_value_compare
- );
-
- return node_ptr ? iterator(
- make_in_order_iterator_position(*node_ptr)
- , transform_function()
- ) : this->end();
- }
-
- template <
- typename NodeGenerator
- , typename T1
- , typename T2
- , typename IsMultipleAssociative
- , typename CompareSelector
- , typename Balancer
- >
- inline typename binode_associative_container<
- NodeGenerator
- , T1
- , T2
- , IsMultipleAssociative
- , CompareSelector
- , Balancer
- >::const_iterator
- binode_associative_container<
- NodeGenerator
- , T1
- , T2
- , IsMultipleAssociative
- , CompareSelector
- , Balancer
- >::upper_bound(key_type const& key) const
- {
- typename node::const_pointer node_ptr = this->_root_ptr;
-
- node_ptr = binary_upper_bound(node_ptr, key, this->_value_compare);
- return node_ptr ? const_iterator(
- make_in_order_iterator_position(*node_ptr)
- , transform_function()
- ) : this->cend();
- }
-
- template <
- typename NodeGenerator
- , typename T1
- , typename T2
- , typename IsMultipleAssociative
- , typename CompareSelector
- , typename Balancer
- >
- inline typename binode_associative_container<
- NodeGenerator
- , T1
- , T2
- , IsMultipleAssociative
- , CompareSelector
- , Balancer
- >::iterator
- binode_associative_container<
- NodeGenerator
- , T1
- , T2
- , IsMultipleAssociative
- , CompareSelector
- , Balancer
- >::upper_bound(key_type const& key)
- {
- typename node::pointer node_ptr = binary_upper_bound(
- this->_root_ptr
- , key
- , this->_value_compare
- );
-
- return node_ptr ? iterator(
- make_in_order_iterator_position(*node_ptr)
- , transform_function()
- ) : this->end();
- }
-
- template <
- typename NodeGenerator
- , typename T1
- , typename T2
- , typename IsMultipleAssociative
- , typename CompareSelector
- , typename Balancer
- >
- inline ::std::pair<
- typename binode_associative_container<
- NodeGenerator
- , T1
- , T2
- , IsMultipleAssociative
- , CompareSelector
- , Balancer
- >::const_iterator
- , typename binode_associative_container<
- NodeGenerator
- , T1
- , T2
- , IsMultipleAssociative
- , CompareSelector
- , Balancer
- >::const_iterator
- >
- binode_associative_container<
- NodeGenerator
- , T1
- , T2
- , IsMultipleAssociative
- , CompareSelector
- , Balancer
- >::equal_range(key_type const& key) const
- {
- return ::std::make_pair(
- this->lower_bound(key)
- , this->upper_bound(key)
- );
- }
-
- template <
- typename NodeGenerator
- , typename T1
- , typename T2
- , typename IsMultipleAssociative
- , typename CompareSelector
- , typename Balancer
- >
- inline ::std::pair<
- typename binode_associative_container<
- NodeGenerator
- , T1
- , T2
- , IsMultipleAssociative
- , CompareSelector
- , Balancer
- >::iterator
- , typename binode_associative_container<
- NodeGenerator
- , T1
- , T2
- , IsMultipleAssociative
- , CompareSelector
- , Balancer
- >::iterator
- >
- binode_associative_container<
- NodeGenerator
- , T1
- , T2
- , IsMultipleAssociative
- , CompareSelector
- , Balancer
- >::equal_range(key_type const& key)
- {
- return ::std::make_pair(
- this->lower_bound(key)
- , this->upper_bound(key)
- );
- }
-
- template <
- typename NodeGenerator
- , typename T1
- , typename T2
- , typename IsMultipleAssociative
- , typename CompareSelector
- , typename Balancer
- >
- typename binode_associative_container<
- NodeGenerator
- , T1
- , T2
- , IsMultipleAssociative
- , CompareSelector
- , Balancer
- >::node::pointer
- binode_associative_container<
- NodeGenerator
- , T1
- , T2
- , IsMultipleAssociative
- , CompareSelector
- , Balancer
- >::_construct_node_from(
- ::std::tr1::true_type
- , allocator_type& allocator
- , value_type const& value
- )
- {
-#if defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- typename node::pointer result(allocator.allocate(1));
- allocator.construct(result, value);
-#else // !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- typename node::pointer result(
- ::boost::container::allocator_traits<
- allocator_type
- >::allocate(allocator, 1)
- );
- ::boost::container::allocator_traits<
- allocator_type
- >::construct(allocator, result, value);
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- return result;
- }
-
- template <
- typename NodeGenerator
- , typename T1
- , typename T2
- , typename IsMultipleAssociative
- , typename CompareSelector
- , typename Balancer
- >
- typename binode_associative_container<
- NodeGenerator
- , T1
- , T2
- , IsMultipleAssociative
- , CompareSelector
- , Balancer
- >::node::pointer
- binode_associative_container<
- NodeGenerator
- , T1
- , T2
- , IsMultipleAssociative
- , CompareSelector
- , Balancer
- >::_construct_node_from(
- ::std::tr1::false_type
- , allocator_type& allocator
- , value_type const& value
- )
- {
-#if defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- typename node::pointer result(allocator.allocate(1));
- allocator.construct(
- result
- , ::boost::container::allocator_arg
- , allocator
- , value
- );
-#else // !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- typename node::pointer result(
- ::boost::container::allocator_traits<
- allocator_type
- >::allocate(allocator, 1)
- );
- ::boost::container::allocator_traits<allocator_type>::construct(
- allocator
- , result
- , ::boost::container::allocator_arg
- , allocator
- , value
- );
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- return result;
- }
-
- template <
- typename NodeGenerator
- , typename T1
- , typename T2
- , typename IsMultipleAssociative
- , typename CompareSelector
- , typename Balancer
- >
- typename binode_associative_container<
- NodeGenerator
- , T1
- , T2
- , IsMultipleAssociative
- , CompareSelector
- , Balancer
- >::iterator
- binode_associative_container<
- NodeGenerator
- , T1
- , T2
- , IsMultipleAssociative
- , CompareSelector
- , Balancer
- >::_insert(value_type const& value, ::boost::mpl::true_)
- {
- if (!this->_root_ptr)
- {
- return iterator(
- make_in_order_iterator(
- *(
- this->_root_ptr = this->_construct_node_from(
- ::std::tr1::is_const<
- typename ::std::tr1::remove_reference<
- typename node::traits::allocator_reference
- >::type
- >()
- , this->_allocator
- , value
- )
- )
- )
- , transform_function()
- );
- }
-
- typename node::pointer node_ptr = binary_upper_bound(
- this->_root_ptr
- , value
- , insert_compare(this->_key_compare)
- );
-
- if (node_ptr)
- {
- if (node_ptr->get_left_child_ptr())
- {
- for (
- node_ptr = node_ptr->get_left_child_ptr();
- node_ptr->get_right_child_ptr();
- node_ptr = node_ptr->get_right_child_ptr()
- )
- {
- }
-
- node_ptr = &*node_ptr->emplace_right(value);
- }
- else
- {
- node_ptr = &*node_ptr->emplace_left(value);
- }
- }
- else // if (!node_ptr)
- {
- for (
- node_ptr = this->_root_ptr;
- node_ptr->get_right_child_ptr();
- node_ptr = node_ptr->get_right_child_ptr()
- )
- {
- }
-
- node_ptr = &*node_ptr->emplace_right(value);
- }
-
- node_ptr = Balancer::post_insert(node_ptr);
-
- if (!node_ptr->get_parent_ptr())
- {
- this->_root_ptr = node_ptr;
- }
-
- return iterator(
- make_in_order_iterator_position(*node_ptr)
- , transform_function()
- );
- }
-
- template <
- typename NodeGenerator
- , typename T1
- , typename T2
- , typename IsMultipleAssociative
- , typename CompareSelector
- , typename Balancer
- >
- ::std::pair<
- typename binode_associative_container<
- NodeGenerator
- , T1
- , T2
- , IsMultipleAssociative
- , CompareSelector
- , Balancer
- >::iterator
- , bool
- >
- binode_associative_container<
- NodeGenerator
- , T1
- , T2
- , IsMultipleAssociative
- , CompareSelector
- , Balancer
- >::_insert(value_type const& value, ::boost::mpl::false_)
- {
- if (!this->_root_ptr)
- {
- return ::std::make_pair(
- iterator(
- make_in_order_iterator(
- *(
- this->_root_ptr = this->_construct_node_from(
- ::std::tr1::is_const<
- typename ::std::tr1::remove_reference<
- typename node::traits::allocator_reference
- >::type
- >()
- , this->_allocator
- , value
- )
- )
- )
- , transform_function()
- )
- , true
- );
- }
-
- insert_compare compare(this->_key_compare);
- typename node::pointer p = this->_root_ptr;
-
- for (;;)
- {
- if (compare(value, *p))
- {
- if (p->get_left_child_ptr())
- {
- p = p->get_left_child_ptr();
- }
- else
- {
- typename node::pointer n = Balancer::post_insert(
- p = &*p->emplace_left(value)
- );
-
- if (!n->get_parent_ptr())
- {
- this->_root_ptr = n;
- }
-
- return ::std::make_pair(
- iterator(
- make_in_order_iterator_position(*p)
- , transform_function()
- )
- , true
- );
- }
- }
- else if (compare(*p, value))
- {
- if (p->get_right_child_ptr())
- {
- p = p->get_right_child_ptr();
- }
- else
- {
- typename node::pointer n = Balancer::post_insert(
- p = &*p->emplace_right(value)
- );
-
- if (!n->get_parent_ptr())
- {
- this->_root_ptr = n;
- }
-
- return ::std::make_pair(
- iterator(
- make_in_order_iterator_position(*p)
- , transform_function()
- )
- , true
- );
- }
- }
- else
- {
- break;
- }
- }
-
- return ::std::make_pair(
- iterator(
- make_in_order_iterator_position(*p)
- , transform_function()
- )
- , false
- );
- }
-
- template <
- typename NodeGenerator
- , typename T1
- , typename T2
- , typename IsMultipleAssociative
- , typename CompareSelector
- , typename Balancer
- >
- inline typename ::boost::mpl::if_<
- IsMultipleAssociative
- , typename binode_associative_container<
- NodeGenerator
- , T1
- , T2
- , IsMultipleAssociative
- , CompareSelector
- , Balancer
- >::iterator
- , ::std::pair<
- typename binode_associative_container<
- NodeGenerator
- , T1
- , T2
- , IsMultipleAssociative
- , CompareSelector
- , Balancer
- >::iterator
- , bool
- >
- >::type
- binode_associative_container<
- NodeGenerator
- , T1
- , T2
- , IsMultipleAssociative
- , CompareSelector
- , Balancer
- >::insert(value_type const& value)
- {
- return this->_insert(value, IsMultipleAssociative());
- }
-
-#if defined BOOST_CONTAINER_PERFECT_FORWARDING
- template <
- typename NodeGenerator
- , typename T1
- , typename T2
- , typename IsMultipleAssociative
- , typename CompareSelector
- , typename Balancer
- >
- template <typename ...Args>
- typename binode_associative_container<
- NodeGenerator
- , T1
- , T2
- , IsMultipleAssociative
- , CompareSelector
- , Balancer
- >::node::pointer
- binode_associative_container<
- NodeGenerator
- , T1
- , T2
- , IsMultipleAssociative
- , CompareSelector
- , Balancer
- >::_construct_node_from(
- ::std::tr1::true_type
- , allocator_type& allocator
- , Args&& ...args
- )
- {
-#if defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- typename node::pointer result(allocator.allocate(1));
- allocator.construct(result, ::boost::forward<Args>(args)...);
-#else // !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- typename node::pointer result(
- ::boost::container::allocator_traits<
- allocator_type
- >::allocate(allocator, 1)
- );
- ::boost::container::allocator_traits<
- allocator_type
- >::construct(allocator, result, ::boost::forward<Args>(args)...);
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- return result;
- }
-
- template <
- typename NodeGenerator
- , typename T1
- , typename T2
- , typename IsMultipleAssociative
- , typename CompareSelector
- , typename Balancer
- >
- template <typename ...Args>
- typename binode_associative_container<
- NodeGenerator
- , T1
- , T2
- , IsMultipleAssociative
- , CompareSelector
- , Balancer
- >::node::pointer
- binode_associative_container<
- NodeGenerator
- , T1
- , T2
- , IsMultipleAssociative
- , CompareSelector
- , Balancer
- >::_construct_node_from(
- ::std::tr1::false_type
- , allocator_type& allocator
- , Args&& ...args
- )
- {
-#if defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- typename node::pointer result(allocator.allocate(1));
- allocator.construct(
- result
- , ::boost::container::allocator_arg
- , allocator
- , ::boost::forward<Args>(args)...
- );
-#else // !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- typename node::pointer result(
- ::boost::container::allocator_traits<
- allocator_type
- >::allocate(allocator, 1)
- );
- ::boost::container::allocator_traits<allocator_type>::construct(
- allocator
- , result
- , ::boost::container::allocator_arg
- , allocator
- , ::boost::forward<Args>(args)...
- );
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- return result;
- }
-
- template <
- typename NodeGenerator
- , typename T1
- , typename T2
- , typename IsMultipleAssociative
- , typename CompareSelector
- , typename Balancer
- >
- template <typename ...Args>
- inline typename binode_associative_container<
- NodeGenerator
- , T1
- , T2
- , IsMultipleAssociative
- , CompareSelector
- , Balancer
- >::value_type
- binode_associative_container<
- NodeGenerator
- , T1
- , T2
- , IsMultipleAssociative
- , CompareSelector
- , Balancer
- >::_construct_value_from(
- ::std::tr1::true_type
- , Args&& ...args
- )
- {
- return value_type(::boost::forward<Args>(args)...);
- }
-
- template <
- typename NodeGenerator
- , typename T1
- , typename T2
- , typename IsMultipleAssociative
- , typename CompareSelector
- , typename Balancer
- >
- template <typename ...Args>
- inline typename binode_associative_container<
- NodeGenerator
- , T1
- , T2
- , IsMultipleAssociative
- , CompareSelector
- , Balancer
- >::value_type
- binode_associative_container<
- NodeGenerator
- , T1
- , T2
- , IsMultipleAssociative
- , CompareSelector
- , Balancer
- >::_construct_value_from(
- ::std::tr1::false_type
- , key_type const& key
- , Args&& ...args
- )
- {
- return value_type(key, T2(::boost::forward<Args>(args)...));
- }
-
- template <
- typename NodeGenerator
- , typename T1
- , typename T2
- , typename IsMultipleAssociative
- , typename CompareSelector
- , typename Balancer
- >
- template <typename ...Args>
- typename binode_associative_container<
- NodeGenerator
- , T1
- , T2
- , IsMultipleAssociative
- , CompareSelector
- , Balancer
- >::iterator
- binode_associative_container<
- NodeGenerator
- , T1
- , T2
- , IsMultipleAssociative
- , CompareSelector
- , Balancer
- >::_emplace(::boost::mpl::true_, Args&& ...args)
- {
- if (!this->_root_ptr)
- {
- return iterator(
- make_in_order_iterator(
- *(
- this->_root_ptr = this->_construct_node_from(
- ::std::tr1::is_const<
- typename ::std::tr1::remove_reference<
- typename node::traits::allocator_reference
- >::type
- >()
- , this->_allocator
- , ::boost::forward<Args>(args)...
- )
- )
- )
- , transform_function()
- );
- }
-
- typename node::pointer node_ptr = binary_upper_bound(
- this->_root_ptr
- , this->_construct_value_from(
- ::std::tr1::is_void<T2>()
- , ::boost::forward<Args>(args)...
- )
- , insert_compare(this->_key_compare)
- );
-
- if (node_ptr)
- {
- if (node_ptr->get_left_child_ptr())
- {
- for (
- node_ptr = node_ptr->get_left_child_ptr();
- node_ptr->get_right_child_ptr();
- node_ptr = node_ptr->get_right_child_ptr()
- )
- {
- }
-
- node_ptr = &*node_ptr->emplace_right(
- ::boost::forward<Args>(args)...
- );
- }
- else
- {
- node_ptr = &*node_ptr->emplace_left(
- ::boost::forward<Args>(args)...
- );
- }
- }
- else // if (!node_ptr)
- {
- for (
- node_ptr = this->_root_ptr;
- node_ptr->get_right_child_ptr();
- node_ptr = node_ptr->get_right_child_ptr()
- )
- {
- }
-
- node_ptr = &*node_ptr->emplace_right(
- ::boost::forward<Args>(args)...
- );
- }
-
- typename node::pointer anc_ptr = Balancer::post_insert(node_ptr);
-
- if (!anc_ptr->get_parent_ptr())
- {
- this->_root_ptr = anc_ptr;
- }
-
- return iterator(
- make_in_order_iterator_position(*node_ptr)
- , transform_function()
- );
- }
-
- template <
- typename NodeGenerator
- , typename T1
- , typename T2
- , typename IsMultipleAssociative
- , typename CompareSelector
- , typename Balancer
- >
- template <typename ...Args>
- ::std::pair<
- typename binode_associative_container<
- NodeGenerator
- , T1
- , T2
- , IsMultipleAssociative
- , CompareSelector
- , Balancer
- >::iterator
- , bool
- >
- binode_associative_container<
- NodeGenerator
- , T1
- , T2
- , IsMultipleAssociative
- , CompareSelector
- , Balancer
- >::_emplace(::boost::mpl::false_, Args&& ...args)
- {
- if (!this->_root_ptr)
- {
- return ::std::make_pair(
- iterator(
- make_in_order_iterator(
- *(
- this->_root_ptr = this->_construct_node_from(
- ::std::tr1::is_const<
- typename ::std::tr1::remove_reference<
- typename node::traits::allocator_reference
- >::type
- >()
- , this->_allocator
- , ::boost::forward<Args>(args)...
- )
- )
- )
- , transform_function()
- )
- , true
- );
- }
-
- value_type value(
- this->_construct_value_from(
- ::std::tr1::is_void<T2>()
- , ::boost::forward<Args>(args)...
- )
- );
- insert_compare compare(this->_key_compare);
- typename node::pointer p = this->_root_ptr;
-
- for (;;)
- {
- if (compare(value, *p))
- {
- if (p->get_left_child_ptr())
- {
- p = p->get_left_child_ptr();
- }
- else
- {
- typename node::pointer n = Balancer::post_insert(
- p = &*p->emplace_left(::boost::forward<Args>(args)...)
- );
-
- if (!n->get_parent_ptr())
- {
- this->_root_ptr = n;
- }
-
- return ::std::make_pair(
- iterator(
- make_in_order_iterator_position(*p)
- , transform_function()
- )
- , true
- );
- }
- }
- else if (compare(*p, value))
- {
- if (p->get_right_child_ptr())
- {
- p = p->get_right_child_ptr();
- }
- else
- {
- typename node::pointer n = Balancer::post_insert(
- p = &*p->emplace_right(::boost::forward<Args>(args)...)
- );
-
- if (!n->get_parent_ptr())
- {
- this->_root_ptr = n;
- }
-
- return ::std::make_pair(
- iterator(
- make_in_order_iterator_position(*p)
- , transform_function()
- )
- , true
- );
- }
- }
- else
- {
- break;
- }
- }
-
- return ::std::make_pair(
- iterator(
- make_in_order_iterator_position(*p)
- , transform_function()
- )
- , false
- );
- }
-
- template <
- typename NodeGenerator
- , typename T1
- , typename T2
- , typename IsMultipleAssociative
- , typename CompareSelector
- , typename Balancer
- >
- template <typename ...Args>
- inline typename ::boost::mpl::if_<
- IsMultipleAssociative
- , typename binode_associative_container<
- NodeGenerator
- , T1
- , T2
- , IsMultipleAssociative
- , CompareSelector
- , Balancer
- >::iterator
- , ::std::pair<
- typename binode_associative_container<
- NodeGenerator
- , T1
- , T2
- , IsMultipleAssociative
- , CompareSelector
- , Balancer
- >::iterator
- , bool
- >
- >::type
- binode_associative_container<
- NodeGenerator
- , T1
- , T2
- , IsMultipleAssociative
- , CompareSelector
- , Balancer
- >::emplace(Args&& ...args)
- {
- return this->_emplace(
- IsMultipleAssociative()
- , ::boost::forward<Args>(args)...
- );
- }
-#else // !defined BOOST_CONTAINER_PERFECT_FORWARDING
-#if defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-#define BOOST_TREE_NODE_CONTAINER_BINARY_ASSOCIATIVE_MACRO(z, n, _) \
- template < \
- typename NodeGenerator \
- , typename T1 \
- , typename T2 \
- , typename IsMultipleAssociative \
- , typename CompareSelector \
- , typename Balancer \
- > \
- BOOST_PP_EXPR_IF(n, template <) \
- BOOST_PP_ENUM_PARAMS_Z(z, n, typename P) \
- BOOST_PP_EXPR_IF(n, >) \
- typename binode_associative_container< \
- NodeGenerator \
- , T1 \
- , T2 \
- , IsMultipleAssociative \
- , CompareSelector \
- , Balancer \
- >::node::pointer \
- binode_associative_container< \
- NodeGenerator \
- , T1 \
- , T2 \
- , IsMultipleAssociative \
- , CompareSelector \
- , Balancer \
- >::_construct_node_from( \
- ::std::tr1::true_type \
- , allocator_type& allocator \
- BOOST_PP_CAT(BOOST_PP_ENUM_TRAILING_, z)( \
- n \
- , BOOST_CONTAINER_PP_PARAM_LIST \
- , _ \
- ) \
- ) \
- { \
- typename node::pointer result(allocator.allocate(1)); \
- allocator.construct( \
- result \
- BOOST_PP_CAT(BOOST_PP_ENUM_TRAILING_, z)( \
- n \
- , BOOST_CONTAINER_PP_PARAM_FORWARD \
- , _ \
- ) \
- ); \
- return result; \
- } \
-//!
- BOOST_PP_REPEAT(
- BOOST_CONTAINER_MAX_CONSTRUCTOR_PARAMETERS
- , BOOST_TREE_NODE_CONTAINER_BINARY_ASSOCIATIVE_MACRO
- , _
- )
-#undef BOOST_TREE_NODE_CONTAINER_BINARY_ASSOCIATIVE_MACRO
-
-#define BOOST_TREE_NODE_CONTAINER_BINARY_ASSOCIATIVE_MACRO(z, n, _) \
- template < \
- typename NodeGenerator \
- , typename T1 \
- , typename T2 \
- , typename IsMultipleAssociative \
- , typename CompareSelector \
- , typename Balancer \
- > \
- BOOST_PP_EXPR_IF(n, template <) \
- BOOST_PP_ENUM_PARAMS_Z(z, n, typename P) \
- BOOST_PP_EXPR_IF(n, >) \
- typename binode_associative_container< \
- NodeGenerator \
- , T1 \
- , T2 \
- , IsMultipleAssociative \
- , CompareSelector \
- , Balancer \
- >::node::pointer \
- binode_associative_container< \
- NodeGenerator \
- , T1 \
- , T2 \
- , IsMultipleAssociative \
- , CompareSelector \
- , Balancer \
- >::_construct_node_from( \
- ::std::tr1::false_type \
- , allocator_type& allocator \
- BOOST_PP_CAT(BOOST_PP_ENUM_TRAILING_, z)( \
- n \
- , BOOST_CONTAINER_PP_PARAM_LIST \
- , _ \
- ) \
- ) \
- { \
- typename node::pointer result(allocator.allocate(1)); \
- allocator.construct( \
- result \
- , ::boost::container::allocator_arg \
- , allocator \
- BOOST_PP_CAT(BOOST_PP_ENUM_TRAILING_, z)( \
- n \
- , BOOST_CONTAINER_PP_PARAM_FORWARD \
- , _ \
- ) \
- ); \
- return result; \
- } \
-//!
- BOOST_PP_REPEAT(
- BOOST_CONTAINER_MAX_CONSTRUCTOR_PARAMETERS
- , BOOST_TREE_NODE_CONTAINER_BINARY_ASSOCIATIVE_MACRO
- , _
- )
-#undef BOOST_TREE_NODE_CONTAINER_BINARY_ASSOCIATIVE_MACRO
-#else // !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-#define BOOST_TREE_NODE_CONTAINER_BINARY_ASSOCIATIVE_MACRO(z, n, _) \
- template < \
- typename NodeGenerator \
- , typename T1 \
- , typename T2 \
- , typename IsMultipleAssociative \
- , typename CompareSelector \
- , typename Balancer \
- > \
- BOOST_PP_EXPR_IF(n, template <) \
- BOOST_PP_ENUM_PARAMS_Z(z, n, typename P) \
- BOOST_PP_EXPR_IF(n, >) \
- typename binode_associative_container< \
- NodeGenerator \
- , T1 \
- , T2 \
- , IsMultipleAssociative \
- , CompareSelector \
- , Balancer \
- >::node::pointer \
- binode_associative_container< \
- NodeGenerator \
- , T1 \
- , T2 \
- , IsMultipleAssociative \
- , CompareSelector \
- , Balancer \
- >::_construct_node_from( \
- ::std::tr1::true_type \
- , allocator_type& allocator \
- BOOST_PP_CAT(BOOST_PP_ENUM_TRAILING_, z)( \
- n \
- , BOOST_CONTAINER_PP_PARAM_LIST \
- , _ \
- ) \
- ) \
- { \
- typename node::pointer result( \
- ::boost::container::allocator_traits< \
- allocator_type \
- >::allocate(allocator, 1) \
- ); \
- ::boost::container::allocator_traits<allocator_type>::construct( \
- allocator \
- , result \
- BOOST_PP_CAT(BOOST_PP_ENUM_TRAILING_, z)( \
- n \
- , BOOST_CONTAINER_PP_PARAM_FORWARD \
- , _ \
- ) \
- ); \
- return result; \
- } \
-//!
- BOOST_PP_REPEAT(
- BOOST_CONTAINER_MAX_CONSTRUCTOR_PARAMETERS
- , BOOST_TREE_NODE_CONTAINER_BINARY_ASSOCIATIVE_MACRO
- , _
- )
-#undef BOOST_TREE_NODE_CONTAINER_BINARY_ASSOCIATIVE_MACRO
-
-#define BOOST_TREE_NODE_CONTAINER_BINARY_ASSOCIATIVE_MACRO(z, n, _) \
- template < \
- typename NodeGenerator \
- , typename T1 \
- , typename T2 \
- , typename IsMultipleAssociative \
- , typename CompareSelector \
- , typename Balancer \
- > \
- BOOST_PP_EXPR_IF(n, template <) \
- BOOST_PP_ENUM_PARAMS_Z(z, n, typename P) \
- BOOST_PP_EXPR_IF(n, >) \
- typename binode_associative_container< \
- NodeGenerator \
- , T1 \
- , T2 \
- , IsMultipleAssociative \
- , CompareSelector \
- , Balancer \
- >::node::pointer \
- binode_associative_container< \
- NodeGenerator \
- , T1 \
- , T2 \
- , IsMultipleAssociative \
- , CompareSelector \
- , Balancer \
- >::_construct_node_from( \
- ::std::tr1::false_type \
- , allocator_type& allocator \
- BOOST_PP_CAT(BOOST_PP_ENUM_TRAILING_, z)( \
- n \
- , BOOST_CONTAINER_PP_PARAM_LIST \
- , _ \
- ) \
- ) \
- { \
- typename node::pointer result( \
- ::boost::container::allocator_traits< \
- allocator_type \
- >::allocate(allocator, 1) \
- ); \
- ::boost::container::allocator_traits<allocator_type>::construct( \
- allocator \
- , result \
- , ::boost::container::allocator_arg \
- , allocator \
- BOOST_PP_CAT(BOOST_PP_ENUM_TRAILING_, z)( \
- n \
- , BOOST_CONTAINER_PP_PARAM_FORWARD \
- , _ \
- ) \
- ); \
- return result; \
- } \
-//!
- BOOST_PP_REPEAT(
- BOOST_CONTAINER_MAX_CONSTRUCTOR_PARAMETERS
- , BOOST_TREE_NODE_CONTAINER_BINARY_ASSOCIATIVE_MACRO
- , _
- )
-#undef BOOST_TREE_NODE_CONTAINER_BINARY_ASSOCIATIVE_MACRO
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-#define BOOST_TREE_NODE_CONTAINER_BINARY_ASSOCIATIVE_MACRO(z, n, _) \
- template < \
- typename NodeGenerator \
- , typename T1 \
- , typename T2 \
- , typename IsMultipleAssociative \
- , typename CompareSelector \
- , typename Balancer \
- > \
- BOOST_PP_EXPR_IF(n, template <) \
- BOOST_PP_ENUM_PARAMS_Z(z, n, typename P) \
- BOOST_PP_EXPR_IF(n, >) \
- inline typename binode_associative_container< \
- NodeGenerator \
- , T1 \
- , T2 \
- , IsMultipleAssociative \
- , CompareSelector \
- , Balancer \
- >::value_type \
- binode_associative_container< \
- NodeGenerator \
- , T1 \
- , T2 \
- , IsMultipleAssociative \
- , CompareSelector \
- , Balancer \
- >::_construct_value_from( \
- ::std::tr1::true_type \
- BOOST_PP_CAT(BOOST_PP_ENUM_TRAILING_, z)( \
- n \
- , BOOST_CONTAINER_PP_PARAM_LIST \
- , _ \
- ) \
- ) \
- { \
- return value_type( \
- BOOST_PP_CAT(BOOST_PP_ENUM_, z)( \
- n \
- , BOOST_CONTAINER_PP_PARAM_FORWARD \
- , _ \
- ) \
- ); \
- } \
-//!
- BOOST_PP_REPEAT(
- BOOST_CONTAINER_MAX_CONSTRUCTOR_PARAMETERS
- , BOOST_TREE_NODE_CONTAINER_BINARY_ASSOCIATIVE_MACRO
- , _
- )
-#undef BOOST_TREE_NODE_CONTAINER_BINARY_ASSOCIATIVE_MACRO
-
-#define BOOST_TREE_NODE_CONTAINER_BINARY_ASSOCIATIVE_MACRO(z, n, _) \
- template < \
- typename NodeGenerator \
- , typename T1 \
- , typename T2 \
- , typename IsMultipleAssociative \
- , typename CompareSelector \
- , typename Balancer \
- > \
- BOOST_PP_EXPR_IF(n, template <) \
- BOOST_PP_ENUM_PARAMS_Z(z, n, typename P) \
- BOOST_PP_EXPR_IF(n, >) \
- inline typename binode_associative_container< \
- NodeGenerator \
- , T1 \
- , T2 \
- , IsMultipleAssociative \
- , CompareSelector \
- , Balancer \
- >::value_type \
- binode_associative_container< \
- NodeGenerator \
- , T1 \
- , T2 \
- , IsMultipleAssociative \
- , CompareSelector \
- , Balancer \
- >::_construct_value_from( \
- ::std::tr1::false_type \
- , key_type const& key \
- BOOST_PP_CAT(BOOST_PP_ENUM_TRAILING_, z)( \
- n \
- , BOOST_CONTAINER_PP_PARAM_LIST \
- , _ \
- ) \
- ) \
- { \
- return value_type( \
- key \
- , T2( \
- BOOST_PP_CAT(BOOST_PP_ENUM_, z)( \
- n \
- , BOOST_CONTAINER_PP_PARAM_FORWARD \
- , _ \
- ) \
- ) \
- ); \
- } \
-//!
- BOOST_PP_REPEAT(
- BOOST_PP_DEC(BOOST_CONTAINER_MAX_CONSTRUCTOR_PARAMETERS)
- , BOOST_TREE_NODE_CONTAINER_BINARY_ASSOCIATIVE_MACRO
- , _
- )
-#undef BOOST_TREE_NODE_CONTAINER_BINARY_ASSOCIATIVE_MACRO
-
-#define BOOST_TREE_NODE_CONTAINER_BINARY_ASSOCIATIVE_MACRO(z, n, _) \
- template < \
- typename NodeGenerator \
- , typename T1 \
- , typename T2 \
- , typename IsMultipleAssociative \
- , typename CompareSelector \
- , typename Balancer \
- > \
- BOOST_PP_EXPR_IF(n, template <) \
- BOOST_PP_ENUM_PARAMS_Z(z, n, typename P) \
- BOOST_PP_EXPR_IF(n, >) \
- typename binode_associative_container< \
- NodeGenerator \
- , T1 \
- , T2 \
- , IsMultipleAssociative \
- , CompareSelector \
- , Balancer \
- >::iterator \
- binode_associative_container< \
- NodeGenerator \
- , T1 \
- , T2 \
- , IsMultipleAssociative \
- , CompareSelector \
- , Balancer \
- >::_emplace( \
- ::boost::mpl::true_ \
- BOOST_PP_CAT(BOOST_PP_ENUM_TRAILING_, z)( \
- n \
- , BOOST_CONTAINER_PP_PARAM_LIST \
- , _ \
- ) \
- ) \
- { \
- if (!this->_root_ptr) \
- { \
- return iterator( \
- make_in_order_iterator( \
- *( \
- this->_root_ptr = this->_construct_node_from( \
- ::std::tr1::is_const< \
- typename ::std::tr1::remove_reference< \
- typename node::traits::allocator_reference \
- >::type \
- >() \
- , this->_allocator \
- BOOST_PP_CAT(BOOST_PP_ENUM_TRAILING_, z)( \
- n \
- , BOOST_CONTAINER_PP_PARAM_FORWARD \
- , _ \
- ) \
- ) \
- ) \
- ) \
- , transform_function() \
- ); \
- } \
- typename node::pointer node_ptr = binary_upper_bound( \
- this->_root_ptr \
- , this->_construct_value_from( \
- ::std::tr1::is_void<T2>() \
- BOOST_PP_CAT(BOOST_PP_ENUM_TRAILING_, z)( \
- n \
- , BOOST_CONTAINER_PP_PARAM_FORWARD \
- , _ \
- ) \
- ) \
- , insert_compare(this->_key_compare) \
- ); \
- if (node_ptr) \
- { \
- if (node_ptr->get_left_child_ptr()) \
- { \
- for ( \
- node_ptr = node_ptr->get_left_child_ptr(); \
- node_ptr->get_right_child_ptr(); \
- node_ptr = node_ptr->get_right_child_ptr() \
- ) \
- { \
- } \
- node_ptr = &*node_ptr->emplace_right( \
- BOOST_PP_CAT(BOOST_PP_ENUM_, z)( \
- n \
- , BOOST_CONTAINER_PP_PARAM_FORWARD \
- , _ \
- ) \
- ); \
- } \
- else \
- { \
- node_ptr = &*node_ptr->emplace_left( \
- BOOST_PP_CAT(BOOST_PP_ENUM_, z)( \
- n \
- , BOOST_CONTAINER_PP_PARAM_FORWARD \
- , _ \
- ) \
- ); \
- } \
- } \
- else \
- { \
- for ( \
- node_ptr = this->_root_ptr; \
- node_ptr->get_right_child_ptr(); \
- node_ptr = node_ptr->get_right_child_ptr() \
- ) \
- { \
- } \
- node_ptr = &*node_ptr->emplace_right( \
- BOOST_PP_CAT(BOOST_PP_ENUM_, z)( \
- n \
- , BOOST_CONTAINER_PP_PARAM_FORWARD \
- , _ \
- ) \
- ); \
- } \
- node_ptr = Balancer::post_insert(node_ptr); \
- if (!node_ptr->get_parent_ptr()) \
- { \
- this->_root_ptr = node_ptr; \
- } \
- return iterator( \
- make_in_order_iterator_position(*node_ptr) \
- , transform_function() \
- ); \
- } \
-//!
- BOOST_PP_REPEAT(
- BOOST_CONTAINER_MAX_CONSTRUCTOR_PARAMETERS
- , BOOST_TREE_NODE_CONTAINER_BINARY_ASSOCIATIVE_MACRO
- , _
- )
-#undef BOOST_TREE_NODE_CONTAINER_BINARY_ASSOCIATIVE_MACRO
-
-#define BOOST_TREE_NODE_CONTAINER_BINARY_ASSOCIATIVE_MACRO(z, n, _) \
- template < \
- typename NodeGenerator \
- , typename T1 \
- , typename T2 \
- , typename IsMultipleAssociative \
- , typename CompareSelector \
- , typename Balancer \
- > \
- BOOST_PP_EXPR_IF(n, template <) \
- BOOST_PP_ENUM_PARAMS_Z(z, n, typename P) \
- BOOST_PP_EXPR_IF(n, >) \
- ::std::pair< \
- typename binode_associative_container< \
- NodeGenerator \
- , T1 \
- , T2 \
- , IsMultipleAssociative \
- , CompareSelector \
- , Balancer \
- >::iterator \
- , bool \
- > \
- binode_associative_container< \
- NodeGenerator \
- , T1 \
- , T2 \
- , IsMultipleAssociative \
- , CompareSelector \
- , Balancer \
- >::_emplace( \
- ::boost::mpl::false_ \
- BOOST_PP_CAT(BOOST_PP_ENUM_TRAILING_, z)( \
- n \
- , BOOST_CONTAINER_PP_PARAM_LIST \
- , _ \
- ) \
- ) \
- { \
- if (!this->_root_ptr) \
- { \
- return ::std::make_pair( \
- iterator( \
- make_in_order_iterator( \
- *( \
- this->_root_ptr = this->_construct_node_from( \
- ::std::tr1::is_const< \
- typename ::std::tr1::remove_reference< \
- typename node::traits::allocator_reference \
- >::type \
- >() \
- , this->_allocator \
- BOOST_PP_CAT(BOOST_PP_ENUM_TRAILING_, z)( \
- n \
- , BOOST_CONTAINER_PP_PARAM_FORWARD \
- , _ \
- ) \
- ) \
- ) \
- ) \
- , transform_function() \
- ) \
- , true \
- ); \
- } \
- value_type value( \
- this->_construct_value_from( \
- ::std::tr1::is_void<T2>() \
- BOOST_PP_CAT(BOOST_PP_ENUM_TRAILING_, z)( \
- n \
- , BOOST_CONTAINER_PP_PARAM_FORWARD \
- , _ \
- ) \
- ) \
- ); \
- insert_compare compare(this->_key_compare); \
- typename node::pointer p = this->_root_ptr; \
- for (;;) \
- { \
- if (compare(value, *p)) \
- { \
- if (p->get_left_child_ptr()) \
- { \
- p = p->get_left_child_ptr(); \
- } \
- else \
- { \
- typename node::pointer n = Balancer::post_insert( \
- p = &*p->emplace_left( \
- BOOST_PP_CAT(BOOST_PP_ENUM_, z)( \
- n \
- , BOOST_CONTAINER_PP_PARAM_FORWARD \
- , _ \
- ) \
- ) \
- ); \
- if (!n->get_parent_ptr()) \
- { \
- this->_root_ptr = n; \
- } \
- return ::std::make_pair( \
- iterator( \
- make_in_order_iterator_position(*p) \
- , transform_function() \
- ) \
- , true \
- ); \
- } \
- } \
- else if (compare(*p, value)) \
- { \
- if (p->get_right_child_ptr()) \
- { \
- p = p->get_right_child_ptr(); \
- } \
- else \
- { \
- typename node::pointer n = Balancer::post_insert( \
- p = &*p->emplace_right( \
- BOOST_PP_CAT(BOOST_PP_ENUM_, z)( \
- n \
- , BOOST_CONTAINER_PP_PARAM_FORWARD \
- , _ \
- ) \
- ) \
- ); \
- if (!n->get_parent_ptr()) \
- { \
- this->_root_ptr = n; \
- } \
- return ::std::make_pair( \
- iterator( \
- make_in_order_iterator_position(*p) \
- , transform_function() \
- ) \
- , true \
- ); \
- } \
- } \
- else \
- { \
- break; \
- } \
- } \
- return ::std::make_pair( \
- iterator( \
- make_in_order_iterator_position(*p) \
- , transform_function() \
- ) \
- , false \
- ); \
- } \
-//!
- BOOST_PP_REPEAT(
- BOOST_CONTAINER_MAX_CONSTRUCTOR_PARAMETERS
- , BOOST_TREE_NODE_CONTAINER_BINARY_ASSOCIATIVE_MACRO
- , _
- )
-#undef BOOST_TREE_NODE_CONTAINER_BINARY_ASSOCIATIVE_MACRO
-
-#define BOOST_TREE_NODE_CONTAINER_BINARY_ASSOCIATIVE_MACRO(z, n, _) \
- template < \
- typename NodeGenerator \
- , typename T1 \
- , typename T2 \
- , typename IsMultipleAssociative \
- , typename CompareSelector \
- , typename Balancer \
- > \
- BOOST_PP_EXPR_IF(n, template <) \
- BOOST_PP_ENUM_PARAMS_Z(z, n, typename P) \
- BOOST_PP_EXPR_IF(n, >) \
- inline typename ::boost::mpl::if_< \
- IsMultipleAssociative \
- , typename binode_associative_container< \
- NodeGenerator \
- , T1 \
- , T2 \
- , IsMultipleAssociative \
- , CompareSelector \
- , Balancer \
- >::iterator \
- , ::std::pair< \
- typename binode_associative_container< \
- NodeGenerator \
- , T1 \
- , T2 \
- , IsMultipleAssociative \
- , CompareSelector \
- , Balancer \
- >::iterator \
- , bool \
- > \
- >::type \
- binode_associative_container< \
- NodeGenerator \
- , T1 \
- , T2 \
- , IsMultipleAssociative \
- , CompareSelector \
- , Balancer \
- >::emplace( \
- BOOST_PP_CAT(BOOST_PP_ENUM_, z)( \
- n \
- , BOOST_CONTAINER_PP_PARAM_LIST \
- , _ \
- ) \
- ) \
- { \
- return this->_emplace( \
- IsMultipleAssociative() \
- BOOST_PP_CAT(BOOST_PP_ENUM_TRAILING_, z)( \
- n \
- , BOOST_CONTAINER_PP_PARAM_FORWARD \
- , _ \
- ) \
- ); \
- } \
-//!
- BOOST_PP_REPEAT(
- BOOST_CONTAINER_MAX_CONSTRUCTOR_PARAMETERS
- , BOOST_TREE_NODE_CONTAINER_BINARY_ASSOCIATIVE_MACRO
- , _
- )
-#undef BOOST_TREE_NODE_CONTAINER_BINARY_ASSOCIATIVE_MACRO
-#endif // BOOST_CONTAINER_PERFECT_FORWARDING
-
- template <
- typename NodeGenerator
- , typename T1
- , typename T2
- , typename IsMultipleAssociative
- , typename CompareSelector
- , typename Balancer
- >
- void
- binode_associative_container<
- NodeGenerator
- , T1
- , T2
- , IsMultipleAssociative
- , CompareSelector
- , Balancer
- >::_erase_one(typename node::pointer p)
- {
- for (typename node::pointer s;;)
- {
- if (
- (s = p->get_left_child_ptr()) && (
- !p->get_right_child_ptr() || Balancer::choose_predecessor(
- *typename node::const_pointer(p)
- )
- )
- )
- {
- while (s->get_right_child_ptr())
- {
- s = s->get_right_child_ptr();
- }
-
- if (s->get_parent_ptr() == p)
- {
- if (!p->get_right_child_ptr())
- {
- put(*p, data_key(), get(*s, data_key()));
-
- bool must_rebalance = Balancer::pre_erase(*s);
-
- p->erase_left();
-
- if (must_rebalance)
- {
- p = Balancer::post_erase_left(p);
-
- if (!p->get_parent_ptr())
- {
- this->_root_ptr = p;
- }
- }
-
- break;
- }
- }
- else // if (s == s->get_parent_ptr()->get_right_child_ptr())
- {
- put(*p, data_key(), get(*s, data_key()));
-
- if (s->get_left_child_ptr())
- {
- p = s;
- }
- else // if (s->empty())
- {
- p = s->get_parent_ptr();
-
- if (p->get_left_child_ptr())
- {
- put(*s, data_key(), get(*p, data_key()));
- }
- else // s is only child of p
- {
- bool must_rebalance = Balancer::pre_erase(*s);
-
- p->erase_right();
-
- if (must_rebalance)
- {
- p = Balancer::post_erase_right(p);
-
- if (!p->get_parent_ptr())
- {
- this->_root_ptr = p;
- }
- }
-
- break;
- }
- }
-
- continue;
- }
- }
-
- if ((s = p->get_right_child_ptr()))
- {
- while (s->get_left_child_ptr())
- {
- s = s->get_left_child_ptr();
- }
-
- put(*p, data_key(), get(*s, data_key()));
-
- if (s->get_right_child_ptr())
- {
- p = s;
- }
- else if (s->get_parent_ptr() == p)
- {
- bool must_rebalance = Balancer::pre_erase(*s);
-
- p->erase_right();
-
- if (must_rebalance)
- {
- p = Balancer::post_erase_right(p);
-
- if (!p->get_parent_ptr())
- {
- this->_root_ptr = p;
- }
- }
-
- break;
- }
- else
- {
- BOOST_ASSERT(s->empty());
- p = s->get_parent_ptr();
- BOOST_ASSERT(p->get_left_child_ptr() == s);
-
- if (p->get_right_child_ptr())
- {
- put(*s, data_key(), get(*p, data_key()));
- }
- else // s is only child of p
- {
- bool must_rebalance = Balancer::pre_erase(*s);
-
- p->erase_left();
-
- if (must_rebalance)
- {
- p = Balancer::post_erase_left(p);
-
- if (!p->get_parent_ptr())
- {
- this->_root_ptr = p;
- }
- }
-
- break;
- }
- }
- }
- else // if (p->empty())
- {
- s = p;
- p = p->get_parent_ptr();
-
- bool must_rebalance = Balancer::pre_erase(*s);
-
- if (p->get_left_child_ptr() == s)
- {
- p->erase_left();
-
- if (must_rebalance)
- {
- p = Balancer::post_erase_left(p);
-
- if (!p->get_parent_ptr())
- {
- this->_root_ptr = p;
- }
- }
- }
- else // if (p->get_right_child_ptr() == s)
- {
- p->erase_right();
-
- if (must_rebalance)
- {
- p = Balancer::post_erase_right(p);
-
- if (!p->get_parent_ptr())
- {
- this->_root_ptr = p;
- }
- }
- }
-
- break;
- }
- }
- }
-
- template <
- typename NodeGenerator
- , typename T1
- , typename T2
- , typename IsMultipleAssociative
- , typename CompareSelector
- , typename Balancer
- >
- typename binode_associative_container<
- NodeGenerator
- , T1
- , T2
- , IsMultipleAssociative
- , CompareSelector
- , Balancer
- >::size_type
- binode_associative_container<
- NodeGenerator
- , T1
- , T2
- , IsMultipleAssociative
- , CompareSelector
- , Balancer
- >::_erase(key_type const& key, ::boost::mpl::true_)
- {
- size_type result = ::boost::initialized_value;
-
- for (
- typename node::pointer p;
- (
- p = binary_descendant(
- this->_root_ptr
- , key
- , this->_value_compare
- )
- );
- ++result
- )
- {
- this->_erase_one(p);
- }
-
- return result;
- }
-
- template <
- typename NodeGenerator
- , typename T1
- , typename T2
- , typename IsMultipleAssociative
- , typename CompareSelector
- , typename Balancer
- >
- typename binode_associative_container<
- NodeGenerator
- , T1
- , T2
- , IsMultipleAssociative
- , CompareSelector
- , Balancer
- >::size_type
- binode_associative_container<
- NodeGenerator
- , T1
- , T2
- , IsMultipleAssociative
- , CompareSelector
- , Balancer
- >::_erase(key_type const& key, ::boost::mpl::false_)
- {
- this->_erase_one(
- binary_descendant(
- this->_root_ptr
- , key
- , this->_value_compare
- )
- );
- return 1;
- }
-
- template <
- typename NodeGenerator
- , typename T1
- , typename T2
- , typename IsMultipleAssociative
- , typename CompareSelector
- , typename Balancer
- >
- inline typename binode_associative_container<
- NodeGenerator
- , T1
- , T2
- , IsMultipleAssociative
- , CompareSelector
- , Balancer
- >::size_type
- binode_associative_container<
- NodeGenerator
- , T1
- , T2
- , IsMultipleAssociative
- , CompareSelector
- , Balancer
- >::erase(key_type const& key)
- {
- if (this->_root_ptr)
- {
- if (this->_root_ptr->empty())
- {
- this->clear();
- return 1;
- }
- else
- {
- return this->_erase(key, IsMultipleAssociative());
- }
- }
- else
- {
- return 0;
- }
- }
-
- template <
- typename NodeGenerator
- , typename T1
- , typename T2
- , typename IsMultipleAssociative
- , typename CompareSelector
- , typename Balancer
- >
- inline bool
- binode_associative_container<
- NodeGenerator
- , T1
- , T2
- , IsMultipleAssociative
- , CompareSelector
- , Balancer
- >::empty() const
- {
- return !this->_root_ptr;
- }
-
- template <
- typename NodeGenerator
- , typename T1
- , typename T2
- , typename IsMultipleAssociative
- , typename CompareSelector
- , typename Balancer
- >
- void
- binode_associative_container<
- NodeGenerator
- , T1
- , T2
- , IsMultipleAssociative
- , CompareSelector
- , Balancer
- >::clear()
- {
- if (this->_root_ptr)
- {
-#if defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- this->_allocator.destroy(this->_root_ptr);
- this->_allocator.deallocate(this->_root_ptr, 1);
-#else // !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- ::boost::container::allocator_traits<
- allocator_type
- >::destroy(this->_allocator, this->_root_ptr);
- ::boost::container::allocator_traits<
- allocator_type
- >::deallocate(this->_allocator, this->_root_ptr, 1);
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-#if defined BOOST_NO_CXX11_NULLPTR
- this->_root_ptr = 0;
-#else
- this->_root_ptr = nullptr;
-#endif
- }
- }
-
- template <
- typename NodeGenerator
- , typename T1
- , typename T2
- , typename IsMultipleAssociative
- , typename CompareSelector
- , typename Balancer
- >
- inline typename binode_associative_container<
- NodeGenerator
- , T1
- , T2
- , IsMultipleAssociative
- , CompareSelector
- , Balancer
- >::size_type
- binode_associative_container<
- NodeGenerator
- , T1
- , T2
- , IsMultipleAssociative
- , CompareSelector
- , Balancer
- >::_size(::boost::mpl::true_) const
- {
- return this->_root_ptr ? get(*this->_root_ptr, count_key()) : 0;
- }
-
- template <
- typename NodeGenerator
- , typename T1
- , typename T2
- , typename IsMultipleAssociative
- , typename CompareSelector
- , typename Balancer
- >
- inline typename binode_associative_container<
- NodeGenerator
- , T1
- , T2
- , IsMultipleAssociative
- , CompareSelector
- , Balancer
- >::size_type
- binode_associative_container<
- NodeGenerator
- , T1
- , T2
- , IsMultipleAssociative
- , CompareSelector
- , Balancer
- >::_size(::boost::mpl::false_) const
- {
- return ::std::distance(this->cbegin(), this->cend());
- }
-
- template <
- typename NodeGenerator
- , typename T1
- , typename T2
- , typename IsMultipleAssociative
- , typename CompareSelector
- , typename Balancer
- >
- inline typename binode_associative_container<
- NodeGenerator
- , T1
- , T2
- , IsMultipleAssociative
- , CompareSelector
- , Balancer
- >::size_type
- binode_associative_container<
- NodeGenerator
- , T1
- , T2
- , IsMultipleAssociative
- , CompareSelector
- , Balancer
- >::size() const
- {
- return this->_size(result_of::has_key<node,count_key>());
- }
-
- template <
- typename NodeGenerator
- , typename T1
- , typename T2
- , typename IsMultipleAssociative
- , typename CompareSelector
- , typename Balancer
- >
- inline typename binode_associative_container<
- NodeGenerator
- , T1
- , T2
- , IsMultipleAssociative
- , CompareSelector
- , Balancer
- >::transform_function::const_result
- binode_associative_container<
- NodeGenerator
- , T1
- , T2
- , IsMultipleAssociative
- , CompareSelector
- , Balancer
- >::operator[](size_type const& index) const
- {
- BOOST_ASSERT_MSG(
- this->_root_ptr && (index < this->size())
- , "index out of bounds"
- );
-
- typename node::const_pointer node_ptr = this->_root_ptr;
-
- return transform_function()(
- *binary_descendant_at_index(node_ptr, index)
- );
- }
-
- template <
- typename NodeGenerator
- , typename T1
- , typename T2
- , typename IsMultipleAssociative
- , typename CompareSelector
- , typename Balancer
- >
- inline typename binode_associative_container<
- NodeGenerator
- , T1
- , T2
- , IsMultipleAssociative
- , CompareSelector
- , Balancer
- >::transform_function::mutable_result
- binode_associative_container<
- NodeGenerator
- , T1
- , T2
- , IsMultipleAssociative
- , CompareSelector
- , Balancer
- >::operator[](size_type const& index)
- {
- BOOST_ASSERT_MSG(
- this->_root_ptr && (index < this->size())
- , "index out of bounds"
- );
-
- return transform_function()(
- *binary_descendant_at_index(this->_root_ptr, index)
- );
- }
-}} // namespace boost::tree_node
-
-namespace boost { namespace tree_node {
-
- template <
- typename T
- , typename NodeGenerator
- , typename Balancer
- , typename CompareSelector
- >
- class binode_set
- : public
- //[reference__binode_set__bases
- binode_associative_container<
- NodeGenerator
- , T
- , void
- , ::boost::mpl::false_
- , CompareSelector
- , Balancer
- >
- //]
- {
- typedef binode_associative_container<
- NodeGenerator
- , T
- , void
- , ::boost::mpl::false_
- , CompareSelector
- , Balancer
- >
- super_t;
-
- public:
- BOOST_TREE_NODE_ASSOCIATIVE_CONTAINER_DERIVED_BODY(binode_set, super_t)
- };
-}} // namespace boost::tree_node
-
-namespace boost { namespace tree_node {
-
- template <
- typename T
- , typename NodeGenerator
- , typename Balancer
- , typename CompareSelector
- >
- class binode_multiset
- : public
- //[reference__binode_multiset__bases
- binode_associative_container<
- NodeGenerator
- , T
- , void
- , ::boost::mpl::true_
- , CompareSelector
- , Balancer
- >
- //]
- {
- typedef binode_associative_container<
- NodeGenerator
- , T
- , void
- , ::boost::mpl::true_
- , CompareSelector
- , Balancer
- >
- super_t;
-
- public:
- BOOST_TREE_NODE_ASSOCIATIVE_CONTAINER_DERIVED_BODY(
- binode_multiset
- , super_t
- )
- };
-}} // namespace boost::tree_node
-
-namespace boost { namespace tree_node {
-
- template <
- typename Key
- , typename Mapped
- , typename NodeGenerator
- , typename Balancer
- , typename CompareSelector
- >
- class binode_map
- : public
- //[reference__binode_map__bases
- binode_associative_container<
- NodeGenerator
- , Key
- , Mapped
- , ::boost::mpl::false_
- , CompareSelector
- , Balancer
- >
- //]
- {
- typedef binode_associative_container<
- NodeGenerator
- , Key
- , Mapped
- , ::boost::mpl::false_
- , CompareSelector
- , Balancer
- >
- super_t;
-
- public:
- //[reference__binode_map__mapped_type
- typedef Mapped mapped_type;
- //]
-
- BOOST_TREE_NODE_ASSOCIATIVE_CONTAINER_DERIVED_BODY(binode_map, super_t)
- };
-}} // namespace boost::tree_node
-
-namespace boost { namespace tree_node {
-
- template <
- typename Key
- , typename Mapped
- , typename NodeGenerator
- , typename Balancer
- , typename CompareSelector
- >
- class binode_multimap
- : public
- //[reference__binode_multimap__bases
- binode_associative_container<
- NodeGenerator
- , Key
- , Mapped
- , ::boost::mpl::true_
- , CompareSelector
- , Balancer
- >
- //]
- {
- typedef binode_associative_container<
- NodeGenerator
- , Key
- , Mapped
- , ::boost::mpl::true_
- , CompareSelector
- , Balancer
- >
- super_t;
-
- public:
- //[reference__binode_multimap__mapped_type
- typedef Mapped mapped_type;
- //]
-
- BOOST_TREE_NODE_ASSOCIATIVE_CONTAINER_DERIVED_BODY(
- binode_multimap
- , super_t
- )
- };
-}} // namespace boost::tree_node
-
-#endif // BOOST_TREE_NODE_CONTAINER_BINODE_ASSOCIATIVE_HPP_INCLUDED
-

Deleted: sandbox/tree_node/boost/tree_node/container/binode_associative_fwd.hpp
==============================================================================
--- sandbox/tree_node/boost/tree_node/container/binode_associative_fwd.hpp 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84956)
+++ /dev/null 00:00:00 1970 (deleted)
@@ -1,61 +0,0 @@
-// 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)
-
-#ifndef BOOST_TREE_NODE_CONTAINER_BINODE_ASSOCIATIVE_FWD_HPP_INCLUDED
-#define BOOST_TREE_NODE_CONTAINER_BINODE_ASSOCIATIVE_FWD_HPP_INCLUDED
-
-#include <boost/container_gen/selectors.hpp>
-#include <boost/tree_node/binary_node.hpp>
-#include <boost/tree_node/balancer/null.hpp>
-
-namespace boost { namespace tree_node {
-
- template <
- typename NodeGenerator
- , typename T1
- , typename T2
- , typename IsMultipleAssociative
- , typename CompareSelector
- , typename Balancer
- >
- class binode_associative_container;
-
- template <
- typename T
- , typename NodeGenerator = binary_node_default_gen
- , typename Balancer = null_balancer
- , typename CompareSelector = ::boost::default_ordering_selector
- >
- class binode_set;
-
- template <
- typename T
- , typename NodeGenerator = binary_node_default_gen
- , typename Balancer = null_balancer
- , typename CompareSelector = ::boost::default_ordering_selector
- >
- class binode_multiset;
-
- template <
- typename Key
- , typename Mapped
- , typename NodeGenerator = binary_node_default_gen
- , typename Balancer = null_balancer
- , typename CompareSelector = ::boost::default_ordering_selector
- >
- class binode_map;
-
- template <
- typename Key
- , typename Mapped
- , typename NodeGenerator = binary_node_default_gen
- , typename Balancer = null_balancer
- , typename CompareSelector = ::boost::default_ordering_selector
- >
- class binode_multimap;
-}} // namespace boost::tree_node
-
-#endif // BOOST_TREE_NODE_CONTAINER_BINODE_ASSOCIATIVE_FWD_HPP_INCLUDED
-

Deleted: sandbox/tree_node/boost/tree_node/container/binode_fwd.hpp
==============================================================================
--- sandbox/tree_node/boost/tree_node/container/binode_fwd.hpp 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84956)
+++ /dev/null 00:00:00 1970 (deleted)
@@ -1,23 +0,0 @@
-// 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)
-
-#ifndef BOOST_TREE_NODE_CONTAINER_BINODE_FWD_HPP_INCLUDED
-#define BOOST_TREE_NODE_CONTAINER_BINODE_FWD_HPP_INCLUDED
-
-#include <boost/tree_node/binary_node.hpp>
-#include <boost/tree_node/balancer/null.hpp>
-
-namespace boost { namespace tree_node {
-
- template <
- typename T
- , typename NodeGenerator = binary_node_default_gen
- , typename Balancer = null_balancer
- >
- class binode_container;
-}} // namespace boost::tree_node
-
-#endif // BOOST_TREE_NODE_CONTAINER_BINODE_FWD_HPP_INCLUDED
-

Deleted: sandbox/tree_node/boost/tree_node/nary_node.hpp
==============================================================================
--- sandbox/tree_node/boost/tree_node/nary_node.hpp 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84956)
+++ /dev/null 00:00:00 1970 (deleted)
@@ -1,2106 +0,0 @@
-// 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)
-
-#ifndef BOOST_TREE_NODE_NARY_NODE_HPP_INCLUDED
-#define BOOST_TREE_NODE_NARY_NODE_HPP_INCLUDED
-
-#include <utility>
-#include <deque>
-#include <algorithm>
-#include <boost/mpl/assert.hpp>
-#include <boost/mpl/if.hpp>
-#include <boost/noncopyable.hpp>
-#include <boost/utility/value_init.hpp>
-#include <boost/iterator/transform_iterator.hpp>
-#include <boost/range.hpp>
-#include <boost/container_gen/container_gen.hpp>
-#include <boost/container_gen/emplace_function_gen.hpp>
-#include <boost/container_gen/splice_function_gen.hpp>
-#include <boost/container_gen/insert_range_result_gen.hpp>
-#include <boost/container_gen/is_recursive_selector.hpp>
-#include <boost/container_gen/is_reversible_selector.hpp>
-#include <boost/container_gen/is_random_access_selector.hpp>
-#include <boost/container_gen/is_ptr_selector.hpp>
-#include <boost/container_gen/has_stable_iters_selector.hpp>
-#include <boost/tree_node/preprocessor.hpp>
-#include <boost/tree_node/base.hpp>
-#include <boost/tree_node/nary_node_fwd.hpp>
-#include <boost/tree_node/intrinsic/has_key.hpp>
-#include <boost/tree_node/intrinsic/get_keys.hpp>
-#include <boost/tree_node/iterator/depth_first_descendant.hpp>
-#include <boost/tree_node/iterator/post_order.hpp>
-#include <boost/detail/metafunction/container_reverse_iterator.hpp>
-#include <boost/assert.hpp>
-
-#if defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-#include <boost/container_gen/insert_range_function_gen.hpp>
-#else
-#include <boost/move/move.hpp>
-#include <boost/container_gen/selectors.hpp>
-#endif
-
-#if !defined BOOST_CONTAINER_PERFECT_FORWARDING
-#include <boost/preprocessor/repetition/enum_trailing.hpp>
-#include <boost/preprocessor/repetition/repeat.hpp>
-#endif
-
-#include <boost/tree_node/_detail/config_begin.hpp>
-
-#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-#include <boost/type_traits/is_pod.hpp>
-
-namespace boost {
-
- template <typename Derived, typename T, typename Selector>
- struct is_POD<
- ::boost::tree_node::nary_node_base<Derived,T,Selector>
- > : ::boost::false_type
- {
- };
-
- template <typename Derived, typename T, typename Selector>
- struct is_pod<
- ::boost::tree_node::nary_node_base<Derived,T,Selector>
- > : ::boost::false_type
- {
- };
-} // namespace boost
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-#if defined BOOST_TREE_NODE_CAN_USE_FUSION
-#include <boost/mpl/vector.hpp>
-#include <boost/mpl/placeholders.hpp>
-#include <boost/mpl/transform_view.hpp>
-#include <boost/fusion/sequence/intrinsic/at_key.hpp>
-#include <boost/fusion/iterator/key_of.hpp>
-#include <boost/fusion/support/is_sequence.hpp>
-#include <boost/fusion/support/category_of.hpp>
-
-namespace boost { namespace tree_node { namespace result_of {
-
- template <
- typename Derived
- , typename T
- , typename Selector
- , typename FusionKey
- >
- struct has_key_impl<nary_node_base<Derived,T,Selector>,FusionKey>
- : ::boost::mpl::eval_if<
- typename ::boost::mpl::eval_if<
- typename ::boost::fusion::traits::is_sequence<T>::type
- , ::boost::fusion::traits::is_associative<T>
- , ::boost::mpl::false_
- >::type
- , ::boost::fusion::result_of::has_key<T,FusionKey>
- , ::std::tr1::is_same<FusionKey,data_key>
- >::type
- {
- };
-
- template <typename Derived, typename T, typename Selector>
- struct get_keys_impl<nary_node_base<Derived,T,Selector> >
- : ::boost::mpl::eval_if<
- typename ::boost::mpl::eval_if<
- typename ::boost::fusion::traits::is_sequence<T>::type
- , ::boost::fusion::traits::is_associative<T>
- , ::boost::mpl::false_
- >::type
- , ::boost::mpl::transform_view<
- T
- , ::boost::fusion::result_of::key_of< ::boost::mpl::_>
- >
- , ::boost::mpl::vector1<data_key>
- >
- {
- };
-}}} // namespace boost::tree_node::result_of
-#endif // BOOST_TREE_NODE_CAN_USE_FUSION
-
-namespace boost { namespace tree_node {
-
- template <typename Derived, typename T, typename Selector>
- class nary_node_base
- : public
- //[reference__nary_node_base__bases
- tree_node_base<Derived>
- //]
-#if defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- , public data_key
-#endif
- , private ::boost::noncopyable
- {
- BOOST_MPL_ASSERT((::boost::is_recursive_selector<Selector>));
-
- typedef nary_node_base<Derived,T,Selector> self;
-
- //[reference__nary_node_base__children
- typedef typename ::boost::container_gen<Selector,Derived>::type
- children;
- //]
-
- public:
- //[reference__nary_node_base__super_t
- typedef tree_node_base<Derived> super_t;
- //]
-
- //[reference__nary_node_base__traits
- struct traits
- {
- typedef T data_type;
- typedef typename children::allocator_type allocator;
- typedef allocator const& allocator_reference;
- };
- //]
-
- //[reference__nary_node_base__pointer
- typedef typename super_t::pointer pointer;
- //]
-
- //[reference__nary_node_base__const_pointer
- typedef typename super_t::const_pointer const_pointer;
- //]
-
- //[reference__nary_node_base__iterator
- typedef typename children::iterator iterator;
- //]
-
- //[reference__nary_node_base__const_iterator
- typedef typename children::const_iterator const_iterator;
- //]
-
- typedef typename ::boost::detail::metafunction
- ::container_reverse_iterator<children>::type
- reverse_iterator;
- typedef typename ::boost::detail::metafunction
- ::container_reverse_iterator<children const>::type
- const_reverse_iterator;
-
- //[reference__nary_node_base__size_type
- typedef typename children::size_type size_type;
- //]
-
- private:
- children _children;
- typename traits::data_type _data;
- pointer _parent;
-
- protected:
- //[reference__nary_node_base__derived_copy_ctor
- nary_node_base(Derived const& copy);
- //]
-
- //[reference__nary_node_base__derived_copy_ctor_w_allocator
- nary_node_base(
- Derived const& copy
- , typename traits::allocator_reference allocator
- );
- //]
-
-#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- nary_node_base(BOOST_RV_REF(Derived) source);
-
- nary_node_base(
- BOOST_RV_REF(Derived) source
- , typename traits::allocator_reference allocator
- );
-#endif
-
-#if defined BOOST_CONTAINER_PERFECT_FORWARDING
- //[reference__nary_node_base__emplacement_ctor
- template <typename ...Args>
- explicit nary_node_base(Args&& ...args);
- //]
-
- //[reference__nary_node_base__emplacement_ctor_w_allocator
- template <typename ...Args>
- explicit nary_node_base(
- ::boost::container::allocator_arg_t
- , typename traits::allocator_reference allocator
- , Args&& ...args
- );
- //]
-#else // !defined BOOST_CONTAINER_PERFECT_FORWARDING
- BOOST_PP_REPEAT(
- BOOST_CONTAINER_MAX_CONSTRUCTOR_PARAMETERS
- , BOOST_TREE_NODE_EMPLACEMENT_CTOR_FWD_DECL
- , nary_node_base
- )
-
- BOOST_PP_REPEAT(
- BOOST_CONTAINER_MAX_CONSTRUCTOR_PARAMETERS
- , BOOST_TREE_NODE_EMPLACEMENT_CTOR_W_ALLOC_FWD_DECL
- , nary_node_base
- )
-#endif // BOOST_CONTAINER_PERFECT_FORWARDING
-
- ~nary_node_base();
-
- //[reference__nary_node_base__clone_descendants
- void clone_descendants(Derived const& copy);
- //]
-
-#if defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- //[reference__nary_node_base__copy_assign
- void copy_assign(Derived const& copy);
- //]
-#else
- void move_descendants(BOOST_RV_REF(Derived) source);
-
- void copy_assign(BOOST_COPY_ASSIGN_REF(Derived) copy);
-
- void move_assign(BOOST_RV_REF(Derived) source);
-#endif
-
- //[reference__nary_node_base__on_post_assign
- void on_post_assign();
- //]
-
- public:
- //[reference__nary_node_base__data_key_value_operator__const
- typename traits::data_type const& operator[](data_key const&) const;
- //]
-
- //[reference__nary_node_base__data_key_value_operator
- typename traits::data_type& operator[](data_key const&);
- //]
-
-#if defined BOOST_TREE_NODE_CAN_USE_FUSION
- //[reference__nary_node_base__key_value_operator__const
- template <typename FusionKey>
- typename ::boost::lazy_enable_if<
- typename ::boost::mpl::if_<
- typename ::boost::mpl::eval_if<
- typename ::boost::fusion::traits::is_sequence<T>::type
- , ::boost::fusion::traits::is_associative<T>
- , ::boost::mpl::false_
- >::type
- , result_of::has_key<
- nary_node_base<Derived,T,Selector>
- , FusionKey
- >
- , ::boost::mpl::false_
- >::type
- , ::boost::fusion::result_of::at_key<T const,FusionKey>
- >::type
- operator[](FusionKey const&) const;
- //]
-
- //[reference__nary_node_base__key_value_operator
- template <typename FusionKey>
- typename ::boost::lazy_enable_if<
- typename ::boost::mpl::if_<
- typename ::boost::mpl::eval_if<
- typename ::boost::fusion::traits::is_sequence<T>::type
- , ::boost::fusion::traits::is_associative<T>
- , ::boost::mpl::false_
- >::type
- , result_of::has_key<
- nary_node_base<Derived,T,Selector>
- , FusionKey
- >
- , ::boost::mpl::false_
- >::type
- , ::boost::fusion::result_of::at_key<T,FusionKey>
- >::type
- operator[](FusionKey const&);
- //]
-#endif // BOOST_TREE_NODE_CAN_USE_FUSION
-
- //[reference__nary_node_base__get_parent_ptr__const
- const_pointer get_parent_ptr() const;
- //]
-
- //[reference__nary_node_base__get_parent_ptr
- pointer get_parent_ptr();
- //]
-
- //[reference__nary_node_base__cbegin
- const_iterator cbegin() const;
- const_iterator begin() const;
- //]
-
- //[reference__nary_node_base__begin
- iterator begin();
- //]
-
- //[reference__nary_node_base__cend
- const_iterator cend() const;
- const_iterator end() const;
- //]
-
- //[reference__nary_node_base__end
- iterator end();
- //]
-
- //[reference__nary_node_base__crbegin
- const_reverse_iterator crbegin() const;
- const_reverse_iterator rbegin() const;
- //]
-
- //[reference__nary_node_base__rbegin
- reverse_iterator rbegin();
- //]
-
- //[reference__nary_node_base__crend
- const_reverse_iterator crend() const;
- const_reverse_iterator rend() const;
- //]
-
- //[reference__nary_node_base__rend
- reverse_iterator rend();
- //]
-
- //[reference__nary_node_base__size
- size_type size() const;
- //]
-
- //[reference__nary_node_base__empty
- bool empty() const;
- //]
-
- //[reference__nary_node_base__clear
- void clear();
- //]
-
- //[reference__nary_node_base__insert
- iterator insert(Derived const& child);
- //]
-
-#if 0//!defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- //[reference__nary_node_base__move_insert
- iterator insert(BOOST_RV_REF(Derived) child);
- //]
-#endif
-
-#if defined BOOST_CONTAINER_PERFECT_FORWARDING
- //[reference__nary_node_base__emplace
- template <typename ...Args>
- iterator emplace(Args&& ...args);
- //]
-#else // !defined BOOST_CONTAINER_PERFECT_FORWARDING
-#define BOOST_TREE_NODE_NARY_NODE_MACRO(z, n, _) \
- BOOST_PP_EXPR_IF(n, template <) \
- BOOST_PP_ENUM_PARAMS_Z(z, n, typename P) \
- BOOST_PP_EXPR_IF(n, >) \
- iterator \
- emplace( \
- BOOST_PP_CAT(BOOST_PP_ENUM_, z)( \
- n \
- , BOOST_CONTAINER_PP_PARAM_LIST \
- , _ \
- ) \
- ); \
-//!
- BOOST_PP_REPEAT(
- BOOST_CONTAINER_MAX_CONSTRUCTOR_PARAMETERS
- , BOOST_TREE_NODE_NARY_NODE_MACRO
- , _
- )
-#undef BOOST_TREE_NODE_NARY_NODE_MACRO
-#endif // BOOST_CONTAINER_PERFECT_FORWARDING
-
- //[reference__nary_node_base__splice
- typename ::boost::insert_range_result_gen<Selector,Derived>::type
- splice(iterator pos, Derived& node);
-
- typename ::boost::insert_range_result_gen<Selector,Derived>::type
- splice(iterator pos, Derived& node, iterator itr);
-
- typename ::boost::insert_range_result_gen<Selector,Derived>::type
- splice(
- iterator pos
- , Derived& node
- , iterator itr
- , iterator itr_end
- );
- //]
-
- private:
- static void
- _link_children_to_parent(
- pointer const& p
- , iterator itr
- , iterator itr_end
- );
-
-#if defined BOOST_CONTAINER_PERFECT_FORWARDING
- template <typename ...Args>
- iterator _add_child(Args&& ...args);
-#else // !defined BOOST_CONTAINER_PERFECT_FORWARDING
-#define BOOST_TREE_NODE_NARY_NODE_MACRO(z, n, _) \
- BOOST_PP_EXPR_IF(n, template <) \
- BOOST_PP_ENUM_PARAMS_Z(z, n, typename P) \
- BOOST_PP_EXPR_IF(n, >) \
- iterator \
- _add_child( \
- BOOST_PP_CAT(BOOST_PP_ENUM_, z)( \
- n \
- , BOOST_CONTAINER_PP_PARAM_LIST \
- , _ \
- ) \
- ); \
-//!
- BOOST_PP_REPEAT(
- BOOST_CONTAINER_MAX_CONSTRUCTOR_PARAMETERS
- , BOOST_TREE_NODE_NARY_NODE_MACRO
- , _
- )
-#undef BOOST_TREE_NODE_NARY_NODE_MACRO
-#endif // BOOST_CONTAINER_PERFECT_FORWARDING
-
- void _clone_descendants(Derived const& copy);
-
- void _clone_descendants(Derived const& copy, ::boost::mpl::true_);
-
- void _clone_descendants(Derived const& copy, ::boost::mpl::false_);
-
-#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- void _move_descendants(BOOST_RV_REF(Derived) source);
-
- void _move_descendants(Derived& source, ::boost::mpl::true_);
-
- void _move_descendants(Derived& source, ::boost::mpl::false_);
-
- void _move_descendants_non_ptr(Derived& source, ::boost::mpl::true_);
-
- void _move_descendants_non_ptr(Derived& source, ::boost::mpl::false_);
-
- template <typename A>
- void
- _on_post_insert(
- iterator to_child
- , ::boost::vector_selector< ::boost::mpl::true_,A>
- );
-
- template <typename A>
- void _on_post_resize(::boost::vector_selector< ::boost::mpl::true_,A>);
-
- template <typename A>
- void _on_post_outsourced(::boost::stable_vector_selector<A>);
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
- template <typename S>
- void _on_post_insert(iterator to_child, S);
-
- template <typename S>
- void _on_post_resize(S);
-
- template <typename S>
- void _on_post_outsourced(S);
-
- void _on_post_clone_or_move(::boost::mpl::true_);
-
- void _on_post_clone_or_move(::boost::mpl::false_);
-
- typename ::boost::insert_range_result_gen<Selector,Derived>::type
- _splice(
- iterator pos
- , Derived& node
- , iterator itr
- , iterator itr_end
- , ::boost::mpl::true_
- );
-
- typename ::boost::insert_range_result_gen<Selector,Derived>::type
- _splice(
- iterator pos
- , Derived& node
- , iterator itr
- , iterator itr_end
- , ::boost::mpl::false_
- );
-
- template <typename D, typename T0, typename S, typename V>
- friend void
- put(
- nary_node_base<D,T0,S>& node
- , data_key const& key
- , V const& value
- );
-
- void _on_post_modify_value(data_key const& key);
-
-#if defined BOOST_TREE_NODE_CAN_USE_FUSION
- template <typename FusionKey>
- void _on_post_modify_value(FusionKey const& key);
-
- template <
- typename D
- , typename T0
- , typename S
- , typename FusionKey
- , typename V
- >
- friend void
- put(
- nary_node_base<D,T0,S>& node
- , FusionKey const& key
- , V const& value
- , typename ::boost::enable_if<
- typename ::boost::mpl::if_<
- typename ::boost::mpl::eval_if<
- typename ::boost::fusion::traits::is_sequence<T0>::type
- , ::boost::fusion::traits::is_associative<T0>
- , ::boost::mpl::false_
- >::type
- , result_of::has_key<nary_node_base<D,T0,S>,FusionKey>
- , ::boost::mpl::false_
- >::type
- , ::boost::mpl::true_
- >::type
- );
-#endif // BOOST_TREE_NODE_CAN_USE_FUSION
- };
-
- template <typename Derived, typename T, typename Selector>
- nary_node_base<Derived,T,Selector>::nary_node_base(Derived const& copy)
- : _children(), _data(copy._data), _parent()
- {
- }
-
- template <typename Derived, typename T, typename Selector>
- nary_node_base<Derived,T,Selector>::nary_node_base(
- Derived const& copy
- , typename traits::allocator_reference allocator
- ) : _children(allocator), _data(copy._data), _parent()
- {
- }
-
-#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- template <typename Derived, typename T, typename Selector>
- nary_node_base<Derived,T,Selector>::nary_node_base(
- BOOST_RV_REF(Derived) source
- ) : _children(), _data(::boost::move(source._data)), _parent()
- {
- }
-
- template <typename Derived, typename T, typename Selector>
- nary_node_base<Derived,T,Selector>::nary_node_base(
- BOOST_RV_REF(Derived) source
- , typename traits::allocator_reference allocator
- ) : _children(allocator), _data(::boost::move(source._data)), _parent()
- {
- }
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-#if defined BOOST_CONTAINER_PERFECT_FORWARDING
- template <typename Derived, typename T, typename Selector>
- template <typename ...Args>
- nary_node_base<Derived,T,Selector>::nary_node_base(Args&& ...args)
- : _children(), _data(::boost::forward<Args>(args)...), _parent()
- {
- }
-
- template <typename Derived, typename T, typename Selector>
- template <typename ...Args>
- nary_node_base<Derived,T,Selector>::nary_node_base(
- ::boost::container::allocator_arg_t
- , typename traits::allocator_reference allocator
- , Args&& ...args
- ) : _children(allocator), _data(::boost::forward<Args>(args)...), _parent()
- {
- }
-#else // !defined BOOST_CONTAINER_PERFECT_FORWARDING
-#define BOOST_TREE_NODE_NARY_NODE_MACRO(z, n, _) \
- template <typename Derived, typename T, typename Selector> \
- BOOST_PP_EXPR_IF(n, template <) \
- BOOST_PP_ENUM_PARAMS_Z(z, n, typename P) \
- BOOST_PP_EXPR_IF(n, >) \
- nary_node_base<Derived,T,Selector>::nary_node_base( \
- BOOST_PP_CAT(BOOST_PP_ENUM_, z)( \
- n \
- , BOOST_CONTAINER_PP_PARAM_LIST \
- , _ \
- ) \
- ) : _children() \
- , _data( \
- BOOST_PP_CAT(BOOST_PP_ENUM_, z)( \
- n \
- , BOOST_CONTAINER_PP_PARAM_FORWARD \
- , _ \
- ) \
- ) \
- , _parent() \
- { \
- } \
-//!
- BOOST_PP_REPEAT(
- BOOST_CONTAINER_MAX_CONSTRUCTOR_PARAMETERS
- , BOOST_TREE_NODE_NARY_NODE_MACRO
- , _
- )
-#undef BOOST_TREE_NODE_NARY_NODE_MACRO
-
-#define BOOST_TREE_NODE_NARY_NODE_MACRO(z, n, _) \
- template <typename Derived, typename T, typename Selector> \
- BOOST_PP_EXPR_IF(n, template <) \
- BOOST_PP_ENUM_PARAMS_Z(z, n, typename P) \
- BOOST_PP_EXPR_IF(n, >) \
- nary_node_base<Derived,T,Selector>::nary_node_base( \
- ::boost::container::allocator_arg_t \
- , typename traits::allocator_reference allocator \
- BOOST_PP_CAT(BOOST_PP_ENUM_TRAILING_, z)( \
- n \
- , BOOST_CONTAINER_PP_PARAM_LIST \
- , _ \
- ) \
- ) : _children(allocator) \
- , _data( \
- BOOST_PP_CAT(BOOST_PP_ENUM_, z)( \
- n \
- , BOOST_CONTAINER_PP_PARAM_FORWARD \
- , _ \
- ) \
- ) \
- , _parent() \
- { \
- } \
-//!
- BOOST_PP_REPEAT(
- BOOST_CONTAINER_MAX_CONSTRUCTOR_PARAMETERS
- , BOOST_TREE_NODE_NARY_NODE_MACRO
- , _
- )
-#undef BOOST_TREE_NODE_NARY_NODE_MACRO
-#endif // BOOST_CONTAINER_PERFECT_FORWARDING
-
- template <typename Derived, typename T, typename Selector>
- nary_node_base<Derived,T,Selector>::~nary_node_base()
- {
- }
-
- template <typename Derived, typename T, typename Selector>
- inline void
- nary_node_base<Derived,T,Selector>::clone_descendants(
- Derived const& copy
- )
- {
- this->_clone_descendants(copy);
- this->_on_post_clone_or_move(
- ::boost::is_reversible_selector<Selector>()
- );
- }
-
-#if defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- template <typename Derived, typename T, typename Selector>
- inline void
- nary_node_base<Derived,T,Selector>::copy_assign(Derived const& copy)
- {
- Derived twin(copy._data);
-
- twin._clone_descendants(copy);
- this->_children.clear();
- this->_clone_descendants(twin);
- this->clone_metadata(copy);
- this->_data = twin._data;
- }
-#else // !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- template <typename Derived, typename T, typename Selector>
- inline void
- nary_node_base<Derived,T,Selector>::move_descendants(
- BOOST_RV_REF(Derived) source
- )
- {
-#if defined BOOST_NO_RVALUE_REFERENCES
- this->_move_descendants(source);
-#else
- this->_move_descendants(static_cast<Derived&&>(source));
-#endif
- this->_on_post_clone_or_move(
- ::boost::is_reversible_selector<Selector>()
- );
- source._on_post_outsourced(Selector());
- }
-
- template <typename Derived, typename T, typename Selector>
- inline void
- nary_node_base<Derived,T,Selector>::copy_assign(
- BOOST_COPY_ASSIGN_REF(Derived) copy
- )
- {
- Derived twin(copy._data);
-
- twin._clone_descendants(static_cast<Derived const&>(copy));
- this->_children.clear();
- this->_move_descendants(::boost::move(twin));
- this->clone_metadata(copy);
- this->_data = ::boost::move(twin._data);
- }
-
- template <typename Derived, typename T, typename Selector>
- inline void
- nary_node_base<Derived,T,Selector>::move_assign(
- BOOST_RV_REF(Derived) source
- )
- {
- this->_children.clear();
-#if defined BOOST_NO_RVALUE_REFERENCES
- this->_move_descendants(source);
- this->move_metadata(source);
-#else
- this->_move_descendants(static_cast<Derived&&>(source));
- this->move_metadata(static_cast<Derived&&>(source));
-#endif
- this->_on_post_clone_or_move(
- ::boost::is_reversible_selector<Selector>()
- );
- this->_data = ::boost::move(source._data);
- source._on_post_outsourced(Selector());
- }
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
- template <typename Derived, typename T, typename Selector>
- inline void nary_node_base<Derived,T,Selector>::on_post_assign()
- {
- if (this->_parent)
- {
- this->_parent->on_post_propagate_value(data_key());
- }
- }
-
- template <typename Derived, typename T, typename Selector>
- inline typename nary_node_base<
- Derived
- , T
- , Selector
- >::traits::data_type const&
- nary_node_base<Derived,T,Selector>::operator[](data_key const&) const
- {
- return this->_data;
- }
-
- template <typename Derived, typename T, typename Selector>
- inline typename nary_node_base<Derived,T,Selector>::traits::data_type&
- nary_node_base<Derived,T,Selector>::operator[](data_key const&)
- {
- return this->_data;
- }
-
-#if defined BOOST_TREE_NODE_CAN_USE_FUSION
- template <typename Derived, typename T, typename Selector>
- template <typename FusionKey>
- inline typename ::boost::lazy_enable_if<
- typename ::boost::mpl::if_<
- typename ::boost::mpl::eval_if<
- typename ::boost::fusion::traits::is_sequence<T>::type
- , ::boost::fusion::traits::is_associative<T>
- , ::boost::mpl::false_
- >::type
- , result_of::has_key<
- nary_node_base<Derived,T,Selector>
- , FusionKey
- >
- , ::boost::mpl::false_
- >::type
- , ::boost::fusion::result_of::at_key<T const,FusionKey>
- >::type
- nary_node_base<Derived,T,Selector>::operator[](FusionKey const&) const
- {
- return ::boost::fusion::at_key<FusionKey>(this->_data);
- }
-
- template <typename Derived, typename T, typename Selector>
- template <typename FusionKey>
- inline typename ::boost::lazy_enable_if<
- typename ::boost::mpl::if_<
- typename ::boost::mpl::eval_if<
- typename ::boost::fusion::traits::is_sequence<T>::type
- , ::boost::fusion::traits::is_associative<T>
- , ::boost::mpl::false_
- >::type
- , result_of::has_key<
- nary_node_base<Derived,T,Selector>
- , FusionKey
- >
- , ::boost::mpl::false_
- >::type
- , ::boost::fusion::result_of::at_key<T,FusionKey>
- >::type
- nary_node_base<Derived,T,Selector>::operator[](FusionKey const&)
- {
- return ::boost::fusion::at_key<FusionKey>(this->_data);
- }
-#endif // BOOST_TREE_NODE_CAN_USE_FUSION
-
- template <typename Derived, typename T, typename Selector>
- inline typename nary_node_base<Derived,T,Selector>::const_pointer
- nary_node_base<Derived,T,Selector>::get_parent_ptr() const
- {
- return this->_parent;
- }
-
- template <typename Derived, typename T, typename Selector>
- inline typename nary_node_base<Derived,T,Selector>::pointer
- nary_node_base<Derived,T,Selector>::get_parent_ptr()
- {
- return this->_parent;
- }
-
- template <typename Derived, typename T, typename Selector>
- inline typename nary_node_base<Derived,T,Selector>::const_iterator
- nary_node_base<Derived,T,Selector>::cbegin() const
- {
- return this->_children.cbegin();
- }
-
- template <typename Derived, typename T, typename Selector>
- inline typename nary_node_base<Derived,T,Selector>::const_iterator
- nary_node_base<Derived,T,Selector>::begin() const
- {
- return this->_children.begin();
- }
-
- template <typename Derived, typename T, typename Selector>
- inline typename nary_node_base<Derived,T,Selector>::iterator
- nary_node_base<Derived,T,Selector>::begin()
- {
- return this->_children.begin();
- }
-
- template <typename Derived, typename T, typename Selector>
- inline typename nary_node_base<Derived,T,Selector>::const_iterator
- nary_node_base<Derived,T,Selector>::cend() const
- {
- return this->_children.cend();
- }
-
- template <typename Derived, typename T, typename Selector>
- inline typename nary_node_base<Derived,T,Selector>::const_iterator
- nary_node_base<Derived,T,Selector>::end() const
- {
- return this->_children.end();
- }
-
- template <typename Derived, typename T, typename Selector>
- inline typename nary_node_base<Derived,T,Selector>::iterator
- nary_node_base<Derived,T,Selector>::end()
- {
- return this->_children.end();
- }
-
- template <typename Derived, typename T, typename Selector>
- inline typename nary_node_base<Derived,T,Selector>::const_reverse_iterator
- nary_node_base<Derived,T,Selector>::crbegin() const
- {
- return this->_children.crbegin();
- }
-
- template <typename Derived, typename T, typename Selector>
- inline typename nary_node_base<Derived,T,Selector>::const_reverse_iterator
- nary_node_base<Derived,T,Selector>::rbegin() const
- {
- return this->_children.rbegin();
- }
-
- template <typename Derived, typename T, typename Selector>
- inline typename nary_node_base<Derived,T,Selector>::reverse_iterator
- nary_node_base<Derived,T,Selector>::rbegin()
- {
- return this->_children.rbegin();
- }
-
- template <typename Derived, typename T, typename Selector>
- inline typename nary_node_base<Derived,T,Selector>::const_reverse_iterator
- nary_node_base<Derived,T,Selector>::crend() const
- {
- return this->_children.crend();
- }
-
- template <typename Derived, typename T, typename Selector>
- inline typename nary_node_base<Derived,T,Selector>::const_reverse_iterator
- nary_node_base<Derived,T,Selector>::rend() const
- {
- return this->_children.rend();
- }
-
- template <typename Derived, typename T, typename Selector>
- inline typename nary_node_base<Derived,T,Selector>::reverse_iterator
- nary_node_base<Derived,T,Selector>::rend()
- {
- return this->_children.rend();
- }
-
- template <typename Derived, typename T, typename Selector>
- inline typename nary_node_base<Derived,T,Selector>::size_type
- nary_node_base<Derived,T,Selector>::size() const
- {
- return this->_children.size();
- }
-
- template <typename Derived, typename T, typename Selector>
- inline bool nary_node_base<Derived,T,Selector>::empty() const
- {
- return this->_children.empty();
- }
-
- template <typename Derived, typename T, typename Selector>
- inline void nary_node_base<Derived,T,Selector>::clear()
- {
- this->_children.clear();
- this->on_post_clear();
- }
-
- template <typename Derived, typename T, typename Selector>
- inline typename nary_node_base<Derived,T,Selector>::iterator
- nary_node_base<Derived,T,Selector>::insert(Derived const& child)
- {
- Derived twin(child._data);
-
- twin._clone_descendants(child);
-
- typename ::boost::emplace_function_gen<Selector>::type emplacer;
-#if defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- ::std::pair<iterator,bool> p = emplacer(this->_children, twin._data);
-#else
- ::std::pair<iterator,bool> p = emplacer(
- this->_children
- , ::boost::move(twin._data)
- );
-#endif
-
- if (p.second)
- {
- this->_on_post_insert(p.first, Selector());
-#if defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- (*p.first)._clone_descendants(twin);
-#else
- (*p.first)._move_descendants(::boost::move(twin));
-#endif
- (*p.first).clone_metadata(child);
- (*p.first).on_post_inserted(
- p.first
- , ::boost::has_stable_iterators_selector<Selector>()
- );
- }
- else
- {
- BOOST_ASSERT_MSG(
- false
- , "This type does not yet handle associative selectors."
- );
- }
-
- return p.first;
- }
-
-#if 0//!defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- template <typename Derived, typename T, typename Selector>
- inline typename nary_node_base<Derived,T,Selector>::iterator
- nary_node_base<Derived,T,Selector>::insert(BOOST_RV_REF(Derived) child)
- {
- typename ::boost::emplace_function_gen<Selector>::type emplacer;
- ::std::pair<iterator,bool> p = emplacer(
- this->_children
- , ::boost::move(child._data)
- );
-
- if (p.second)
- {
- this->_on_post_insert(p.first, Selector());
-#if defined BOOST_NO_RVALUE_REFERENCES
- (*p.first)._move_descendants(child);
- (*p.first).move_metadata(child);
-#else
- (*p.first)._move_descendants(static_cast<Derived&&>(child));
- (*p.first).move_metadata(static_cast<Derived&&>(child));
-#endif
- (*p.first)._on_post_clone_or_move(
- ::boost::is_reversible_selector<Selector>()
- );
- (*p.first).on_post_inserted(
- p.first
- , ::boost::has_stable_iterators_selector<Selector>()
- );
- }
- else
- {
- BOOST_ASSERT_MSG(
- false
- , "This type does not yet handle associative selectors."
- );
- }
-
- return p.first;
- }
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-#if defined BOOST_CONTAINER_PERFECT_FORWARDING
- template <typename Derived, typename T, typename Selector>
- template <typename ...Args>
- inline typename nary_node_base<Derived,T,Selector>::iterator
- nary_node_base<Derived,T,Selector>::emplace(Args&& ...args)
- {
- typename ::boost::emplace_function_gen<Selector>::type emplacer;
- ::std::pair<iterator,bool> p = emplacer(
- this->_children
- , ::boost::forward<Args>(args)...
- );
-
- if (p.second)
- {
- this->_on_post_insert(p.first, Selector());
- (*p.first).on_post_inserted(
- p.first
- , ::boost::has_stable_iterators_selector<Selector>()
- );
- }
- else
- {
- BOOST_ASSERT_MSG(
- false
- , "This type does not yet handle associative selectors."
- );
- }
-
- return p.first;
- }
-#else // !defined BOOST_CONTAINER_PERFECT_FORWARDING
-#define BOOST_TREE_NODE_NARY_NODE_MACRO(z, n, _) \
- template <typename Derived, typename T, typename Selector> \
- BOOST_PP_EXPR_IF(n, template <) \
- BOOST_PP_ENUM_PARAMS_Z(z, n, typename P) \
- BOOST_PP_EXPR_IF(n, >) \
- inline typename nary_node_base<Derived,T,Selector>::iterator \
- nary_node_base<Derived,T,Selector>::emplace( \
- BOOST_PP_CAT(BOOST_PP_ENUM_, z)( \
- n \
- , BOOST_CONTAINER_PP_PARAM_LIST \
- , _ \
- ) \
- ) \
- { \
- typename ::boost::emplace_function_gen<Selector>::type emplacer; \
- ::std::pair<iterator,bool> p = emplacer( \
- this->_children \
- BOOST_PP_CAT(BOOST_PP_ENUM_TRAILING_, z)( \
- n \
- , BOOST_CONTAINER_PP_PARAM_FORWARD \
- , _ \
- ) \
- ); \
- if (p.second) \
- { \
- this->_on_post_insert(p.first, Selector()); \
- (*p.first).on_post_inserted( \
- p.first \
- , ::boost::has_stable_iterators_selector<Selector>() \
- ); \
- } \
- else \
- { \
- BOOST_ASSERT_MSG( \
- false \
- , "This type does not yet handle associative selectors." \
- ); \
- } \
- return p.first; \
- } \
-//!
- BOOST_PP_REPEAT(
- BOOST_CONTAINER_MAX_CONSTRUCTOR_PARAMETERS
- , BOOST_TREE_NODE_NARY_NODE_MACRO
- , _
- )
-#undef BOOST_TREE_NODE_NARY_NODE_MACRO
-#endif // BOOST_CONTAINER_PERFECT_FORWARDING
-
- template <typename Derived, typename T, typename Selector>
- inline typename ::boost::insert_range_result_gen<Selector,Derived>::type
- nary_node_base<Derived,T,Selector>::splice(iterator pos, Derived& node)
- {
- typename ::boost::insert_range_result_gen<
- Selector
- , Derived
- >::type result = this->_splice(
- pos
- , node
- , ::boost::begin(node._children)
- , ::boost::end(node._children)
- , typename ::boost::mpl::if_<
- ::boost::is_ptr_selector<Selector>
- , ::boost::mpl::false_
- , ::boost::is_random_access_selector<Selector>
- >::type()
- );
-
- node.on_post_clear();
- this->on_post_insert(
- ::boost::begin(result)
- , ::boost::end(result)
- , ::boost::has_stable_iterators_selector<Selector>()
- );
- return result;
- }
-
- template <typename Derived, typename T, typename Selector>
- inline typename ::boost::insert_range_result_gen<Selector,Derived>::type
- nary_node_base<Derived,T,Selector>::splice(
- iterator pos
- , Derived& node
- , iterator itr
- )
- {
- iterator itr_end = itr;
- return this->splice(
- pos
- , node
- , itr
- , ++itr_end
- );
- }
-
- template <typename Derived, typename T, typename Selector>
- inline typename ::boost::insert_range_result_gen<Selector,Derived>::type
- nary_node_base<Derived,T,Selector>::splice(
- iterator pos
- , Derived& node
- , iterator itr
- , iterator itr_end
- )
- {
- typename ::boost::insert_range_result_gen<
- Selector
- , Derived
- >::type result = this->_splice(
- pos
- , node
- , itr
- , itr_end
- , typename ::boost::mpl::if_<
- ::boost::is_ptr_selector<Selector>
- , ::boost::mpl::false_
- , ::boost::is_random_access_selector<Selector>
- >::type()
- );
-
- node.on_post_erase();
- this->on_post_insert(
- ::boost::begin(result)
- , ::boost::end(result)
- , ::boost::has_stable_iterators_selector<Selector>()
- );
- return result;
- }
-
- template <typename Derived, typename T, typename Selector>
- void
- nary_node_base<Derived,T,Selector>::_link_children_to_parent(
- pointer const& p
- , iterator itr
- , iterator itr_end
- )
- {
- for (; itr != itr_end; ++itr)
- {
- (*itr)._parent = p;
- }
- }
-
-#if defined BOOST_CONTAINER_PERFECT_FORWARDING
- template <typename Derived, typename T, typename Selector>
- template <typename ...Args>
- inline typename nary_node_base<Derived,T,Selector>::iterator
- nary_node_base<Derived,T,Selector>::_add_child(Args&& ...args)
- {
- typename ::boost::emplace_function_gen<Selector>::type emplacer;
- ::std::pair<iterator,bool> p = emplacer(
- this->_children
- , ::boost::forward<Args>(args)...
- );
-
- if (p.second)
- {
- (*p.first)._parent = this->get_derived();
- }
- else
- {
- BOOST_ASSERT_MSG(
- false
- , "This type does not yet handle associative selectors."
- );
- }
-
- return p.first;
- }
-#else // !defined BOOST_CONTAINER_PERFECT_FORWARDING
-#define BOOST_TREE_NODE_NARY_NODE_MACRO(z, n, _) \
- template <typename Derived, typename T, typename Selector> \
- BOOST_PP_EXPR_IF(n, template <) \
- BOOST_PP_ENUM_PARAMS_Z(z, n, typename P) \
- BOOST_PP_EXPR_IF(n, >) \
- inline typename nary_node_base<Derived,T,Selector>::iterator \
- nary_node_base<Derived,T,Selector>::_add_child( \
- BOOST_PP_CAT(BOOST_PP_ENUM_, z)( \
- n \
- , BOOST_CONTAINER_PP_PARAM_LIST \
- , _ \
- ) \
- ) \
- { \
- typename ::boost::emplace_function_gen<Selector>::type emplacer; \
- ::std::pair<iterator,bool> p = emplacer( \
- this->_children \
- BOOST_PP_CAT(BOOST_PP_ENUM_TRAILING_, z)( \
- n \
- , BOOST_CONTAINER_PP_PARAM_FORWARD \
- , _ \
- ) \
- ); \
- if (p.second) \
- { \
- (*p.first)._parent = this->get_derived(); \
- } \
- else \
- { \
- BOOST_ASSERT_MSG( \
- false \
- , "This type does not yet handle associative selectors." \
- ); \
- } \
- return p.first; \
- } \
-//!
- BOOST_PP_REPEAT(
- BOOST_CONTAINER_MAX_CONSTRUCTOR_PARAMETERS
- , BOOST_TREE_NODE_NARY_NODE_MACRO
- , _
- )
-#undef BOOST_TREE_NODE_NARY_NODE_MACRO
-#endif // BOOST_CONTAINER_PERFECT_FORWARDING
-
- template <typename Derived, typename T, typename Selector>
- inline void
- nary_node_base<Derived,T,Selector>::_clone_descendants(
- Derived const& copy
- )
- {
- this->_clone_descendants(
- copy
- , typename ::boost::mpl::if_<
- ::boost::is_ptr_selector<Selector>
- , ::boost::mpl::false_
- , ::boost::is_random_access_selector<Selector>
- >::type()
- );
- this->get_derived()->on_post_copy_or_move();
- }
-
- template <typename Derived, typename T, typename Selector>
- void
- nary_node_base<Derived,T,Selector>::_clone_descendants(
- Derived const& copy
- , ::boost::mpl::true_
- )
- {
- pointer p = this->get_derived();
- ::std::deque<size_type> indices;
- size_type current_index = ::boost::initialized_value;
-
- p->_children.resize(copy._children.size(), Derived(copy._data));
- p->_on_post_resize(Selector());
-
- for (
- depth_first_descendant_iterator<Derived const> itr(copy);
- itr;
- ++itr
- )
- {
- switch (::boost::tree_node::traversal_state(itr))
- {
- case ::boost::tree_node::pre_order_traversal:
- {
- p->_children[current_index]._parent = p;
- p = &p->_children[current_index];
- indices.push_back(current_index);
- p->_children.clear();
- p->_children.resize(
- (*itr)._children.size()
- , Derived((*itr)._data)
- );
- p->_on_post_resize(Selector());
- p->_data = (*itr)._data;
- p->clone_metadata(*itr);
- current_index = ::boost::initialized_value;
- break;
- }
-
- case ::boost::tree_node::post_order_traversal:
- {
- p->on_post_copy_or_move();
- p = p->get_parent_ptr();
- ++(current_index = indices.back());
- indices.pop_back();
- break;
- }
-
- default:
- {
- BOOST_ASSERT_MSG(
- false
- , "traversal_state must be pre- or post-order!"
- );
- }
- }
- }
-
- BOOST_ASSERT_MSG(p == this->get_derived(), "itr not at-the-end");
- }
-
- template <typename Derived, typename T, typename Selector>
- void
- nary_node_base<Derived,T,Selector>::_clone_descendants(
- Derived const& copy
- , ::boost::mpl::false_
- )
- {
- pointer p = this->get_derived();
-
- for (
- depth_first_descendant_iterator<Derived const> itr(copy);
- itr;
- ++itr
- )
- {
- switch (::boost::tree_node::traversal_state(itr))
- {
- case ::boost::tree_node::pre_order_traversal:
- {
- p = &*p->_add_child((*itr)._data);
- p->clone_metadata(*itr);
- break;
- }
-
- case ::boost::tree_node::post_order_traversal:
- {
- p->on_post_copy_or_move();
- p = p->get_parent_ptr();
- break;
- }
-
- default:
- {
- BOOST_ASSERT_MSG(
- false
- , "traversal_state must be pre- or post-order!"
- );
- }
- }
- }
-
- BOOST_ASSERT_MSG(p == this->get_derived(), "itr not at-the-end");
- }
-
-#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- template <typename Derived, typename T, typename Selector>
- inline void
- nary_node_base<Derived,T,Selector>::_move_descendants(
- BOOST_RV_REF(Derived) source
- )
- {
- this->_move_descendants(
- static_cast<Derived&>(source)
- , ::boost::is_ptr_selector<Selector>()
- );
- this->get_derived()->on_post_copy_or_move();
- }
-
- template <typename Derived, typename T, typename Selector>
- inline void
- nary_node_base<Derived,T,Selector>::_move_descendants(
- Derived& source
- , ::boost::mpl::true_
- )
- {
- this->_children.transfer(this->_children.begin(), source._children);
- self::_link_children_to_parent(
- this->get_derived()
- , this->_children.begin()
- , this->_children.end()
- );
- }
-
- template <typename Derived, typename T, typename Selector>
- inline void
- nary_node_base<Derived,T,Selector>::_move_descendants(
- Derived& source
- , ::boost::mpl::false_
- )
- {
- this->_move_descendants_non_ptr(
- source
- , ::boost::is_random_access_selector<Selector>()
- );
- source._children.clear();
- }
-
- template <typename Derived, typename T, typename Selector>
- void
- nary_node_base<Derived,T,Selector>::_move_descendants_non_ptr(
- Derived& source
- , ::boost::mpl::true_
- )
- {
- pointer p = this->get_derived();
- ::std::deque<size_type> indices;
- size_type current_index = ::boost::initialized_value;
-
- p->_children.resize(source._children.size(), Derived(this->_data));
- p->_on_post_resize(Selector());
-
- for (depth_first_descendant_iterator<Derived> itr(source); itr; ++itr)
- {
- switch (::boost::tree_node::traversal_state(itr))
- {
- case ::boost::tree_node::pre_order_traversal:
- {
- p->_children[current_index]._parent = p;
- p = &p->_children[current_index];
- indices.push_back(current_index);
- p->_children.clear();
- p->_children.resize(
- (*itr)._children.size()
- , Derived((*itr)._data)
- );
- p->_on_post_resize(Selector());
- p->_data = ::boost::move((*itr)._data);
- p->move_metadata(::boost::move(*itr));
- current_index = ::boost::initialized_value;
- break;
- }
-
- case ::boost::tree_node::post_order_traversal:
- {
- (*itr)._children.clear();
- p->on_post_copy_or_move();
- p = p->get_parent_ptr();
- ++(current_index = indices.back());
- indices.pop_back();
- break;
- }
-
- default:
- {
- BOOST_ASSERT_MSG(
- false
- , "traversal_state must be pre- or post-order!"
- );
- }
- }
- }
-
- BOOST_ASSERT_MSG(p == this->get_derived(), "itr not at-the-end");
- }
-
- template <typename Derived, typename T, typename Selector>
- void
- nary_node_base<Derived,T,Selector>::_move_descendants_non_ptr(
- Derived& source
- , ::boost::mpl::false_
- )
- {
- pointer p = this->get_derived();
-
- for (depth_first_descendant_iterator<Derived> itr(source); itr; ++itr)
- {
- switch (::boost::tree_node::traversal_state(itr))
- {
- case ::boost::tree_node::pre_order_traversal:
- {
- p = &*p->_add_child(::boost::move((*itr)._data));
- p->move_metadata(::boost::move(*itr));
- break;
- }
-
- case ::boost::tree_node::post_order_traversal:
- {
- p->on_post_copy_or_move();
- p = p->get_parent_ptr();
- break;
- }
-
- default:
- {
- BOOST_ASSERT_MSG(
- false
- , "traversal_state must be pre- or post-order!"
- );
- }
- }
- }
-
- BOOST_ASSERT_MSG(p == this->get_derived(), "itr not at-the-end");
- }
-
- template <typename Derived, typename T, typename Selector>
- template <typename A>
- inline void
- nary_node_base<Derived,T,Selector>::_on_post_insert(
- iterator to_child
- , ::boost::vector_selector< ::boost::mpl::true_,A>
- )
- {
- self::_link_children_to_parent(
- this->get_derived()
- , this->_children.begin()
- , this->_children.end()
- );
- }
-
- template <typename Derived, typename T, typename Selector>
- template <typename A>
- inline void
- nary_node_base<Derived,T,Selector>::_on_post_resize(
- ::boost::vector_selector< ::boost::mpl::true_,A>
- )
- {
- self::_link_children_to_parent(
- this->get_derived()
- , this->_children.begin()
- , this->_children.end()
- );
- }
-
- template <typename Derived, typename T, typename Selector>
- template <typename A>
- inline void
- nary_node_base<Derived,T,Selector>::_on_post_outsourced(
- ::boost::stable_vector_selector<A>
- )
- {
- }
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
- template <typename Derived, typename T, typename Selector>
- template <typename S>
- inline void
- nary_node_base<Derived,T,Selector>::_on_post_insert(
- iterator to_child
- , S
- )
- {
- (*to_child)._parent = this->get_derived();
- }
-
- template <typename Derived, typename T, typename Selector>
- template <typename S>
- inline void
- nary_node_base<Derived,T,Selector>::_on_post_resize(S)
- {
- }
-
- template <typename Derived, typename T, typename Selector>
- template <typename S>
- inline void nary_node_base<Derived,T,Selector>::_on_post_outsourced(S)
- {
- this->on_post_clear();
- }
-
- template <typename Derived, typename T, typename Selector>
- inline void
- nary_node_base<Derived,T,Selector>::_on_post_clone_or_move(
- ::boost::mpl::true_
- )
- {
- }
-
- template <typename Derived, typename T, typename Selector>
- void
- nary_node_base<Derived,T,Selector>::_on_post_clone_or_move(
- ::boost::mpl::false_
- )
- {
- for (
- post_order_iterator<Derived> itr(*this->get_derived());
- itr;
- ++itr
- )
- {
- (*itr)._children.reverse();
- }
- }
-
- template <typename Derived, typename T, typename Selector>
- typename ::boost::insert_range_result_gen<Selector,Derived>::type
- nary_node_base<Derived,T,Selector>::_splice(
- iterator pos
- , Derived& node
- , iterator itr
- , iterator itr_end
- , ::boost::mpl::true_
- )
- {
-#if defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- size_type const result_size = ::std::distance(itr, itr_end);
- iterator result_itr = this->_children.insert(pos, itr, itr_end);
-
- node._children.erase(itr, itr_end);
- self::_link_children_to_parent(
- this->get_derived()
- , this->_children.begin()
- , this->_children.end()
- );
- this->get_derived()->on_post_copy_or_move();
- return ::std::pair<iterator,iterator>(
- result_itr
- , result_itr + result_size
- );
-#else // !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-#if 1
- size_type const result_size = ::std::distance(itr, itr_end);
- iterator result_itr = this->_children.insert(
- pos
- , ::boost::move_iterator<iterator>(itr)
- , ::boost::move_iterator<iterator>(itr_end)
- );
-
- node._children.erase(itr, itr_end);
- self::_link_children_to_parent(
- this->get_derived()
- , this->_children.begin()
- , this->_children.end()
- );
- this->get_derived()->on_post_copy_or_move();
- return ::std::pair<iterator,iterator>(
- result_itr
- , result_itr + result_size
- );
-#else
- iterator result_itr = this->_children.insert(
- pos
- , ::std::distance(itr, itr_end)
- , Derived(this->_data)
- );
-
- pos = result_itr;
-
- for (iterator e_itr = itr; e_itr != itr_end; ++e_itr)
- {
- (*pos)._parent = this->get_derived();
- (*pos)._data = ::boost::move((*e_itr)._data);
- (*pos)._move_descendants_non_ptr(*e_itr, ::boost::mpl::true_());
- (*pos).move_metadata(::boost::move(*e_itr));
- (*pos).on_post_copy_or_move();
- ++pos;
- }
-
- node._children.erase(itr, itr_end);
- self::_link_children_to_parent(
- this->get_derived()
- , this->_children.begin()
- , this->_children.end()
- );
- this->get_derived()->on_post_copy_or_move();
- return ::std::pair<iterator,iterator>(result_itr, pos);
-#endif
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- }
-
- template <typename Derived, typename T, typename Selector>
- inline typename ::boost::insert_range_result_gen<Selector,Derived>::type
- nary_node_base<Derived,T,Selector>::_splice(
- iterator pos
- , Derived& node
- , iterator itr
- , iterator itr_end
- , ::boost::mpl::false_
- )
- {
- typename ::boost::splice_function_gen<Selector>::type splicer;
- typename ::boost::insert_range_result_gen<
- Selector
- , Derived
- >::type result = splicer(
- this->_children
- , pos
- , node._children
- , itr
- , itr_end
- );
-
- self::_link_children_to_parent(
- this->get_derived()
- , ::boost::begin(result)
- , ::boost::end(result)
- );
- return result;
- }
-
- template <typename Derived, typename T, typename Selector>
- inline void
- nary_node_base<Derived,T,Selector>::_on_post_modify_value(
- data_key const& key
- )
- {
- this->on_post_propagate_value(key);
- }
-
-#if defined BOOST_TREE_NODE_CAN_USE_FUSION
- template <typename Derived, typename T, typename Selector>
- template <typename FusionKey>
- inline void
- nary_node_base<Derived,T,Selector>::_on_post_modify_value(
- FusionKey const& key
- )
- {
- this->on_post_propagate_value(key);
- }
-#endif
-}} // namespace boost::tree_node
-
-namespace boost { namespace tree_node {
-
- template <typename Derived, typename T, typename Selector>
- inline typename nary_node_base<
- Derived
- , T
- , Selector
- >::traits::data_type const&
- get(
- nary_node_base<Derived,T,Selector> const& node
- , data_key const& key
- )
- {
- return node[key];
- }
-
- template <typename Derived, typename T, typename Selector>
- inline typename nary_node_base<Derived,T,Selector>::traits::data_type&
- get(nary_node_base<Derived,T,Selector>& node, data_key const& key)
- {
- return node[key];
- }
-
-#if !defined BOOST_NO_SFINAE
- template <typename Key, typename Derived, typename T, typename Selector>
- inline typename ::boost::enable_if<
- ::std::tr1::is_same<Key,data_key>
- , typename nary_node_base<
- Derived
- , T
- , Selector
- >::traits::data_type const&
- >::type
- get(nary_node_base<Derived,T,Selector> const& node)
- {
- return node[data_key()];
- }
-
- template <typename Key, typename Derived, typename T, typename Selector>
- inline typename ::boost::enable_if<
- ::std::tr1::is_same<Key,data_key>
- , typename nary_node_base<
- Derived
- , T
- , Selector
- >::traits::data_type&
- >::type
- get(nary_node_base<Derived,T,Selector>& node)
- {
- return node[data_key()];
- }
-#endif // BOOST_NO_SFINAE
-
- template <typename Derived, typename T, typename Selector, typename V>
- inline void
- put(
- nary_node_base<Derived,T,Selector>& node
- , data_key const& key
- , V const& value
- )
- {
- node[key] = value;
- node._on_post_modify_value(key);
- }
-
-#if defined BOOST_TREE_NODE_CAN_USE_FUSION
- template <
- typename Derived
- , typename T
- , typename Selector
- , typename FusionKey
- >
- inline typename ::boost::lazy_enable_if<
- typename ::boost::mpl::if_<
- typename ::boost::mpl::eval_if<
- typename ::boost::fusion::traits::is_sequence<T>::type
- , ::boost::fusion::traits::is_associative<T>
- , ::boost::mpl::false_
- >::type
- , result_of::has_key<
- nary_node_base<Derived,T,Selector>
- , FusionKey
- >
- , ::boost::mpl::false_
- >::type
- , ::boost::fusion::result_of::at_key<T const,FusionKey>
- >::type
- get(
- nary_node_base<Derived,T,Selector> const& node
- , FusionKey const& key
- )
- {
- return node[key];
- }
-
- template <
- typename Derived
- , typename T
- , typename Selector
- , typename FusionKey
- >
- inline typename ::boost::lazy_enable_if<
- typename ::boost::mpl::if_<
- typename ::boost::mpl::eval_if<
- typename ::boost::fusion::traits::is_sequence<T>::type
- , ::boost::fusion::traits::is_associative<T>
- , ::boost::mpl::false_
- >::type
- , result_of::has_key<
- nary_node_base<Derived,T,Selector>
- , FusionKey
- >
- , ::boost::mpl::false_
- >::type
- , ::boost::fusion::result_of::at_key<T,FusionKey>
- >::type
- get(nary_node_base<Derived,T,Selector>& node, FusionKey const& key)
- {
- return node[key];
- }
-
- template <
- typename FusionKey
- , typename Derived
- , typename T
- , typename Selector
- >
- inline typename ::boost::lazy_enable_if<
- typename ::boost::mpl::if_<
- typename ::boost::mpl::eval_if<
- typename ::boost::fusion::traits::is_sequence<T>::type
- , ::boost::fusion::traits::is_associative<T>
- , ::boost::mpl::false_
- >::type
- , result_of::has_key<
- nary_node_base<Derived,T,Selector>
- , FusionKey
- >
- , ::boost::mpl::false_
- >::type
- , ::boost::fusion::result_of::at_key<T const,FusionKey>
- >::type
- get(nary_node_base<Derived,T,Selector> const& node)
- {
- return node[FusionKey()];
- }
-
- template <
- typename FusionKey
- , typename Derived
- , typename T
- , typename Selector
- >
- inline typename ::boost::lazy_enable_if<
- typename ::boost::mpl::if_<
- typename ::boost::mpl::eval_if<
- typename ::boost::fusion::traits::is_sequence<T>::type
- , ::boost::fusion::traits::is_associative<T>
- , ::boost::mpl::false_
- >::type
- , result_of::has_key<
- nary_node_base<Derived,T,Selector>
- , FusionKey
- >
- , ::boost::mpl::false_
- >::type
- , ::boost::fusion::result_of::at_key<T,FusionKey>
- >::type
- get(nary_node_base<Derived,T,Selector>& node)
- {
- return node[FusionKey()];
- }
-
- template <
- typename Derived
- , typename T
- , typename Selector
- , typename FusionKey
- , typename V
- >
- inline void
- put(
- nary_node_base<Derived,T,Selector>& node
- , FusionKey const& key
- , V const& value
- , typename ::boost::enable_if<
- typename ::boost::mpl::if_<
- typename ::boost::mpl::eval_if<
- typename ::boost::fusion::traits::is_sequence<T>::type
- , ::boost::fusion::traits::is_associative<T>
- , ::boost::mpl::false_
- >::type
- , result_of::has_key<
- nary_node_base<Derived,T,Selector>
- , FusionKey
- >
- , ::boost::mpl::false_
- >::type
- , ::boost::mpl::true_
- >::type
- )
- {
- node[key] = value;
- node._on_post_modify_value(key);
- }
-#endif // BOOST_TREE_NODE_CAN_USE_FUSION
-}} // namespace boost::tree_node
-
-//[reference__nary_node_base_gen
-namespace boost { namespace tree_node {
-
- template <typename Selector = ::boost::ptr_dequeS>
- struct nary_node_base_gen
- {
- template <typename Derived, typename T>
- struct apply
- {
- typedef nary_node_base<Derived,T,Selector> type;
- };
- };
-
- typedef nary_node_base_gen<> nary_node_base_default_gen;
-}} // namespace boost::tree_node
-//]
-
-namespace boost { namespace tree_node {
-
- template <typename T, typename Selector>
- struct nary_node
- : public
- //[reference__nary_node__bases
- nary_node_base<nary_node<T,Selector>,T,Selector>
- //]
- {
- //[reference__nary_node__super_t
- typedef nary_node_base<nary_node,T,Selector>
- super_t;
- //]
-
- //[reference__nary_node__traits
- typedef typename super_t::traits
- traits;
- //]
-
- //[reference__nary_node__pointer
- typedef typename super_t::pointer
- pointer;
- //]
-
- //[reference__nary_node__const_pointer
- typedef typename super_t::const_pointer
- const_pointer;
- //]
-
- //[reference__nary_node__iterator
- typedef typename super_t::iterator
- iterator;
- //]
-
- //[reference__nary_node__const_iterator
- typedef typename super_t::const_iterator
- const_iterator;
- //]
-
- //[reference__nary_node__reverse_iterator
- typedef typename super_t::reverse_iterator
- reverse_iterator;
- //]
-
- //[reference__nary_node__const_reverse_iterator
- typedef typename super_t::const_reverse_iterator
- const_reverse_iterator;
- //]
-
- //[reference__nary_node__size_type
- typedef typename super_t::size_type
- size_type;
- //]
-
- BOOST_TREE_NODE_COPYABLE_AND_MOVABLE(nary_node, super_t)
-
-#if defined BOOST_CONTAINER_PERFECT_FORWARDING
- //[reference__nary_node__emplacement_ctor
- template <typename ...Args>
- explicit nary_node(Args&& ...args);
- //]
-
- //[reference__nary_node__emplacement_ctor_w_allocator
- template <typename ...Args>
- explicit nary_node(
- ::boost::container::allocator_arg_t
- , typename traits::allocator_reference allocator
- , Args&& ...args
- );
- //]
-#else // !defined BOOST_CONTAINER_PERFECT_FORWARDING
- BOOST_PP_REPEAT(
- BOOST_CONTAINER_MAX_CONSTRUCTOR_PARAMETERS
- , BOOST_TREE_NODE_EMPLACEMENT_CTOR_INLINE_DEF
- , (nary_node, super_t)
- )
-
- BOOST_PP_REPEAT(
- BOOST_CONTAINER_MAX_CONSTRUCTOR_PARAMETERS
- , BOOST_TREE_NODE_EMPLACEMENT_CTOR_W_ALLOC_INLINE_DEF
- , (nary_node, super_t)
- )
-#endif // BOOST_CONTAINER_PERFECT_FORWARDING
- };
-
-#if defined BOOST_CONTAINER_PERFECT_FORWARDING
- template <typename T, typename Selector>
- template <typename ...Args>
- inline nary_node<T,Selector>::nary_node(Args&& ...args)
- : super_t(::boost::forward<Args>(args)...)
- {
- }
-
- template <typename T, typename Selector>
- template <typename ...Args>
- inline nary_node<T,Selector>::nary_node(
- ::boost::container::allocator_arg_t
- , typename traits::allocator_reference allocator
- , Args&& ...args
- ) : super_t(
- ::boost::container::allocator_arg
- , allocator
- , ::boost::forward<Args>(args)...
- )
- {
- }
-#endif // BOOST_CONTAINER_PERFECT_FORWARDING
-}} // namespace boost::tree_node
-
-//[reference__nary_node_gen
-namespace boost { namespace tree_node {
-
- template <typename Selector = ::boost::ptr_dequeS>
- struct nary_node_gen
- {
- template <typename T>
- struct apply
- {
- typedef nary_node<T,Selector> type;
- };
- };
-
- typedef nary_node_gen<> nary_node_default_gen;
-}} // namespace boost::tree_node
-//]
-
-#include <boost/tree_node/_detail/config_end.hpp>
-
-#endif // BOOST_TREE_NODE_NARY_NODE_HPP_INCLUDED
-

Deleted: sandbox/tree_node/boost/tree_node/nary_node_fwd.hpp
==============================================================================
--- sandbox/tree_node/boost/tree_node/nary_node_fwd.hpp 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84956)
+++ /dev/null 00:00:00 1970 (deleted)
@@ -1,254 +0,0 @@
-// 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)
-
-#ifndef BOOST_TREE_NODE_NARY_NODE_FWD_HPP_INCLUDED
-#define BOOST_TREE_NODE_NARY_NODE_FWD_HPP_INCLUDED
-
-#include <boost/config.hpp>
-#include <boost/container_gen/selectors.hpp>
-#include <boost/tree_node/preprocessor.hpp>
-#include <boost/tree_node/key/data.hpp>
-
-#if !defined BOOST_NO_SFINAE
-#include <boost/utility/enable_if.hpp>
-#include <boost/tr1/type_traits.hpp>
-#endif
-
-#if defined BOOST_TREE_NODE_CAN_USE_FUSION
-#include <boost/mpl/bool.hpp>
-#include <boost/mpl/if.hpp>
-#include <boost/mpl/eval_if.hpp>
-#include <boost/fusion/sequence/intrinsic/has_key.hpp>
-#include <boost/fusion/support/is_sequence.hpp>
-#include <boost/fusion/support/category_of.hpp>
-#include <boost/tree_node/intrinsic/has_key.hpp>
-#endif
-
-namespace boost { namespace tree_node {
-
- template <typename Derived, typename T, typename Selector>
- class nary_node_base;
-
- template <typename T, typename Selector = ::boost::ptr_dequeS>
- struct nary_node;
-}} // namespace boost::tree_node
-
-//[reference__nary_node_base__at_data_key__const
-namespace boost { namespace tree_node {
-
- template <typename Derived, typename T, typename Selector>
- typename nary_node_base<
- Derived
- , T
- , Selector
- >::traits::data_type const&
- get(
- nary_node_base<Derived,T,Selector> const& node
- , data_key const& key
- );
-
-//<-
-#if defined BOOST_NO_SFINAE
-//->
- template <typename Key, typename Derived, typename T, typename Selector>
- typename ::boost::enable_if<
- ::std::tr1::is_same<Key,data_key>
- , typename nary_node_base<
- Derived
- , T
- , Selector
- >::traits::data_type const&
- >::type
- get(nary_node_base<Derived,T,Selector> const& node);
-//<-
-#endif // BOOST_NO_SFINAE
-//->
-}} // namespace boost::tree_node
-//]
-
-//[reference__nary_node_base__at_data_key
-namespace boost { namespace tree_node {
-
- template <typename Derived, typename T, typename Selector>
- typename nary_node_base<Derived,T,Selector>::traits::data_type&
- get(nary_node_base<Derived,T,Selector>& node, data_key const& key);
-
-//<-
-#if defined BOOST_NO_SFINAE
-//->
- template <typename Key, typename Derived, typename T, typename Selector>
- typename ::boost::enable_if<
- ::std::tr1::is_same<Key,data_key>
- , typename nary_node_base<
- Derived
- , T
- , Selector
- >::traits::data_type&
- >::type
- get(nary_node_base<Derived,T,Selector>& node);
-//<-
-#endif // BOOST_NO_SFINAE
-//->
-}} // namespace boost::tree_node
-//]
-
-#if defined BOOST_TREE_NODE_CAN_USE_FUSION
-//[reference__nary_node_base__at_key__const
-namespace boost { namespace tree_node {
-
- template <
- typename Derived
- , typename T
- , typename Selector
- , typename FusionKey
- >
- typename ::boost::lazy_enable_if<
- typename ::boost::mpl::if_<
- typename ::boost::mpl::eval_if<
- typename ::boost::fusion::traits::is_sequence<T>::type
- , ::boost::fusion::traits::is_associative<T>
- , ::boost::mpl::false_
- >::type
- , result_of::has_key<
- nary_node_base<Derived,T,Selector>
- , FusionKey
- >
- , ::boost::mpl::false_
- >::type
- , ::boost::fusion::result_of::at_key<T const,FusionKey>
- >::type
- get(
- nary_node_base<Derived,T,Selector> const& node
- , FusionKey const& key
- );
-
- template <
- typename FusionKey
- , typename Derived
- , typename T
- , typename Selector
- >
- typename ::boost::lazy_enable_if<
- typename ::boost::mpl::if_<
- typename ::boost::mpl::eval_if<
- typename ::boost::fusion::traits::is_sequence<T>::type
- , ::boost::fusion::traits::is_associative<T>
- , ::boost::mpl::false_
- >::type
- , result_of::has_key<
- nary_node_base<Derived,T,Selector>
- , FusionKey
- >
- , ::boost::mpl::false_
- >::type
- , ::boost::fusion::result_of::at_key<T const,FusionKey>
- >::type
- get(nary_node_base<Derived,T,Selector> const& node);
-}} // namespace boost::tree_node
-//]
-
-//[reference__nary_node_base__at_key
-namespace boost { namespace tree_node {
-
- template <
- typename Derived
- , typename T
- , typename Selector
- , typename FusionKey
- >
- typename ::boost::lazy_enable_if<
- typename ::boost::mpl::if_<
- typename ::boost::mpl::eval_if<
- typename ::boost::fusion::traits::is_sequence<T>::type
- , ::boost::fusion::traits::is_associative<T>
- , ::boost::mpl::false_
- >::type
- , result_of::has_key<
- nary_node_base<Derived,T,Selector>
- , FusionKey
- >
- , ::boost::mpl::false_
- >::type
- , ::boost::fusion::result_of::at_key<T,FusionKey>
- >::type
- get(nary_node_base<Derived,T,Selector>& node, FusionKey const& key);
-
- template <
- typename FusionKey
- , typename Derived
- , typename T
- , typename Selector
- >
- typename ::boost::lazy_enable_if<
- typename ::boost::mpl::if_<
- typename ::boost::mpl::eval_if<
- typename ::boost::fusion::traits::is_sequence<T>::type
- , ::boost::fusion::traits::is_associative<T>
- , ::boost::mpl::false_
- >::type
- , result_of::has_key<
- nary_node_base<Derived,T,Selector>
- , FusionKey
- >
- , ::boost::mpl::false_
- >::type
- , ::boost::fusion::result_of::at_key<T,FusionKey>
- >::type
- get(nary_node_base<Derived,T,Selector>& node);
-}} // namespace boost::tree_node
-//]
-#endif // BOOST_TREE_NODE_CAN_USE_FUSION
-
-//[reference__nary_node_base__put_data
-namespace boost { namespace tree_node {
-
- template <typename Derived, typename T, typename Selector, typename V>
- void
- put(
- nary_node_base<Derived,T,Selector>& node
- , data_key const& key
- , V const& value
- );
-}} // namespace boost::tree_node
-//]
-
-#if defined BOOST_TREE_NODE_CAN_USE_FUSION
-//[reference__nary_node_base__put
-namespace boost { namespace tree_node {
-
- template <
- typename Derived
- , typename T
- , typename Selector
- , typename FusionKey
- , typename V
- >
- void
- put(
- nary_node_base<Derived,T,Selector>& node
- , FusionKey const& key
- , V const& value
- , typename ::boost::enable_if<
- typename ::boost::mpl::if_<
- typename ::boost::mpl::eval_if<
- typename ::boost::fusion::traits::is_sequence<T>::type
- , ::boost::fusion::traits::is_associative<T>
- , ::boost::mpl::false_
- >::type
- , result_of::has_key<
- nary_node_base<Derived,T,Selector>
- , FusionKey
- >
- , ::boost::mpl::false_
- >::type
- , ::boost::mpl::true_
- >::type = ::boost::mpl::true_()
- );
-}} // namespace boost::tree_node
-//]
-#endif // BOOST_TREE_NODE_CAN_USE_FUSION
-
-#endif // BOOST_TREE_NODE_NARY_NODE_FWD_HPP_INCLUDED
-

Deleted: sandbox/tree_node/boost/tree_node/preprocessor.hpp
==============================================================================
--- sandbox/tree_node/boost/tree_node/preprocessor.hpp 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84956)
+++ /dev/null 00:00:00 1970 (deleted)
@@ -1,445 +0,0 @@
-// 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)
-
-#ifndef BOOST_TREE_NODE_PREPROCESSOR_HPP_INCLUDED
-#define BOOST_TREE_NODE_PREPROCESSOR_HPP_INCLUDED
-
-#include <boost/config.hpp>
-
-#if !defined BOOST_NO_SFINAE \
- && !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION \
- && !defined BOOST_TREE_NODE_CAN_USE_FUSION
-#define BOOST_TREE_NODE_CAN_USE_FUSION
-#endif
-
-#if defined BOOST_TREE_NODE_CAN_USE_FUSION \
- && defined BOOST_TYPEOF_NATIVE \
- && !defined BOOST_TREE_NODE_CAN_USE_FUSION_WITH_TYPEOF
-#define BOOST_TREE_NODE_CAN_USE_FUSION_WITH_TYPEOF
-#endif
-
-#include <boost/container/scoped_allocator_fwd.hpp>
-#include <boost/container/detail/workaround.hpp>
-
-#if !defined BOOST_CONTAINER_PERFECT_FORWARDING
-#include <boost/preprocessor/cat.hpp>
-#include <boost/preprocessor/repetition/enum.hpp>
-#include <boost/preprocessor/repetition/enum_params.hpp>
-#include <boost/preprocessor/repetition/enum_trailing.hpp>
-#include <boost/preprocessor/control/expr_if.hpp>
-#include <boost/preprocessor/control/expr_iif.hpp>
-#include <boost/preprocessor/comparison/equal.hpp>
-#include <boost/preprocessor/arithmetic/dec.hpp>
-#include <boost/preprocessor/tuple/elem.hpp>
-#include <boost/container/detail/preprocessor.hpp>
-
-//[reference__macro__emplacement_ctor_header
-#define BOOST_TREE_NODE_EMPLACEMENT_CTOR_HEADER(z, n, Type) \
- BOOST_PP_EXPR_IF(n, template <) \
- BOOST_PP_ENUM_PARAMS_Z(z, n, typename P) \
- BOOST_PP_EXPR_IF(n, >) \
- BOOST_PP_EXPR_IIF(BOOST_PP_EQUAL(n, 1), explicit) \
- Type( \
- BOOST_PP_CAT(BOOST_PP_ENUM_, z)( \
- n \
- , BOOST_CONTAINER_PP_PARAM_LIST \
- , _ \
- ) \
- ) \
-//]
-
-//[reference__macro__emplacement_ctor_fwd_decl
-#define BOOST_TREE_NODE_EMPLACEMENT_CTOR_FWD_DECL(z, n, Type) \
- BOOST_TREE_NODE_EMPLACEMENT_CTOR_HEADER(z, n, Type); \
-//]
-
-//[reference__macro__emplacement_ctor_base_fwd
-#define BOOST_TREE_NODE_EMPLACEMENT_CTOR_BASE_FWD(z, n, Base) \
- : Base( \
- BOOST_PP_CAT(BOOST_PP_ENUM_, z)( \
- n \
- , BOOST_CONTAINER_PP_PARAM_FORWARD \
- , _ \
- ) \
- ) \
-//]
-
-//[reference__macro__emplacement_ctor_inline_header
-#define BOOST_TREE_NODE_EMPLACEMENT_CTOR_INLINE_HEADER(z, n, Tuple) \
- BOOST_TREE_NODE_EMPLACEMENT_CTOR_HEADER( \
- z \
- , n \
- , BOOST_PP_TUPLE_ELEM(2, 0, Tuple) \
- ) \
- BOOST_TREE_NODE_EMPLACEMENT_CTOR_BASE_FWD( \
- z \
- , n \
- , BOOST_PP_TUPLE_ELEM(2, 1, Tuple) \
- ) \
-//]
-
-//[reference__macro__emplacement_ctor_inline_def
-#define BOOST_TREE_NODE_EMPLACEMENT_CTOR_INLINE_DEF(z, n, Tuple) \
- BOOST_TREE_NODE_EMPLACEMENT_CTOR_INLINE_HEADER(z, n, Tuple) \
- { \
- Base::on_post_emplacement_construct(); \
- } \
-//]
-
-//[reference__macro__emplacement_ctor_w_alloc_header
-#define BOOST_TREE_NODE_EMPLACEMENT_CTOR_W_ALLOC_HEADER(z, n, Type) \
- BOOST_PP_EXPR_IF(n, template <) \
- BOOST_PP_ENUM_PARAMS_Z(z, n, typename P) \
- BOOST_PP_EXPR_IF(n, >) \
- BOOST_PP_EXPR_IIF(BOOST_PP_EQUAL(n, 1), explicit) \
- Type( \
- ::boost::container::allocator_arg_t \
- , typename traits::allocator_reference allocator \
- BOOST_PP_CAT(BOOST_PP_ENUM_TRAILING_, z)( \
- n \
- , BOOST_CONTAINER_PP_PARAM_LIST \
- , _ \
- ) \
- ) \
-//]
-
-//[reference__macro__emplacement_ctor_w_alloc_fwd_decl
-#define BOOST_TREE_NODE_EMPLACEMENT_CTOR_W_ALLOC_FWD_DECL(z, n, Type) \
- BOOST_TREE_NODE_EMPLACEMENT_CTOR_W_ALLOC_HEADER(z, n, Type); \
-//]
-
-//[reference__macro__emplacement_ctor_w_alloc_base_fwd
-#define BOOST_TREE_NODE_EMPLACEMENT_CTOR_W_ALLOC_BASE_FWD(z, n, Base) \
- : Base( \
- ::boost::container::allocator_arg \
- , allocator \
- BOOST_PP_CAT(BOOST_PP_ENUM_TRAILING_, z)( \
- n \
- , BOOST_CONTAINER_PP_PARAM_FORWARD \
- , _ \
- ) \
- ) \
-//]
-
-//[reference__macro__emplacement_ctor_w_alloc_inline_header
-#define BOOST_TREE_NODE_EMPLACEMENT_CTOR_W_ALLOC_INLINE_HEADER(z, n, Tuple) \
- BOOST_TREE_NODE_EMPLACEMENT_CTOR_W_ALLOC_HEADER( \
- z \
- , n \
- , BOOST_PP_TUPLE_ELEM(2, 0, Tuple) \
- ) \
- BOOST_TREE_NODE_EMPLACEMENT_CTOR_W_ALLOC_BASE_FWD( \
- z \
- , n \
- , BOOST_PP_TUPLE_ELEM(2, 1, Tuple) \
- ) \
-//]
-
-//[reference__macro__emplacement_ctor_w_alloc_inline_def
-#define BOOST_TREE_NODE_EMPLACEMENT_CTOR_W_ALLOC_INLINE_DEF(z, n, Tuple) \
- BOOST_TREE_NODE_EMPLACEMENT_CTOR_W_ALLOC_INLINE_HEADER(z, n, Tuple) \
- { \
- Base::on_post_emplacement_construct(); \
- } \
-//]
-#endif // BOOST_CONTAINER_PERFECT_FORWARDING
-
-//[reference__macro__copy_constructible
-#define BOOST_TREE_NODE_COPY_CONSTRUCTIBLE(Derived, Base) \
- inline Derived(Derived const& copy) : Base(copy) \
- { \
- Base::clone_descendants(copy); \
- } \
- inline Derived( \
- Derived const& copy \
- , typename traits::allocator_reference a \
- ) : Base(copy, a) \
- { \
- Base::clone_descendants(copy); \
- } \
- inline Derived(Derived& copy) \
- : Base(const_cast<Derived const&>(copy)) \
- { \
- Base::clone_descendants(copy); \
- } \
- inline Derived( \
- Derived& copy \
- , typename traits::allocator_reference a \
- ) : Base(const_cast<Derived const&>(copy), a) \
- { \
- Base::clone_descendants(copy); \
- } \
-//]
-
-#if defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-#define BOOST_TREE_NODE_COPYABLE_AND_MOVABLE(Derived, Base) \
- BOOST_TREE_NODE_COPY_CONSTRUCTIBLE(Derived, Base) \
- inline Derived& operator=(Derived const& copy) \
- { \
- if (this != &copy) \
- { \
- Base::copy_assign(copy); \
- Base::on_post_assign(); \
- } \
- return *this; \
- } \
- inline Derived& operator=(Derived& copy) \
- { \
- if (this != &copy) \
- { \
- Base::copy_assign(const_cast<Derived const&>(copy)); \
- Base::on_post_assign(); \
- } \
- return *this; \
- } \
-//!
-#else // !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-#if defined BOOST_NO_RVALUE_REFERENCES
-#include <boost/move/move.hpp>
-#define BOOST_TREE_NODE_COPYABLE_AND_MOVABLE(Derived, Base) \
- BOOST_TREE_NODE_COPY_CONSTRUCTIBLE(Derived, Base) \
- inline Derived(::boost::rv<Derived>& source) : Base(source) \
- { \
- Base::move_descendants(source); \
- } \
- inline Derived( \
- ::boost::rv<Derived>& source \
- , typename traits::allocator_reference a \
- ) : Base(source, a) \
- { \
- Base::move_descendants(source); \
- } \
- inline operator ::boost::rv<Derived> const&() const \
- { \
- return *static_cast< ::boost::rv<Derived> const*>(this); \
- } \
- inline operator ::boost::rv<Derived>&() \
- { \
- return *static_cast< ::boost::rv<Derived>*>(this); \
- } \
- inline Derived& operator=(::boost::rv<Derived> const& ca_ref) \
- { \
- Derived const& copy = static_cast<Derived const&>(ca_ref); \
- if (this != &copy) \
- { \
- Base::copy_assign(copy); \
- Base::on_post_assign(); \
- } \
- return *this; \
- } \
- inline Derived& operator=(::boost::rv<Derived>& rv_ref) \
- { \
- if (this != &static_cast<Derived&>(rv_ref)) \
- { \
- Base::move_assign(rv_ref); \
- Base::on_post_assign(); \
- } \
- return *this; \
- } \
- inline Derived& operator=(Derived& copy) \
- { \
- if (this != &copy) \
- { \
- Base::copy_assign(const_cast<Derived const&>(copy)); \
- Base::on_post_assign(); \
- } \
- return *this; \
- } \
-//!
-#else // !defined BOOST_NO_RVALUE_REFERENCES
-//[reference__macro__copyable_and_movable
-#define BOOST_TREE_NODE_COPYABLE_AND_MOVABLE(Derived, Base) \
- BOOST_TREE_NODE_COPY_CONSTRUCTIBLE(Derived, Base) \
- inline Derived(Derived&& source) \
- : Base(static_cast<Derived&&>(source)) \
- { \
- Base::move_descendants(static_cast<Derived&&>(source)); \
- } \
- inline Derived( \
- Derived&& source \
- , typename traits::allocator_reference a \
- ) : Base(static_cast<Derived&&>(source), a) \
- { \
- Base::move_descendants(static_cast<Derived&&>(source)); \
- } \
- inline Derived& operator=(Derived const& copy) \
- { \
- if (this != &copy) \
- { \
- Base::copy_assign(copy); \
- Base::on_post_assign(); \
- } \
- return *this; \
- } \
- inline Derived& operator=(Derived&& source) \
- { \
- if (this != &static_cast<Derived&>(source)) \
- { \
- Base::move_assign(static_cast<Derived&&>(source)); \
- Base::on_post_assign(); \
- } \
- return *this; \
- } \
-//]
-#endif // BOOST_NO_RVALUE_REFERENCES
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-//[reference__macro__container_derived_impl
-#define BOOST_TREE_NODE_CONTAINER_DERIVED_IMPL(Derived, Base) \
- typedef typename Base::reference reference; \
- typedef typename Base::const_reference const_reference; \
- typedef typename Base::pointer pointer; \
- typedef typename Base::const_pointer const_pointer; \
- typedef typename Base::iterator iterator; \
- typedef typename Base::const_iterator const_iterator; \
- typedef typename Base::size_type size_type; \
- typedef typename Base::allocator_type allocator_type; \
- inline Derived() : Base() \
- { \
- } \
- inline explicit Derived(allocator_type const& a) : Base(a) \
- { \
- } \
- inline Derived(Derived const& copy) \
- : Base(static_cast<Base const&>(copy)) \
- { \
- } \
- inline Derived(Derived const& copy, allocator_type const& a) \
- : Base(static_cast<Base const&>(copy), a) \
- { \
- } \
- inline Derived(Derived& copy) \
- : Base( \
- static_cast<Base const&>(const_cast<Derived const&>(copy)) \
- ) \
- { \
- } \
- inline Derived(Derived& copy, allocator_type const& a) \
- : Base( \
- static_cast<Base const&>(const_cast<Derived const&>(copy)) \
- , a \
- ) \
- { \
- } \
-//]
-
-#if defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-#define BOOST_TREE_NODE_CONTAINER_DERIVED_BODY(Derived, Base) \
- BOOST_TREE_NODE_CONTAINER_DERIVED_IMPL(Derived, Base) \
- inline Derived& operator=(Derived const& copy) \
- { \
- if (this != &copy) \
- { \
- Base::operator=(const_cast<Base const&>(copy)); \
- } \
- return *this; \
- } \
- inline Derived& operator=(Derived& copy) \
- { \
- if (this != &copy) \
- { \
- Base::operator=(const_cast<Base const&>(copy)); \
- } \
- return *this; \
- } \
-//!
-#else // !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-#if defined BOOST_NO_RVALUE_REFERENCES
-#include <boost/move/move.hpp>
-#define BOOST_TREE_NODE_CONTAINER_DERIVED_BODY(Derived, Base) \
- BOOST_TREE_NODE_CONTAINER_DERIVED_IMPL(Derived, Base) \
- inline Derived(::boost::rv<Derived>& source) \
- : Base(::boost::move(static_cast<Base&>(source))) \
- { \
- } \
- inline Derived( \
- ::boost::rv<Derived>& source \
- , allocator_type const& a \
- ) : Base(::boost::move(static_cast<Base&>(source)), a) \
- { \
- } \
- inline operator ::boost::rv<Derived> const&() const \
- { \
- return *static_cast< ::boost::rv<Derived> const*>(this); \
- } \
- inline operator ::boost::rv<Derived>&() \
- { \
- return *static_cast< ::boost::rv<Derived>*>(this); \
- } \
- inline Derived& operator=(::boost::rv<Derived> const& ca_ref) \
- { \
- Base const& copy = static_cast<Base const&>( \
- static_cast<Derived const&>(ca_ref) \
- ); \
- if (this != &copy) \
- { \
- Base::operator=(copy); \
- } \
- return *this; \
- } \
- inline Derived& operator=(::boost::rv<Derived>& rv_ref) \
- { \
- if (this != &static_cast<Derived&>(rv_ref)) \
- { \
- Base::operator=(::boost::move(static_cast<Base&>(rv_ref))); \
- } \
- return *this; \
- } \
- inline Derived& operator=(Derived& copy) \
- { \
- if (this != &copy) \
- { \
- Base::operator=( \
- static_cast<Base const&>( \
- const_cast<Derived const&>(copy) \
- ) \
- ); \
- } \
- return *this; \
- } \
-//!
-#else // !defined BOOST_NO_RVALUE_REFERENCES
-//[reference__macro__container_derived_body
-#define BOOST_TREE_NODE_CONTAINER_DERIVED_BODY(Derived, Base) \
- BOOST_TREE_NODE_CONTAINER_DERIVED_IMPL(Derived, Base) \
- inline Derived(Derived&& source) \
- : Base(static_cast<Base&&>(source)) \
- { \
- } \
- inline Derived(Derived&& source, allocator_type const& a) \
- : Base(static_cast<Base&&>(source), a) \
- { \
- } \
- inline Derived& operator=(Derived const& copy) \
- { \
- if (this != &copy) \
- { \
- Base::operator=(static_cast<Base const&>(copy)); \
- } \
- return *this; \
- } \
- inline Derived& operator=(Derived&& source) \
- { \
- if (this != &static_cast<Derived&>(source)) \
- { \
- Base::operator=(static_cast<Derived&&>(source)); \
- } \
- return *this; \
- } \
-//]
-#endif // BOOST_NO_RVALUE_REFERENCES
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-//[reference__macro__associative_container_derived_body
-#define BOOST_TREE_NODE_ASSOCIATIVE_CONTAINER_DERIVED_BODY(Derived, Base) \
- typedef typename Base::key_type key_type; \
- typedef typename Base::value_type value_type; \
- typedef typename Base::key_compare key_compare; \
- typedef typename Base::value_compare value_compare; \
- BOOST_TREE_NODE_CONTAINER_DERIVED_BODY(Derived, Base) \
-//]
-
-#endif // BOOST_TREE_NODE_PREPROCESSOR_HPP_INCLUDED
-

Deleted: sandbox/tree_node/boost/tree_node/traversal_state.hpp
==============================================================================
--- sandbox/tree_node/boost/tree_node/traversal_state.hpp 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84956)
+++ /dev/null 00:00:00 1970 (deleted)
@@ -1,24 +0,0 @@
-// 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)
-
-#ifndef BOOST_TREE_NODE_TRAVERSAL_STATE_HPP
-#define BOOST_TREE_NODE_TRAVERSAL_STATE_HPP
-
-//[reference__traversal_state
-namespace boost { namespace tree_node {
-
- enum traversal_state
- {
- no_traversal
- , pre_order_traversal
- , post_order_traversal
- , breadth_first_traversal
- , in_order_traversal
- };
-}} // namespace boost::tree_node
-//]
-
-#endif // BOOST_TREE_NODE_TRAVERSAL_STATE_HPP
-

Deleted: sandbox/tree_node/boost/tree_node/with_accumulation.hpp
==============================================================================
--- sandbox/tree_node/boost/tree_node/with_accumulation.hpp 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84956)
+++ /dev/null 00:00:00 1970 (deleted)
@@ -1,2523 +0,0 @@
-// 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)
-
-#ifndef BOOST_TREE_NODE_WITH_ACCUMULATION_HPP_INCLUDED
-#define BOOST_TREE_NODE_WITH_ACCUMULATION_HPP_INCLUDED
-
-#include <boost/mpl/apply_wrap.hpp>
-#include <boost/noncopyable.hpp>
-#include <boost/accumulators/framework/accumulator_set.hpp>
-#include <boost/accumulators/framework/extractor.hpp>
-#include <boost/accumulators/framework/features.hpp>
-#include <boost/tree_node/preprocessor.hpp>
-#include <boost/tree_node/base.hpp>
-#include <boost/tree_node/with_accumulation_fwd.hpp>
-#include <boost/tree_node/key/accumulation.hpp>
-#include <boost/tree_node/intrinsic/has_key.hpp>
-#include <boost/tree_node/intrinsic/get_keys.hpp>
-#include <boost/tree_node/intrinsic/at_key.hpp>
-#include <boost/tree_node/iterator/breadth_first_descendant.hpp>
-#include <boost/tree_node/iterator/dereference.hpp>
-#include <boost/assert.hpp>
-
-#if !defined BOOST_CONTAINER_PERFECT_FORWARDING
-#include <boost/preprocessor/repetition/repeat.hpp>
-#endif
-
-#include <boost/tree_node/_detail/config_begin.hpp>
-
-#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-#include <boost/mpl/vector.hpp>
-#include <boost/move/move.hpp>
-#include <boost/type_traits/is_pod.hpp>
-
-namespace boost {
-
- template <
- typename BaseGenerator
- , typename T1
- , typename T2
- , typename AccumulationKey
- >
- struct is_POD<
- ::boost::tree_node::with_accumulation<
- BaseGenerator
- , T1
- , T2
- , AccumulationKey
- >
- > : ::boost::false_type
- {
- };
-
- template <
- typename BaseGenerator
- , typename T1
- , typename T2
- , typename AccumulationKey
- >
- struct is_pod<
- ::boost::tree_node::with_accumulation<
- BaseGenerator
- , T1
- , T2
- , AccumulationKey
- >
- > : ::boost::false_type
- {
- };
-} // namespace boost
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-namespace boost { namespace tree_node {
-
- template <
- typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- , typename Key
- , typename Tag
- , typename IncludesAllDescendants
- , typename IncludesRoot
- , typename Value
- >
- class with_accumulation_base
- : public
- //[reference__with_accumulation_base__bases
- ::boost::mpl::eval_if<
- ::std::tr1::is_void<T2>
- , ::boost::mpl::apply_wrap2<BaseGenerator,Derived,T1>
- , ::boost::mpl::apply_wrap3<BaseGenerator,Derived,T1,T2>
- >::type
- //]
-#if defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- , public accumulation_key<
- Key
- , Tag
- , IncludesAllDescendants
- , IncludesRoot
- , Value
- >
-#endif
- , private ::boost::noncopyable
- {
- friend struct tree_node_base<Derived>;
-
- typedef with_accumulation_base<
- Derived
- , BaseGenerator
- , T1
- , T2
- , Key
- , Tag
- , IncludesAllDescendants
- , IncludesRoot
- , Value
- >
- self;
-
- public:
- typedef typename ::boost::mpl::eval_if<
- ::std::tr1::is_void<T2>
- , ::boost::mpl::apply_wrap2<BaseGenerator,Derived,T1>
- , ::boost::mpl::apply_wrap3<BaseGenerator,Derived,T1,T2>
- >::type
- super_t;
- typedef typename super_t::traits
- traits;
- typedef typename super_t::pointer
- pointer;
- typedef typename super_t::const_pointer
- const_pointer;
- typedef typename super_t::iterator
- iterator;
- typedef typename super_t::const_iterator
- const_iterator;
- typedef typename super_t::reverse_iterator
- reverse_iterator;
- typedef typename super_t::const_reverse_iterator
- const_reverse_iterator;
- typedef typename super_t::size_type
- size_type;
-
- private:
- typedef typename ::boost::mpl::eval_if<
- ::std::tr1::is_void<Value>
- , result_of::value_at_key<self,Key>
- , ::boost::mpl::identity<Value>
- >::type
- AccumulationValue;
-
- AccumulationValue _accumulation;
-
- protected:
- //[reference__with_accumulation_base__derived_copy_ctor
- with_accumulation_base(Derived const& copy);
- //]
-
- //[reference__with_accumulation_base__derived_copy_ctor_w_allocator
- with_accumulation_base(
- Derived const& copy
- , typename traits::allocator_reference allocator
- );
- //]
-
-#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- with_accumulation_base(BOOST_RV_REF(Derived) source);
-
- with_accumulation_base(
- BOOST_RV_REF(Derived) source
- , typename traits::allocator_reference allocator
- );
-#endif
-
-#if defined BOOST_CONTAINER_PERFECT_FORWARDING
- //[reference__with_accumulation_base__emplacement_ctor
- template <typename ...Args>
- explicit with_accumulation_base(Args&& ...args);
- //]
-
- //[reference__with_accumulation_base__emplacement_ctor_w_allocator
- template <typename ...Args>
- explicit with_accumulation_base(
- ::boost::container::allocator_arg_t
- , typename traits::allocator_reference allocator
- , Args&& ...args
- );
- //]
-#else // !defined BOOST_CONTAINER_PERFECT_FORWARDING
-#define BOOST_TREE_NODE_WITH_ACCUMULATION_MACRO(z, n, Tuple) \
- BOOST_TREE_NODE_EMPLACEMENT_CTOR_INLINE_HEADER(z, n, Tuple) \
- , _accumulation() \
- { \
- } \
-//!
- BOOST_PP_REPEAT(
- BOOST_CONTAINER_MAX_CONSTRUCTOR_PARAMETERS
- , BOOST_TREE_NODE_WITH_ACCUMULATION_MACRO
- , (with_accumulation_base, super_t)
- )
-#undef BOOST_TREE_NODE_WITH_ACCUMULATION_MACRO
-
-#define BOOST_TREE_NODE_WITH_ACCUMULATION_MACRO(z, n, Tuple) \
- BOOST_TREE_NODE_EMPLACEMENT_CTOR_W_ALLOC_INLINE_HEADER(z, n, Tuple) \
- , _accumulation() \
- { \
- } \
-//!
- BOOST_PP_REPEAT(
- BOOST_CONTAINER_MAX_CONSTRUCTOR_PARAMETERS
- , BOOST_TREE_NODE_WITH_ACCUMULATION_MACRO
- , (with_accumulation_base, super_t)
- )
-#undef BOOST_TREE_NODE_WITH_ACCUMULATION_MACRO
-#endif // BOOST_CONTAINER_PERFECT_FORWARDING
-
- ~with_accumulation_base();
-
- void clone_metadata_impl(Derived const& copy);
-
-#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- void move_metadata_impl(BOOST_RV_REF(Derived) source);
-#endif
-
- void on_post_emplacement_construct();
-
- void on_post_assign();
-
- template <typename K>
- void on_post_modify_value_impl(K const& key);
-
- void on_post_modify_value_impl(Key const& key);
-
- template <typename K>
- void on_post_propagate_value_impl(K const& key);
-
- void on_post_propagate_value_impl(Key const& key);
-
- template <typename K>
- void on_post_propagate_value_once_impl(K const& key);
-
- void on_post_propagate_value_once_impl(Key const& key);
-
- template <typename BooleanIntegralConstant>
- void
- on_post_inserted_impl(
- iterator position
- , BooleanIntegralConstant invalidates_sibling_positions
- );
-
- template <typename BooleanIntegralConstant>
- void
- on_post_insert_impl(
- iterator itr
- , iterator itr_end
- , BooleanIntegralConstant invalidates_children_positions
- );
-
- void on_post_erase_impl();
-
- void on_post_clear_impl();
-
- void on_post_rotate_left_impl();
-
- void on_post_rotate_right_impl();
-
- public:
- //[reference__with_accumulation_base__key_value_operator
-//<-
-#if 0
-//->
- typename ::boost::mpl::eval_if<
- ::std::tr1::is_void<Value>
- , result_of::value_at_key<
- with_accumulation_base<
- Derived
- , BaseGenerator
- , T1
- , T2
- , Key
- , Tag
- , IncludesAllDescendants
- , IncludesRoot
- , Value
- >
- , Key
- >
- , ::boost::mpl::identity<Value>
- >::type const&
-//<-
-#endif
- AccumulationValue const&
-//->
- operator[](
- accumulation_key<
- Key
- , Tag
- , IncludesAllDescendants
- , IncludesRoot
- , Value
- > const&
- )
- const;
- //]
-
- private:
- void
- _set_accumulation(
- accumulation_key<
- Key
- , Tag
- , IncludesAllDescendants
- , IncludesRoot
- , Value
- > const&
- );
-
- void _update();
-
- static void
- _update(
- pointer p
- , accumulation_key<
- Key
- , Tag
- , IncludesAllDescendants
- , IncludesRoot
- , Value
- > const&
- );
- };
-
- template <
- typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- , typename Key
- , typename Tag
- , typename IncludesAllDescendants
- , typename IncludesRoot
- , typename Value
- >
- with_accumulation_base<
- Derived
- , BaseGenerator
- , T1
- , T2
- , Key
- , Tag
- , IncludesAllDescendants
- , IncludesRoot
- , Value
- >::with_accumulation_base(Derived const& copy)
- : super_t(copy)
- , _accumulation(static_cast<self const&>(copy)._accumulation)
- {
- }
-
- template <
- typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- , typename Key
- , typename Tag
- , typename IncludesAllDescendants
- , typename IncludesRoot
- , typename Value
- >
- with_accumulation_base<
- Derived
- , BaseGenerator
- , T1
- , T2
- , Key
- , Tag
- , IncludesAllDescendants
- , IncludesRoot
- , Value
- >::with_accumulation_base(
- Derived const& copy
- , typename traits::allocator_reference allocator
- ) : super_t(copy, allocator)
- , _accumulation(static_cast<self const&>(copy)._accumulation)
- {
- }
-
-#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- template <
- typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- , typename Key
- , typename Tag
- , typename IncludesAllDescendants
- , typename IncludesRoot
- , typename Value
- >
- with_accumulation_base<
- Derived
- , BaseGenerator
- , T1
- , T2
- , Key
- , Tag
- , IncludesAllDescendants
- , IncludesRoot
- , Value
- >::with_accumulation_base(
-#if defined BOOST_NO_RVALUE_REFERENCES
- ::boost::rv<Derived>& source
- ) : super_t(source)
-#else
- Derived&& source
- ) : super_t(static_cast<Derived&&>(source))
-#endif
- , _accumulation(static_cast<self&>(source)._accumulation)
- {
- }
-
- template <
- typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- , typename Key
- , typename Tag
- , typename IncludesAllDescendants
- , typename IncludesRoot
- , typename Value
- >
- with_accumulation_base<
- Derived
- , BaseGenerator
- , T1
- , T2
- , Key
- , Tag
- , IncludesAllDescendants
- , IncludesRoot
- , Value
- >::with_accumulation_base(
-#if defined BOOST_NO_RVALUE_REFERENCES
- ::boost::rv<Derived>& source
- , typename traits::allocator_reference allocator
- ) : super_t(source, allocator)
-#else
- Derived&& source
- , typename traits::allocator_reference allocator
- ) : super_t(static_cast<Derived&&>(source), allocator)
-#endif
- , _accumulation(static_cast<self&>(source)._accumulation)
- {
- }
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-#if defined BOOST_CONTAINER_PERFECT_FORWARDING
- template <
- typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- , typename Key
- , typename Tag
- , typename IncludesAllDescendants
- , typename IncludesRoot
- , typename Value
- >
- template <typename ...Args>
- with_accumulation_base<
- Derived
- , BaseGenerator
- , T1
- , T2
- , Key
- , Tag
- , IncludesAllDescendants
- , IncludesRoot
- , Value
- >::with_accumulation_base(Args&& ...args)
- : super_t(::boost::forward<Args>(args)...), _accumulation()
- {
- }
-
- template <
- typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- , typename Key
- , typename Tag
- , typename IncludesAllDescendants
- , typename IncludesRoot
- , typename Value
- >
- template <typename ...Args>
- with_accumulation_base<
- Derived
- , BaseGenerator
- , T1
- , T2
- , Key
- , Tag
- , IncludesAllDescendants
- , IncludesRoot
- , Value
- >::with_accumulation_base(
- ::boost::container::allocator_arg_t
- , typename traits::allocator_reference allocator
- , Args&& ...args
- ) : super_t(
- ::boost::container::allocator_arg
- , allocator
- , ::boost::forward<Args>(args)...
- )
- , _accumulation()
- {
- }
-#endif // BOOST_CONTAINER_PERFECT_FORWARDING
-
- template <
- typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- , typename Key
- , typename Tag
- , typename IncludesAllDescendants
- , typename IncludesRoot
- , typename Value
- >
- with_accumulation_base<
- Derived
- , BaseGenerator
- , T1
- , T2
- , Key
- , Tag
- , IncludesAllDescendants
- , IncludesRoot
- , Value
- >::~with_accumulation_base()
- {
- }
-
- template <
- typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- , typename Key
- , typename Tag
- , typename IncludesAllDescendants
- , typename IncludesRoot
- , typename Value
- >
- inline void
- with_accumulation_base<
- Derived
- , BaseGenerator
- , T1
- , T2
- , Key
- , Tag
- , IncludesAllDescendants
- , IncludesRoot
- , Value
- >::clone_metadata_impl(Derived const& copy)
- {
- super_t::clone_metadata_impl(copy);
- this->_accumulation = static_cast<self const&>(copy)._accumulation;
- }
-
-#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- template <
- typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- , typename Key
- , typename Tag
- , typename IncludesAllDescendants
- , typename IncludesRoot
- , typename Value
- >
- inline void
- with_accumulation_base<
- Derived
- , BaseGenerator
- , T1
- , T2
- , Key
- , Tag
- , IncludesAllDescendants
- , IncludesRoot
- , Value
- >::move_metadata_impl(BOOST_RV_REF(Derived) source)
- {
-#if defined BOOST_NO_RVALUE_REFERENCES
- super_t::move_metadata_impl(source);
-#else
- super_t::move_metadata_impl(static_cast<Derived&&>(source));
-#endif
- this->_accumulation = ::boost::move(
- static_cast<self&>(source)._accumulation
- );
- }
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
- template <
- typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- , typename Key
- , typename Tag
- , typename IncludesAllDescendants
- , typename IncludesRoot
- , typename Value
- >
- inline void
- with_accumulation_base<
- Derived
- , BaseGenerator
- , T1
- , T2
- , Key
- , Tag
- , IncludesAllDescendants
- , IncludesRoot
- , Value
- >::on_post_emplacement_construct()
- {
- super_t::on_post_emplacement_construct();
- self::_accumulation = IncludesRoot::value ? get<Key>(
- *this->get_derived()
- ) : ::boost::accumulators::extractor<Tag>()(
- ::boost::accumulators::accumulator_set<
- AccumulationValue
- , ::boost::accumulators::features<Tag>
- >()
- );
- }
-
- template <
- typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- , typename Key
- , typename Tag
- , typename IncludesAllDescendants
- , typename IncludesRoot
- , typename Value
- >
- inline void
- with_accumulation_base<
- Derived
- , BaseGenerator
- , T1
- , T2
- , Key
- , Tag
- , IncludesAllDescendants
- , IncludesRoot
- , Value
- >::on_post_assign()
- {
- super_t::on_post_assign();
-
- if (IncludesRoot::value)
- {
- this->_update();
- }
- else if (pointer p = this->get_parent_ptr())
- {
- static_cast<self*>(p)->_update();
- }
- }
-
- template <
- typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- , typename Key
- , typename Tag
- , typename IncludesAllDescendants
- , typename IncludesRoot
- , typename Value
- >
- template <typename K>
- inline void
- with_accumulation_base<
- Derived
- , BaseGenerator
- , T1
- , T2
- , Key
- , Tag
- , IncludesAllDescendants
- , IncludesRoot
- , Value
- >::on_post_modify_value_impl(K const& key)
- {
- super_t::on_post_modify_value_impl(key);
- }
-
- template <
- typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- , typename Key
- , typename Tag
- , typename IncludesAllDescendants
- , typename IncludesRoot
- , typename Value
- >
- inline void
- with_accumulation_base<
- Derived
- , BaseGenerator
- , T1
- , T2
- , Key
- , Tag
- , IncludesAllDescendants
- , IncludesRoot
- , Value
- >::on_post_modify_value_impl(Key const& key)
- {
- super_t::on_post_modify_value_impl(key);
-
- if (IncludesRoot::value)
- {
- this->_set_accumulation(
- accumulation_key<
- Key
- , Tag
- , IncludesAllDescendants
- , IncludesRoot
- , Value
- >()
- );
- this->on_post_modify_value(
- accumulation_key<
- Key
- , Tag
- , IncludesAllDescendants
- , IncludesRoot
- , Value
- >()
- );
- }
-
- if (pointer p = this->get_parent_ptr())
- {
- static_cast<self*>(p)->_set_accumulation(
- accumulation_key<
- Key
- , Tag
- , IncludesAllDescendants
- , IncludesRoot
- , Value
- >()
- );
- p->on_post_modify_value(
- accumulation_key<
- Key
- , Tag
- , IncludesAllDescendants
- , IncludesRoot
- , Value
- >()
- );
- }
- }
-
- template <
- typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- , typename Key
- , typename Tag
- , typename IncludesAllDescendants
- , typename IncludesRoot
- , typename Value
- >
- template <typename K>
- inline void
- with_accumulation_base<
- Derived
- , BaseGenerator
- , T1
- , T2
- , Key
- , Tag
- , IncludesAllDescendants
- , IncludesRoot
- , Value
- >::on_post_propagate_value_impl(K const& key)
- {
- super_t::on_post_propagate_value_impl(key);
- }
-
- template <
- typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- , typename Key
- , typename Tag
- , typename IncludesAllDescendants
- , typename IncludesRoot
- , typename Value
- >
- inline void
- with_accumulation_base<
- Derived
- , BaseGenerator
- , T1
- , T2
- , Key
- , Tag
- , IncludesAllDescendants
- , IncludesRoot
- , Value
- >::on_post_propagate_value_impl(Key const& key)
- {
- super_t::on_post_propagate_value_impl(key);
-
- if (IncludesRoot::value)
- {
- this->_update();
- }
- else if (pointer p = this->get_parent_ptr())
- {
- static_cast<self*>(p)->_update();
- }
- }
-
- template <
- typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- , typename Key
- , typename Tag
- , typename IncludesAllDescendants
- , typename IncludesRoot
- , typename Value
- >
- template <typename K>
- inline void
- with_accumulation_base<
- Derived
- , BaseGenerator
- , T1
- , T2
- , Key
- , Tag
- , IncludesAllDescendants
- , IncludesRoot
- , Value
- >::on_post_propagate_value_once_impl(K const& key)
- {
- super_t::on_post_propagate_value_once_impl(key);
- }
-
- template <
- typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- , typename Key
- , typename Tag
- , typename IncludesAllDescendants
- , typename IncludesRoot
- , typename Value
- >
- inline void
- with_accumulation_base<
- Derived
- , BaseGenerator
- , T1
- , T2
- , Key
- , Tag
- , IncludesAllDescendants
- , IncludesRoot
- , Value
- >::on_post_propagate_value_once_impl(Key const& key)
- {
- super_t::on_post_propagate_value_once_impl(key);
-
- if (IncludesRoot::value)
- {
- this->_set_accumulation(
- accumulation_key<
- Key
- , Tag
- , IncludesAllDescendants
- , IncludesRoot
- , Value
- >()
- );
- }
-
- self* p = this->get_parent_ptr();
-
- BOOST_ASSERT_MSG(
- p
- , "Do not call on_post_propagate_value_once() on root."
- );
- p->_set_accumulation(
- accumulation_key<
- Key
- , Tag
- , IncludesAllDescendants
- , IncludesRoot
- , Value
- >()
- );
-
- if ((p = p->get_parent_ptr()))
- {
- p->_set_accumulation(
- accumulation_key<
- Key
- , Tag
- , IncludesAllDescendants
- , IncludesRoot
- , Value
- >()
- );
- }
- }
-
- template <
- typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- , typename Key
- , typename Tag
- , typename IncludesAllDescendants
- , typename IncludesRoot
- , typename Value
- >
- template <typename BooleanIntegralConstant>
- inline void
- with_accumulation_base<
- Derived
- , BaseGenerator
- , T1
- , T2
- , Key
- , Tag
- , IncludesAllDescendants
- , IncludesRoot
- , Value
- >::on_post_inserted_impl(
- iterator position
- , BooleanIntegralConstant invalidates_sibling_positions
- )
- {
- super_t::on_post_inserted_impl(
- position
- , invalidates_sibling_positions
- );
- static_cast<self*>(this->get_parent_ptr())->_update();
- }
-
- template <
- typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- , typename Key
- , typename Tag
- , typename IncludesAllDescendants
- , typename IncludesRoot
- , typename Value
- >
- template <typename BooleanIntegralConstant>
- inline void
- with_accumulation_base<
- Derived
- , BaseGenerator
- , T1
- , T2
- , Key
- , Tag
- , IncludesAllDescendants
- , IncludesRoot
- , Value
- >::on_post_insert_impl(
- iterator itr
- , iterator itr_end
- , BooleanIntegralConstant invalidates_children_positions
- )
- {
- super_t::on_post_insert_impl(
- itr
- , itr_end
- , invalidates_children_positions
- );
- this->_update();
- }
-
- template <
- typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- , typename Key
- , typename Tag
- , typename IncludesAllDescendants
- , typename IncludesRoot
- , typename Value
- >
- inline void
- with_accumulation_base<
- Derived
- , BaseGenerator
- , T1
- , T2
- , Key
- , Tag
- , IncludesAllDescendants
- , IncludesRoot
- , Value
- >::on_post_erase_impl()
- {
- super_t::on_post_erase_impl();
- this->_update();
- }
-
- template <
- typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- , typename Key
- , typename Tag
- , typename IncludesAllDescendants
- , typename IncludesRoot
- , typename Value
- >
- inline void
- with_accumulation_base<
- Derived
- , BaseGenerator
- , T1
- , T2
- , Key
- , Tag
- , IncludesAllDescendants
- , IncludesRoot
- , Value
- >::on_post_clear_impl()
- {
- super_t::on_post_clear_impl();
- this->_update();
- }
-
- template <
- typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- , typename Key
- , typename Tag
- , typename IncludesAllDescendants
- , typename IncludesRoot
- , typename Value
- >
- inline void
- with_accumulation_base<
- Derived
- , BaseGenerator
- , T1
- , T2
- , Key
- , Tag
- , IncludesAllDescendants
- , IncludesRoot
- , Value
- >::on_post_rotate_left_impl()
- {
- super_t::on_post_rotate_left_impl();
- this->_set_accumulation(
- accumulation_key<
- Key
- , Tag
- , IncludesAllDescendants
- , IncludesRoot
- , Value
- >()
- );
- static_cast<self*>(this->get_parent_ptr())->_set_accumulation(
- accumulation_key<
- Key
- , Tag
- , IncludesAllDescendants
- , IncludesRoot
- , Value
- >()
- );
- this->on_post_propagate_value_once(
- accumulation_key<
- Key
- , Tag
- , IncludesAllDescendants
- , IncludesRoot
- , Value
- >()
- );
- }
-
- template <
- typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- , typename Key
- , typename Tag
- , typename IncludesAllDescendants
- , typename IncludesRoot
- , typename Value
- >
- inline void
- with_accumulation_base<
- Derived
- , BaseGenerator
- , T1
- , T2
- , Key
- , Tag
- , IncludesAllDescendants
- , IncludesRoot
- , Value
- >::on_post_rotate_right_impl()
- {
- super_t::on_post_rotate_right_impl();
- this->_set_accumulation(
- accumulation_key<
- Key
- , Tag
- , IncludesAllDescendants
- , IncludesRoot
- , Value
- >()
- );
- static_cast<self*>(this->get_parent_ptr())->_set_accumulation(
- accumulation_key<
- Key
- , Tag
- , IncludesAllDescendants
- , IncludesRoot
- , Value
- >()
- );
- this->on_post_propagate_value_once(
- accumulation_key<
- Key
- , Tag
- , IncludesAllDescendants
- , IncludesRoot
- , Value
- >()
- );
- }
-
- template <
- typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- , typename Key
- , typename Tag
- , typename IncludesAllDescendants
- , typename IncludesRoot
- , typename Value
- >
- inline typename with_accumulation_base<
- Derived
- , BaseGenerator
- , T1
- , T2
- , Key
- , Tag
- , IncludesAllDescendants
- , IncludesRoot
- , Value
- >::AccumulationValue const&
- with_accumulation_base<
- Derived
- , BaseGenerator
- , T1
- , T2
- , Key
- , Tag
- , IncludesAllDescendants
- , IncludesRoot
- , Value
- >::operator[](
- accumulation_key<
- Key
- , Tag
- , IncludesAllDescendants
- , IncludesRoot
- , Value
- > const&
- ) const
- {
- return self::_accumulation;
- }
-
- template <
- typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- , typename Key
- , typename Tag
- , typename IncludesAllDescendants
- , typename IncludesRoot
- , typename Value
- >
- void
- with_accumulation_base<
- Derived
- , BaseGenerator
- , T1
- , T2
- , Key
- , Tag
- , IncludesAllDescendants
- , IncludesRoot
- , Value
- >::_set_accumulation(
- accumulation_key<
- Key
- , Tag
- , IncludesAllDescendants
- , IncludesRoot
- , Value
- > const&
- )
- {
- ::boost::accumulators::accumulator_set<
- AccumulationValue
- , ::boost::accumulators::features<Tag>
- > acc;
-
- if (IncludesRoot::value)
- {
- acc(get<Key>(*this->get_derived()));
- }
-
- if (IncludesAllDescendants::value)
- {
- for (
- ::boost::tree_node::breadth_first_descendant_iterator<
- Derived const
- > c_itr(*this->get_derived());
- c_itr;
- ++c_itr
- )
- {
- acc(get<Key>(::boost::tree_node::dereference_iterator(c_itr)));
- }
- }
- else
- {
- const_iterator c_end = this->end();
-
- for (const_iterator c_itr = this->begin(); c_itr != c_end; ++c_itr)
- {
- acc(get<Key>(::boost::tree_node::dereference_iterator(c_itr)));
- }
- }
-
- self::_accumulation = ::boost::accumulators::extractor<
- Tag
- >()(acc);
- }
-
- template <
- typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- , typename Key
- , typename Tag
- , typename IncludesAllDescendants
- , typename IncludesRoot
- , typename Value
- >
- inline void
- with_accumulation_base<
- Derived
- , BaseGenerator
- , T1
- , T2
- , Key
- , Tag
- , IncludesAllDescendants
- , IncludesRoot
- , Value
- >::_update()
- {
- self::_update(
- this->get_derived()
- , accumulation_key<
- Key
- , Tag
- , IncludesAllDescendants
- , IncludesRoot
- , Value
- >()
- );
- this->on_post_propagate_value(
- accumulation_key<
- Key
- , Tag
- , IncludesAllDescendants
- , IncludesRoot
- , Value
- >()
- );
- }
-
- template <
- typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- , typename Key
- , typename Tag
- , typename IncludesAllDescendants
- , typename IncludesRoot
- , typename Value
- >
- void
- with_accumulation_base<
- Derived
- , BaseGenerator
- , T1
- , T2
- , Key
- , Tag
- , IncludesAllDescendants
- , IncludesRoot
- , Value
- >::_update(
- pointer p
- , accumulation_key<
- Key
- , Tag
- , IncludesAllDescendants
- , IncludesRoot
- , Value
- > const& key
- )
- {
- do
- {
- static_cast<self*>(p)->_set_accumulation(key);
- }
- while ((p = p->get_parent_ptr()));
- }
-}} // namespace boost::tree_node
-
-namespace boost { namespace tree_node {
-
- template <
- typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- , typename Key
- , typename Tag
- , typename IncludesAllDescendants
- , typename IncludesRoot
- , typename Value
- , typename AccumulationKey
- >
- inline typename ::boost::enable_if<
- ::std::tr1::is_same<
- accumulation_key<Key,Tag,IncludesAllDescendants,IncludesRoot,Value>
- , AccumulationKey
- >
- , typename ::boost::mpl::eval_if<
- ::std::tr1::is_void<Value>
- , result_of::value_at_key<
- with_accumulation_base<
- Derived
- , BaseGenerator
- , T1
- , T2
- , Key
- , Tag
- , IncludesAllDescendants
- , IncludesRoot
- , Value
- >
- , Key
- >
- , ::boost::mpl::identity<Value>
- >::type const&
- >::type
- get(
- with_accumulation_base<
- Derived
- , BaseGenerator
- , T1
- , T2
- , Key
- , Tag
- , IncludesAllDescendants
- , IncludesRoot
- , Value
- > const& node
- , AccumulationKey const& key
- )
- {
- return node[key];
- }
-
- template <
- typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- , typename Key
- , typename Tag
- , typename IncludesAllDescendants
- , typename IncludesRoot
- , typename Value
- , typename AccumulationKey
- >
- inline typename ::boost::lazy_disable_if<
- typename ::boost::mpl::eval_if<
- ::std::tr1::is_base_of<accumulation_key_base,AccumulationKey>
- , ::std::tr1::is_same<
- accumulation_key<Key,Tag,IncludesAllDescendants,IncludesRoot,Value>
- , AccumulationKey
- >
- , ::boost::mpl::true_
- >::type
- , result_of::value_at_key<
- with_accumulation_base<
- Derived
- , BaseGenerator
- , T1
- , T2
- , Key
- , Tag
- , IncludesAllDescendants
- , IncludesRoot
- , Value
- >
- , AccumulationKey
- >
- >::type
- get(
- with_accumulation_base<
- Derived
- , BaseGenerator
- , T1
- , T2
- , Key
- , Tag
- , IncludesAllDescendants
- , IncludesRoot
- , Value
- > const& node
- , AccumulationKey const& key
- )
- {
- return get(
- static_cast<
- typename with_accumulation_base<
- Derived
- , BaseGenerator
- , T1
- , T2
- , Key
- , Tag
- , IncludesAllDescendants
- , IncludesRoot
- , Value
- >::super_t const&
- >(node)
- , key
- );
- }
-
- template <
- typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- , typename Key
- , typename Tag
- , typename IncludesAllDescendants
- , typename IncludesRoot
- , typename Value
- , typename ExplicitKey
- >
- inline typename ::boost::lazy_enable_if<
- typename ::boost::mpl::eval_if<
- ::std::tr1::is_base_of<accumulation_key_base,ExplicitKey>
- , ::boost::mpl::false_
- , ::boost::mpl::eval_if<
- ::std::tr1::is_same<ExplicitKey,Key>
- , ::boost::mpl::false_
- , result_of::has_key<
- with_accumulation_base<
- Derived
- , BaseGenerator
- , T1
- , T2
- , Key
- , Tag
- , IncludesAllDescendants
- , IncludesRoot
- , Value
- >
- , ExplicitKey
- >
- >
- >::type
- , result_of::value_at_key<
- with_accumulation_base<
- Derived
- , BaseGenerator
- , T1
- , T2
- , Key
- , Tag
- , IncludesAllDescendants
- , IncludesRoot
- , Value
- > const
- , ExplicitKey
- >
- >::type
- get(
- with_accumulation_base<
- Derived
- , BaseGenerator
- , T1
- , T2
- , Key
- , Tag
- , IncludesAllDescendants
- , IncludesRoot
- , Value
- > const& node
- , ExplicitKey const& key
- )
- {
- return get(
- static_cast<
- typename with_accumulation_base<
- Derived
- , BaseGenerator
- , T1
- , T2
- , Key
- , Tag
- , IncludesAllDescendants
- , IncludesRoot
- , Value
- >::super_t const&
- >(node)
- , key
- );
- }
-
- template <
- typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- , typename Key
- , typename Tag
- , typename IncludesAllDescendants
- , typename IncludesRoot
- , typename Value
- , typename ExplicitKey
- >
- inline typename ::boost::lazy_enable_if<
- typename ::boost::mpl::eval_if<
- ::std::tr1::is_base_of<accumulation_key_base,ExplicitKey>
- , ::boost::mpl::false_
- , ::boost::mpl::eval_if<
- ::std::tr1::is_same<ExplicitKey,Key>
- , ::boost::mpl::false_
- , result_of::has_key<
- with_accumulation_base<
- Derived
- , BaseGenerator
- , T1
- , T2
- , Key
- , Tag
- , IncludesAllDescendants
- , IncludesRoot
- , Value
- >
- , ExplicitKey
- >
- >
- >::type
- , result_of::value_at_key<
- with_accumulation_base<
- Derived
- , BaseGenerator
- , T1
- , T2
- , Key
- , Tag
- , IncludesAllDescendants
- , IncludesRoot
- , Value
- >
- , ExplicitKey
- >
- >::type
- get(
- with_accumulation_base<
- Derived
- , BaseGenerator
- , T1
- , T2
- , Key
- , Tag
- , IncludesAllDescendants
- , IncludesRoot
- , Value
- >& node
- , ExplicitKey const& key
- )
- {
- return get(
- static_cast<
- typename with_accumulation_base<
- Derived
- , BaseGenerator
- , T1
- , T2
- , Key
- , Tag
- , IncludesAllDescendants
- , IncludesRoot
- , Value
- >::super_t&
- >(node)
- , key
- );
- }
-
- template <
- typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- , typename Key
- , typename Tag
- , typename IncludesAllDescendants
- , typename IncludesRoot
- , typename Value
- , typename ExplicitKey
- >
- inline typename ::boost::lazy_enable_if<
- typename ::boost::mpl::eval_if<
- ::std::tr1::is_base_of<accumulation_key_base,ExplicitKey>
- , ::boost::mpl::false_
- , ::std::tr1::is_same<ExplicitKey,Key>
- >::type
- , result_of::value_at_key<
- with_accumulation_base<
- Derived
- , BaseGenerator
- , T1
- , T2
- , Key
- , Tag
- , IncludesAllDescendants
- , IncludesRoot
- , Value
- > const
- , ExplicitKey
- >
- >::type
- get(
- with_accumulation_base<
- Derived
- , BaseGenerator
- , T1
- , T2
- , Key
- , Tag
- , IncludesAllDescendants
- , IncludesRoot
- , Value
- > const& node
- , ExplicitKey const& key
- )
- {
- return get(
- static_cast<
- typename with_accumulation_base<
- Derived
- , BaseGenerator
- , T1
- , T2
- , Key
- , Tag
- , IncludesAllDescendants
- , IncludesRoot
- , Value
- >::super_t const&
- >(node)
- , key
- );
- }
-
- template <
- typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- , typename Key
- , typename Tag
- , typename IncludesAllDescendants
- , typename IncludesRoot
- , typename Value
- , typename ExplicitKey
- >
- inline typename ::boost::lazy_enable_if<
- typename ::boost::mpl::eval_if<
- ::std::tr1::is_base_of<accumulation_key_base,ExplicitKey>
- , ::boost::mpl::false_
- , ::std::tr1::is_same<ExplicitKey,Key>
- >::type
- , result_of::value_at_key<
- with_accumulation_base<
- Derived
- , BaseGenerator
- , T1
- , T2
- , Key
- , Tag
- , IncludesAllDescendants
- , IncludesRoot
- , Value
- >
- , ExplicitKey
- >
- >::type
- get(
- with_accumulation_base<
- Derived
- , BaseGenerator
- , T1
- , T2
- , Key
- , Tag
- , IncludesAllDescendants
- , IncludesRoot
- , Value
- >& node
- , ExplicitKey const& key
- )
- {
- return get(
- static_cast<
- typename with_accumulation_base<
- Derived
- , BaseGenerator
- , T1
- , T2
- , Key
- , Tag
- , IncludesAllDescendants
- , IncludesRoot
- , Value
- >::super_t&
- >(node)
- , key
- );
- }
-
- template <
- typename AccumulationKey
- , typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- , typename Key
- , typename Tag
- , typename IncludesAllDescendants
- , typename IncludesRoot
- , typename Value
- >
- inline typename ::boost::enable_if<
- ::std::tr1::is_same<
- accumulation_key<Key,Tag,IncludesAllDescendants,IncludesRoot,Value>
- , AccumulationKey
- >
- , typename ::boost::mpl::eval_if<
- ::std::tr1::is_void<Value>
- , result_of::value_at_key<
- with_accumulation_base<
- Derived
- , BaseGenerator
- , T1
- , T2
- , Key
- , Tag
- , IncludesAllDescendants
- , IncludesRoot
- , Value
- >
- , Key
- >
- , ::boost::mpl::identity<Value>
- >::type const&
- >::type
- get(
- with_accumulation_base<
- Derived
- , BaseGenerator
- , T1
- , T2
- , Key
- , Tag
- , IncludesAllDescendants
- , IncludesRoot
- , Value
- > const& node
- )
- {
- return node[AccumulationKey()];
- }
-
- template <
- typename AccumulationKey
- , typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- , typename Key
- , typename Tag
- , typename IncludesAllDescendants
- , typename IncludesRoot
- , typename Value
- >
- inline typename ::boost::lazy_disable_if<
- typename ::boost::mpl::eval_if<
- ::std::tr1::is_base_of<accumulation_key_base,AccumulationKey>
- , ::std::tr1::is_same<
- accumulation_key<Key,Tag,IncludesAllDescendants,IncludesRoot,Value>
- , AccumulationKey
- >
- , ::boost::mpl::true_
- >::type
- , result_of::value_at_key<
- with_accumulation_base<
- Derived
- , BaseGenerator
- , T1
- , T2
- , Key
- , Tag
- , IncludesAllDescendants
- , IncludesRoot
- , Value
- >
- , AccumulationKey
- >
- >::type
- get(
- with_accumulation_base<
- Derived
- , BaseGenerator
- , T1
- , T2
- , Key
- , Tag
- , IncludesAllDescendants
- , IncludesRoot
- , Value
- > const& node
- )
- {
- return get<AccumulationKey>(
- static_cast<
- typename with_accumulation_base<
- Derived
- , BaseGenerator
- , T1
- , T2
- , Key
- , Tag
- , IncludesAllDescendants
- , IncludesRoot
- , Value
- >::super_t const&
- >(node)
- );
- }
-
- template <
- typename ExplicitKey
- , typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- , typename Key
- , typename Tag
- , typename IncludesAllDescendants
- , typename IncludesRoot
- , typename Value
- >
- inline typename ::boost::lazy_enable_if<
- typename ::boost::mpl::eval_if<
- ::std::tr1::is_base_of<accumulation_key_base,ExplicitKey>
- , ::boost::mpl::false_
- , ::boost::mpl::eval_if<
- ::std::tr1::is_same<ExplicitKey,Key>
- , ::boost::mpl::false_
- , result_of::has_key<
- with_accumulation_base<
- Derived
- , BaseGenerator
- , T1
- , T2
- , Key
- , Tag
- , IncludesAllDescendants
- , IncludesRoot
- , Value
- >
- , ExplicitKey
- >
- >
- >::type
- , result_of::value_at_key<
- with_accumulation_base<
- Derived
- , BaseGenerator
- , T1
- , T2
- , Key
- , Tag
- , IncludesAllDescendants
- , IncludesRoot
- , Value
- > const
- , ExplicitKey
- >
- >::type
- get(
- with_accumulation_base<
- Derived
- , BaseGenerator
- , T1
- , T2
- , Key
- , Tag
- , IncludesAllDescendants
- , IncludesRoot
- , Value
- > const& node
- )
- {
- return get<ExplicitKey>(
- static_cast<
- typename with_accumulation_base<
- Derived
- , BaseGenerator
- , T1
- , T2
- , Key
- , Tag
- , IncludesAllDescendants
- , IncludesRoot
- , Value
- >::super_t const&
- >(node)
- );
- }
-
- template <
- typename ExplicitKey
- , typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- , typename Key
- , typename Tag
- , typename IncludesAllDescendants
- , typename IncludesRoot
- , typename Value
- >
- inline typename ::boost::lazy_enable_if<
- typename ::boost::mpl::eval_if<
- ::std::tr1::is_base_of<accumulation_key_base,ExplicitKey>
- , ::boost::mpl::false_
- , ::boost::mpl::eval_if<
- ::std::tr1::is_same<ExplicitKey,Key>
- , ::boost::mpl::false_
- , result_of::has_key<
- with_accumulation_base<
- Derived
- , BaseGenerator
- , T1
- , T2
- , Key
- , Tag
- , IncludesAllDescendants
- , IncludesRoot
- , Value
- >
- , ExplicitKey
- >
- >
- >::type
- , result_of::value_at_key<
- with_accumulation_base<
- Derived
- , BaseGenerator
- , T1
- , T2
- , Key
- , Tag
- , IncludesAllDescendants
- , IncludesRoot
- , Value
- >
- , ExplicitKey
- >
- >::type
- get(
- with_accumulation_base<
- Derived
- , BaseGenerator
- , T1
- , T2
- , Key
- , Tag
- , IncludesAllDescendants
- , IncludesRoot
- , Value
- >& node
- )
- {
- return get<ExplicitKey>(
- static_cast<
- typename with_accumulation_base<
- Derived
- , BaseGenerator
- , T1
- , T2
- , Key
- , Tag
- , IncludesAllDescendants
- , IncludesRoot
- , Value
- >::super_t&
- >(node)
- );
- }
-
- template <
- typename ExplicitKey
- , typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- , typename Key
- , typename Tag
- , typename IncludesAllDescendants
- , typename IncludesRoot
- , typename Value
- >
- inline typename ::boost::lazy_enable_if<
- typename ::boost::mpl::eval_if<
- ::std::tr1::is_base_of<accumulation_key_base,ExplicitKey>
- , ::boost::mpl::false_
- , ::std::tr1::is_same<ExplicitKey,Key>
- >::type
- , result_of::value_at_key<
- with_accumulation_base<
- Derived
- , BaseGenerator
- , T1
- , T2
- , Key
- , Tag
- , IncludesAllDescendants
- , IncludesRoot
- , Value
- > const
- , ExplicitKey
- >
- >::type
- get(
- with_accumulation_base<
- Derived
- , BaseGenerator
- , T1
- , T2
- , Key
- , Tag
- , IncludesAllDescendants
- , IncludesRoot
- , Value
- > const& node
- )
- {
- return get<Key>(
- static_cast<
- typename with_accumulation_base<
- Derived
- , BaseGenerator
- , T1
- , T2
- , Key
- , Tag
- , IncludesAllDescendants
- , IncludesRoot
- , Value
- >::super_t const&
- >(node)
- );
- }
-
- template <
- typename ExplicitKey
- , typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- , typename Key
- , typename Tag
- , typename IncludesAllDescendants
- , typename IncludesRoot
- , typename Value
- >
- inline typename ::boost::lazy_enable_if<
- typename ::boost::mpl::eval_if<
- ::std::tr1::is_base_of<accumulation_key_base,ExplicitKey>
- , ::boost::mpl::false_
- , ::std::tr1::is_same<ExplicitKey,Key>
- >::type
- , result_of::value_at_key<
- with_accumulation_base<
- Derived
- , BaseGenerator
- , T1
- , T2
- , Key
- , Tag
- , IncludesAllDescendants
- , IncludesRoot
- , Value
- >
- , ExplicitKey
- >
- >::type
- get(
- with_accumulation_base<
- Derived
- , BaseGenerator
- , T1
- , T2
- , Key
- , Tag
- , IncludesAllDescendants
- , IncludesRoot
- , Value
- >& node
- )
- {
- return get<Key>(
- static_cast<
- typename with_accumulation_base<
- Derived
- , BaseGenerator
- , T1
- , T2
- , Key
- , Tag
- , IncludesAllDescendants
- , IncludesRoot
- , Value
- >::super_t&
- >(node)
- );
- }
-}} // namespace boost::tree_node
-
-#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-namespace boost { namespace tree_node { namespace result_of {
-
- template <
- typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- , typename Key
- , typename Tag
- , typename IncludesAllDescendants
- , typename IncludesRoot
- , typename Value
- >
- struct has_key_impl<
- with_accumulation_base<
- Derived
- , BaseGenerator
- , T1
- , T2
- , Key
- , Tag
- , IncludesAllDescendants
- , IncludesRoot
- , Value
- >
- , accumulation_key<Key,Tag,IncludesAllDescendants,IncludesRoot,Value>
- > : ::boost::mpl::true_
- {
- };
-
- template <
- typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- , typename Key
- , typename Tag
- , typename IncludesAllDescendants
- , typename IncludesRoot
- , typename Value
- >
- struct get_keys_impl<
- with_accumulation_base<
- Derived
- , BaseGenerator
- , T1
- , T2
- , Key
- , Tag
- , IncludesAllDescendants
- , IncludesRoot
- , Value
- >
- > : ::boost::mpl::vector1<
- accumulation_key<Key,Tag,IncludesAllDescendants,IncludesRoot,Value>
- >
- {
- };
-
- template <
- typename Key
- , typename Tag
- , typename IncludesAllDescendants
- , typename IncludesRoot
- , typename Value
- >
- struct at_key_impl<
- accumulation_key<Key,Tag,IncludesAllDescendants,IncludesRoot,Value>
- >
- {
- template <typename Node>
- struct apply : apply<typename Node::super_t>
- {
- };
-
- template <
- typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- >
- struct apply<
- with_accumulation_base<
- Derived
- , BaseGenerator
- , T1
- , T2
- , Key
- , Tag
- , IncludesAllDescendants
- , IncludesRoot
- , Value
- >
- > : ::boost::mpl::eval_if<
- ::std::tr1::is_void<Value>
- , value_at_key<
- with_accumulation_base<
- Derived
- , BaseGenerator
- , T1
- , T2
- , Key
- , Tag
- , IncludesAllDescendants
- , IncludesRoot
- , Value
- >
- , Key
- >
- , ::boost::mpl::identity<Value>
- >
- {
- };
- };
-}}} // namespace boost::tree_node::result_of
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-//[reference__with_accumulation_base_gen
-namespace boost { namespace tree_node {
-
- template <
- typename BaseGenerator
- , typename AccumulationKey = default_accumulation_key
- >
- struct with_accumulation_base_gen
- {
- template <typename Derived, typename T1, typename T2 = void>
- struct apply
- {
- typedef with_accumulation_base<
- Derived
- , BaseGenerator
- , T1
- , T2
- , typename AccumulationKey::key
- , typename AccumulationKey::tag
- , typename AccumulationKey::includes_all_descendants
- , typename AccumulationKey::includes_root
- , typename AccumulationKey::value
- >
- type;
- };
- };
-}} // namespace boost::tree_node
-//]
-
-namespace boost { namespace tree_node {
-
- template <
- typename BaseGenerator
- , typename T1
- , typename T2
- , typename AccumulationKey
- >
- struct with_accumulation
- : public
- //[reference__with_accumulation__bases
- with_accumulation_base<
- with_accumulation<
- BaseGenerator
- , T1
- , T2
- , AccumulationKey
- >
- , BaseGenerator
- , T1
- , T2
- , typename AccumulationKey::key
- , typename AccumulationKey::tag
- , typename AccumulationKey::includes_all_descendants
- , typename AccumulationKey::includes_root
- , typename AccumulationKey::value
- >
- //]
- {
- //[reference__with_accumulator__super_t
- typedef with_accumulation_base<
- with_accumulation
- , BaseGenerator
- , T1
- , T2
- , typename AccumulationKey::key
- , typename AccumulationKey::tag
- , typename AccumulationKey::includes_all_descendants
- , typename AccumulationKey::includes_root
- , typename AccumulationKey::value
- >
- super_t;
- //]
-
- typedef typename super_t::traits
- traits;
- typedef typename super_t::pointer
- pointer;
- typedef typename super_t::const_pointer
- const_pointer;
- typedef typename super_t::iterator
- iterator;
- typedef typename super_t::const_iterator
- const_iterator;
- typedef typename super_t::reverse_iterator
- reverse_iterator;
- typedef typename super_t::const_reverse_iterator
- const_reverse_iterator;
- typedef typename super_t::size_type
- size_type;
-
- BOOST_TREE_NODE_COPYABLE_AND_MOVABLE(with_accumulation, super_t)
-
-#if defined BOOST_CONTAINER_PERFECT_FORWARDING
- //[reference__with_accumulation__emplacement_ctor
- template <typename ...Args>
- explicit with_accumulation(Args&& ...args);
- //]
-
- //[reference__with_accumulation__emplacement_ctor_w_allocator
- template <typename ...Args>
- explicit with_accumulation(
- ::boost::container::allocator_arg_t
- , typename traits::allocator_reference allocator
- , Args&& ...args
- );
- //]
-#else // !defined BOOST_CONTAINER_PERFECT_FORWARDING
- BOOST_PP_REPEAT(
- BOOST_CONTAINER_MAX_CONSTRUCTOR_PARAMETERS
- , BOOST_TREE_NODE_EMPLACEMENT_CTOR_INLINE_DEF
- , (with_accumulation, super_t)
- )
-
- BOOST_PP_REPEAT(
- BOOST_CONTAINER_MAX_CONSTRUCTOR_PARAMETERS
- , BOOST_TREE_NODE_EMPLACEMENT_CTOR_W_ALLOC_INLINE_DEF
- , (with_accumulation, super_t)
- )
-#endif // BOOST_CONTAINER_PERFECT_FORWARDING
- };
-
-#if defined BOOST_CONTAINER_PERFECT_FORWARDING
- template <
- typename BaseGenerator
- , typename T1
- , typename T2
- , typename AccumulationKey
- >
- template <typename ...Args>
- inline with_accumulation<
- BaseGenerator
- , T1
- , T2
- , AccumulationKey
- >::with_accumulation(Args&& ...args)
- : super_t(::boost::forward<Args>(args)...)
- {
- super_t::on_post_emplacement_construct();
- }
-
- template <
- typename BaseGenerator
- , typename T1
- , typename T2
- , typename AccumulationKey
- >
- template <typename ...Args>
- inline with_accumulation<
- BaseGenerator
- , T1
- , T2
- , AccumulationKey
- >::with_accumulation(
- ::boost::container::allocator_arg_t
- , typename traits::allocator_reference allocator
- , Args&& ...args
- ) : super_t(
- ::boost::container::allocator_arg
- , allocator
- , ::boost::forward<Args>(args)...
- )
- {
- super_t::on_post_emplacement_construct();
- }
-#endif // BOOST_CONTAINER_PERFECT_FORWARDING
-}} // namespace boost::tree_node
-
-//[reference__with_accumulation_gen
-namespace boost { namespace tree_node {
-
- template <
- typename BaseGenerator
- , typename AccumulationKey = default_accumulation_key
- >
- struct with_accumulation_gen
- {
- template <typename Derived, typename T1, typename T2 = void>
- struct apply
- {
- typedef with_accumulation<BaseGenerator,T1,T2,AccumulationKey>
- type;
- };
- };
-}} // namespace boost::tree_node
-//]
-
-#include <boost/tree_node/_detail/config_end.hpp>
-
-#endif // BOOST_TREE_NODE_WITH_ACCUMULATION_HPP_INCLUDED
-

Deleted: sandbox/tree_node/boost/tree_node/with_accumulation_fwd.hpp
==============================================================================
--- sandbox/tree_node/boost/tree_node/with_accumulation_fwd.hpp 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84956)
+++ /dev/null 00:00:00 1970 (deleted)
@@ -1,158 +0,0 @@
-// 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)
-
-#ifndef BOOST_TREE_NODE_WITH_ACCUMULATION_FWD_HPP_INCLUDED
-#define BOOST_TREE_NODE_WITH_ACCUMULATION_FWD_HPP_INCLUDED
-
-#include <boost/config.hpp>
-
-#if defined BOOST_NO_SFINAE
-#error boost::tree_node::with_accumulation requires working boost::enable_if.
-#endif
-
-#if defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-#error boost::tree_node::with_accumulation uses Boost.Accumulators,
-#error which requires working partial template specialization.
-#endif
-
-#include <boost/tr1/type_traits.hpp>
-#include <boost/mpl/identity.hpp>
-#include <boost/mpl/eval_if.hpp>
-#include <boost/utility/enable_if.hpp>
-#include <boost/tree_node/key/accumulation.hpp>
-#include <boost/tree_node/intrinsic/value_at_key.hpp>
-
-namespace boost { namespace tree_node {
-
- template <
- typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- , typename Key
- , typename Tag
- , typename IncludesAllDescendants
- , typename IncludesRoot
- , typename Value
- >
- class with_accumulation_base;
-
- template <
- typename BaseGenerator
- , typename T1
- , typename T2 = void
- , typename AccumulationKey = default_accumulation_key
- >
- struct with_accumulation;
-}} // namespace boost::tree_node
-
-//[reference__with_accumulation_base__at_key
-namespace boost { namespace tree_node {
-
- template <
- typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- , typename Key
- , typename Tag
- , typename IncludesAllDescendants
- , typename IncludesRoot
- , typename Value
- , typename AccumulationKey
- >
- typename ::boost::enable_if<
- ::std::tr1::is_same<
- accumulation_key<Key,Tag,IncludesAllDescendants,IncludesRoot,Value>
- , AccumulationKey
- >
- , typename ::boost::mpl::eval_if<
- ::std::tr1::is_void<Value>
- , result_of::value_at_key<
- with_accumulation_base<
- Derived
- , BaseGenerator
- , T1
- , T2
- , Key
- , Tag
- , IncludesAllDescendants
- , IncludesRoot
- , Value
- >
- , Key
- >
- , ::boost::mpl::identity<Value>
- >::type const&
- >::type
- get(
- with_accumulation_base<
- Derived
- , BaseGenerator
- , T1
- , T2
- , Key
- , Tag
- , IncludesAllDescendants
- , IncludesRoot
- , Value
- > const& node
- , AccumulationKey const& key
- );
-
- template <
- typename AccumulationKey
- , typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- , typename Key
- , typename Tag
- , typename IncludesAllDescendants
- , typename IncludesRoot
- , typename Value
- >
- typename ::boost::enable_if<
- ::std::tr1::is_same<
- accumulation_key<Key,Tag,IncludesAllDescendants,IncludesRoot,Value>
- , AccumulationKey
- >
- , typename ::boost::mpl::eval_if<
- ::std::tr1::is_void<Value>
- , result_of::value_at_key<
- with_accumulation_base<
- Derived
- , BaseGenerator
- , T1
- , T2
- , Key
- , Tag
- , IncludesAllDescendants
- , IncludesRoot
- , Value
- >
- , Key
- >
- , ::boost::mpl::identity<Value>
- >::type const&
- >::type
- get(
- with_accumulation_base<
- Derived
- , BaseGenerator
- , T1
- , T2
- , Key
- , Tag
- , IncludesAllDescendants
- , IncludesRoot
- , Value
- > const& node
- );
-}} // namespace boost::tree_node
-//]
-
-#endif // BOOST_TREE_NODE_WITH_ACCUMULATION_FWD_HPP_INCLUDED
-

Deleted: sandbox/tree_node/boost/tree_node/with_count.hpp
==============================================================================
--- sandbox/tree_node/boost/tree_node/with_count.hpp 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84956)
+++ /dev/null 00:00:00 1970 (deleted)
@@ -1,994 +0,0 @@
-// 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)
-
-#ifndef BOOST_TREE_NODE_WITH_COUNT_HPP_INCLUDED
-#define BOOST_TREE_NODE_WITH_COUNT_HPP_INCLUDED
-
-#include <cstddef>
-#include <boost/tr1/type_traits.hpp>
-#include <boost/mpl/bool.hpp>
-#include <boost/mpl/apply_wrap.hpp>
-#include <boost/mpl/if.hpp>
-#include <boost/mpl/eval_if.hpp>
-#include <boost/noncopyable.hpp>
-#include <boost/utility/value_init.hpp>
-#include <boost/tree_node/preprocessor.hpp>
-#include <boost/tree_node/base.hpp>
-#include <boost/tree_node/with_count_fwd.hpp>
-#include <boost/tree_node/key/count.hpp>
-#include <boost/tree_node/intrinsic/has_key.hpp>
-#include <boost/tree_node/intrinsic/get_keys.hpp>
-#include <boost/tree_node/intrinsic/at_key.hpp>
-#include <boost/tree_node/iterator/dereference.hpp>
-
-#if !defined BOOST_CONTAINER_PERFECT_FORWARDING
-#include <boost/preprocessor/repetition/repeat.hpp>
-#endif
-
-#include <boost/tree_node/_detail/config_begin.hpp>
-
-#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-#include <boost/mpl/vector.hpp>
-#include <boost/move/move.hpp>
-#include <boost/type_traits/is_pod.hpp>
-
-namespace boost {
-
- template <typename BaseGenerator, typename T1, typename T2, typename Count>
- struct is_POD<
- ::boost::tree_node::with_count<BaseGenerator,T1,T2,Count>
- > : ::boost::false_type
- {
- };
-
- template <typename BaseGenerator, typename T1, typename T2, typename Count>
- struct is_pod<
- ::boost::tree_node::with_count<BaseGenerator,T1,T2,Count>
- > : ::boost::false_type
- {
- };
-} // namespace boost
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-namespace boost { namespace tree_node {
-
- template <
- typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- , typename Count
- >
- class with_count_base
- : public
- //[reference__with_count_base__bases
- ::boost::mpl::eval_if<
- ::std::tr1::is_void<T2>
- , ::boost::mpl::apply_wrap2<BaseGenerator,Derived,T1>
- , ::boost::mpl::apply_wrap3<BaseGenerator,Derived,T1,T2>
- >::type
- //]
-#if defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- , public count_key
-#endif
- , private ::boost::noncopyable
- {
- friend struct tree_node_base<Derived>;
-
- typedef with_count_base<Derived,BaseGenerator,T1,T2,Count>
- self;
-
- public:
- typedef typename ::boost::mpl::eval_if<
- ::std::tr1::is_void<T2>
- , ::boost::mpl::apply_wrap2<BaseGenerator,Derived,T1>
- , ::boost::mpl::apply_wrap3<BaseGenerator,Derived,T1,T2>
- >::type
- super_t;
- typedef typename super_t::pointer
- pointer;
- typedef typename super_t::const_pointer
- const_pointer;
- typedef typename super_t::iterator
- iterator;
- typedef typename super_t::const_iterator
- const_iterator;
- typedef typename super_t::reverse_iterator
- reverse_iterator;
- typedef typename super_t::const_reverse_iterator
- const_reverse_iterator;
- typedef typename super_t::size_type
- size_type;
-
- //[reference__with_count_base__traits
- struct traits : super_t::traits
- {
- typedef typename ::boost::mpl::if_<
- ::std::tr1::is_void<Count>
- , size_type
- , Count
- >::type
- count;
- };
- //]
-
- private:
- typename traits::count _count;
-
- protected:
- //[reference__with_count_base__derived_copy_ctor
- with_count_base(Derived const& copy);
- //]
-
- //[reference__with_count_base__derived_copy_ctor_w_allocator
- with_count_base(
- Derived const& copy
- , typename traits::allocator_reference allocator
- );
- //]
-
-#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- with_count_base(BOOST_RV_REF(Derived) source);
-
- with_count_base(
- BOOST_RV_REF(Derived) source
- , typename traits::allocator_reference allocator
- );
-#endif
-
-#if defined BOOST_CONTAINER_PERFECT_FORWARDING
- //[reference__with_count_base__emplacement_ctor
- template <typename ...Args>
- explicit with_count_base(Args&& ...args);
- //]
-
- //[reference__with_count_base__emplacement_ctor_w_allocator
- template <typename ...Args>
- explicit with_count_base(
- ::boost::container::allocator_arg_t
- , typename traits::allocator_reference allocator
- , Args&& ...args
- );
- //]
-#else // !defined BOOST_CONTAINER_PERFECT_FORWARDING
-#define BOOST_TREE_NODE_WITH_COUNT_MACRO(z, n, Tuple) \
- BOOST_TREE_NODE_EMPLACEMENT_CTOR_INLINE_HEADER(z, n, Tuple) \
- , _count(::boost::initialized_value) \
- { \
- } \
-//!
- BOOST_PP_REPEAT(
- BOOST_CONTAINER_MAX_CONSTRUCTOR_PARAMETERS
- , BOOST_TREE_NODE_WITH_COUNT_MACRO
- , (with_count_base, super_t)
- )
-#undef BOOST_TREE_NODE_WITH_COUNT_MACRO
-
-#define BOOST_TREE_NODE_WITH_COUNT_MACRO(z, n, Tuple) \
- BOOST_TREE_NODE_EMPLACEMENT_CTOR_W_ALLOC_INLINE_HEADER(z, n, Tuple) \
- , _count(::boost::initialized_value) \
- { \
- } \
-//!
- BOOST_PP_REPEAT(
- BOOST_CONTAINER_MAX_CONSTRUCTOR_PARAMETERS
- , BOOST_TREE_NODE_WITH_COUNT_MACRO
- , (with_count_base, super_t)
- )
-#undef BOOST_TREE_NODE_WITH_COUNT_MACRO
-#endif // BOOST_CONTAINER_PERFECT_FORWARDING
-
- ~with_count_base();
-
- void clone_metadata_impl(Derived const& copy);
-
-#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- void move_metadata_impl(BOOST_RV_REF(Derived) source);
-#endif
-
- void on_post_emplacement_construct();
-
- void on_post_assign();
-
- void on_post_inserted_impl(iterator position, ::boost::mpl::true_ t);
-
- void on_post_inserted_impl(iterator position, ::boost::mpl::false_ f);
-
- template <typename BooleanIntegralConstant>
- void
- on_post_insert_impl(
- iterator itr
- , iterator itr_end
- , BooleanIntegralConstant invalidates_children_positions
- );
-
- void on_post_erase_impl();
-
- void on_post_clear_impl();
-
- void on_post_rotate_left_impl();
-
- void on_post_rotate_right_impl();
-
- public:
- //[reference__with_count_base__key_value_operator
- typename traits::count const& operator[](count_key const&) const;
- //]
-
- private:
- void _shallow_update();
-
- static typename traits::count
- _get_count(const_iterator c_itr, const_iterator c_end);
-
- static void
- _update_less_count(
- pointer p
- , typename traits::count const& difference
- );
-
- static void
- _update_greater_count(
- pointer p
- , typename traits::count const& difference
- );
- };
-
- template <
- typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- , typename Count
- >
- with_count_base<Derived,BaseGenerator,T1,T2,Count>::with_count_base(
- Derived const& copy
- ) : super_t(copy), _count(copy._count)
- {
- }
-
- template <
- typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- , typename Count
- >
- with_count_base<Derived,BaseGenerator,T1,T2,Count>::with_count_base(
- Derived const& copy
- , typename traits::allocator_reference allocator
- ) : super_t(copy, allocator), _count(copy._count)
- {
- }
-
-#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- template <
- typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- , typename Count
- >
- with_count_base<Derived,BaseGenerator,T1,T2,Count>::with_count_base(
-#if defined BOOST_NO_RVALUE_REFERENCES
- ::boost::rv<Derived>& source
- ) : super_t(source)
-#else
- Derived&& source
- ) : super_t(static_cast<Derived&&>(source))
-#endif
- , _count(source._count)
- {
- }
-
- template <
- typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- , typename Count
- >
- with_count_base<Derived,BaseGenerator,T1,T2,Count>::with_count_base(
-#if defined BOOST_NO_RVALUE_REFERENCES
- ::boost::rv<Derived>& source
- , typename traits::allocator_reference allocator
- ) : super_t(source, allocator)
-#else
- Derived&& source
- , typename traits::allocator_reference allocator
- ) : super_t(static_cast<Derived&&>(source), allocator)
-#endif
- , _count(source._count)
- {
- }
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-#if defined BOOST_CONTAINER_PERFECT_FORWARDING
- template <
- typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- , typename Count
- >
- template <typename ...Args>
- with_count_base<Derived,BaseGenerator,T1,T2,Count>::with_count_base(
- Args&& ...args
- ) : super_t(::boost::forward<Args>(args)...)
- , _count(::boost::initialized_value)
- {
- }
-
- template <
- typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- , typename Count
- >
- template <typename ...Args>
- with_count_base<Derived,BaseGenerator,T1,T2,Count>::with_count_base(
- ::boost::container::allocator_arg_t
- , typename traits::allocator_reference allocator
- , Args&& ...args
- ) : super_t(
- ::boost::container::allocator_arg
- , allocator
- , ::boost::forward<Args>(args)...
- )
- , _count(::boost::initialized_value)
- {
- }
-#endif // BOOST_CONTAINER_PERFECT_FORWARDING
-
- template <
- typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- , typename Count
- >
- with_count_base<Derived,BaseGenerator,T1,T2,Count>::~with_count_base()
- {
- }
-
- template <
- typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- , typename Count
- >
- inline void
- with_count_base<
- Derived
- , BaseGenerator
- , T1
- , T2
- , Count
- >::clone_metadata_impl(Derived const& copy)
- {
- super_t::clone_metadata_impl(copy);
- this->_count = copy._count;
- }
-
-#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- template <
- typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- , typename Count
- >
- inline void
- with_count_base<Derived,BaseGenerator,T1,T2,Count>::move_metadata_impl(
- BOOST_RV_REF(Derived) source
- )
- {
-#if defined BOOST_NO_RVALUE_REFERENCES
- super_t::move_metadata_impl(source);
-#else
- super_t::move_metadata_impl(static_cast<Derived&&>(source));
-#endif
- this->_count = ::boost::move(source._count);
- }
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
- template <
- typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- , typename Count
- >
- inline void
- with_count_base<
- Derived
- , BaseGenerator
- , T1
- , T2
- , Count
- >::on_post_emplacement_construct()
- {
- super_t::on_post_emplacement_construct();
- ++this->_count;
- }
-
- template <
- typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- , typename Count
- >
- inline void
- with_count_base<
- Derived
- , BaseGenerator
- , T1
- , T2
- , Count
- >::on_post_assign()
- {
- super_t::on_post_assign();
-
- if (this->get_parent_ptr())
- {
- static_cast<self*>(this->get_parent_ptr())->_shallow_update();
- }
- }
-
- template <
- typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- , typename Count
- >
- inline void
- with_count_base<
- Derived
- , BaseGenerator
- , T1
- , T2
- , Count
- >::on_post_inserted_impl(iterator position, ::boost::mpl::true_ t)
- {
- super_t::on_post_inserted_impl(position, t);
- self::_update_greater_count(this->get_derived(), this->_count);
- this->on_post_propagate_value(count_key());
- }
-
- template <
- typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- , typename Count
- >
- inline void
- with_count_base<
- Derived
- , BaseGenerator
- , T1
- , T2
- , Count
- >::on_post_inserted_impl(iterator position, ::boost::mpl::false_ f)
- {
- super_t::on_post_inserted_impl(position, f);
- static_cast<self*>(this->get_parent_ptr())->_shallow_update();
- }
-
- template <
- typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- , typename Count
- >
- template <typename BooleanIntegralConstant>
- void
- with_count_base<
- Derived
- , BaseGenerator
- , T1
- , T2
- , Count
- >::on_post_insert_impl(
- iterator itr
- , iterator itr_end
- , BooleanIntegralConstant invalidates_children_positions
- )
- {
- super_t::on_post_insert_impl(
- itr
- , itr_end
- , invalidates_children_positions
- );
- typename traits::count new_count = self::_get_count(itr, itr_end);
- this->_count += new_count;
-
- for (
- self::_update_greater_count(this->get_derived(), new_count);
- itr != itr_end;
- ++itr
- )
- {
- dereference_iterator(itr).on_post_modify_value(count_key());
- }
-
- this->on_post_propagate_value(count_key());
- }
-
- template <
- typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- , typename Count
- >
- inline void
- with_count_base<
- Derived
- , BaseGenerator
- , T1
- , T2
- , Count
- >::on_post_erase_impl()
- {
- super_t::on_post_erase_impl();
- this->_shallow_update();
- }
-
- template <
- typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- , typename Count
- >
- inline void
- with_count_base<
- Derived
- , BaseGenerator
- , T1
- , T2
- , Count
- >::on_post_clear_impl()
- {
- super_t::on_post_clear_impl();
- self::_update_less_count(this->get_derived(), --this->_count);
- ++(this->_count = ::boost::initialized_value);
- this->on_post_propagate_value(count_key());
- }
-
- template <
- typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- , typename Count
- >
- inline void
- with_count_base<
- Derived
- , BaseGenerator
- , T1
- , T2
- , Count
- >::on_post_rotate_left_impl()
- {
- super_t::on_post_rotate_left_impl();
-
- pointer p = this->get_parent_ptr();
-
- if (p->get_right_child_ptr())
- {
- this->_count -= p->get_right_child_ptr()->_count;
- }
-
- if (this->get_left_child_ptr())
- {
- p->_count += this->get_left_child_ptr()->_count;
- }
-
- --this->_count;
- ++p->_count;
- this->on_post_propagate_value_once(count_key());
- }
-
- template <
- typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- , typename Count
- >
- inline void
- with_count_base<
- Derived
- , BaseGenerator
- , T1
- , T2
- , Count
- >::on_post_rotate_right_impl()
- {
- super_t::on_post_rotate_right_impl();
-
- pointer p = this->get_parent_ptr();
-
- if (pointer l = p->get_left_child_ptr())
- {
- this->_count -= p->get_left_child_ptr()->_count;
- }
-
- if (this->get_right_child_ptr())
- {
- p->_count += this->get_right_child_ptr()->_count;
- }
-
- --this->_count;
- ++p->_count;
- this->on_post_propagate_value_once(count_key());
- }
-
- template <
- typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- , typename Count
- >
- inline typename with_count_base<
- Derived
- , BaseGenerator
- , T1
- , T2
- , Count
- >::traits::count const&
- with_count_base<Derived,BaseGenerator,T1,T2,Count>::operator[](
- count_key const&
- ) const
- {
- return this->_count;
- }
-
- template <
- typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- , typename Count
- >
- inline void
- with_count_base<Derived,BaseGenerator,T1,T2,Count>::_shallow_update()
- {
- typename traits::count new_count = self::_get_count(
- this->cbegin()
- , this->cend()
- );
-
- if (++new_count < this->_count)
- {
- self::_update_less_count(
- this->get_derived()
- , this->_count - new_count
- );
- this->_count = new_count;
- this->on_post_propagate_value(count_key());
- }
- else if (this->_count < new_count)
- {
- self::_update_greater_count(
- this->get_derived()
- , new_count - this->_count
- );
- this->_count = new_count;
- this->on_post_propagate_value(count_key());
- }
- }
-
- template <
- typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- , typename Count
- >
- typename with_count_base<
- Derived
- , BaseGenerator
- , T1
- , T2
- , Count
- >::traits::count
- with_count_base<
- Derived
- , BaseGenerator
- , T1
- , T2
- , Count
- >::_get_count(const_iterator c_itr, const_iterator c_end)
- {
- typename traits::count result = ::boost::initialized_value;
-
- for (; c_itr != c_end; ++c_itr)
- {
- result += ::boost::tree_node::dereference_iterator(
- c_itr
- )._count;
- }
-
- return result;
- }
-
- template <
- typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- , typename Count
- >
- void
- with_count_base<
- Derived
- , BaseGenerator
- , T1
- , T2
- , Count
- >::_update_less_count(
- pointer p
- , typename traits::count const& difference
- )
- {
- while ((p = p->get_parent_ptr()))
- {
- p->_count -= difference;
- }
- }
-
- template <
- typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- , typename Count
- >
- void
- with_count_base<
- Derived
- , BaseGenerator
- , T1
- , T2
- , Count
- >::_update_greater_count(
- pointer p
- , typename traits::count const& difference
- )
- {
- while ((p = p->get_parent_ptr()))
- {
- p->_count += difference;
- }
- }
-}} // namespace boost::tree_node
-
-namespace boost { namespace tree_node {
-
- template <
- typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- , typename Count
- >
- inline typename with_count_base<
- Derived
- , BaseGenerator
- , T1
- , T2
- , Count
- >::traits::count const&
- get(
- with_count_base<Derived,BaseGenerator,T1,T2,Count> const& node
- , count_key const& key
- )
- {
- return node[key];
- }
-
-#if !defined BOOST_NO_SFINAE
- template <
- typename Key
- , typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- , typename Count
- >
- inline typename ::boost::enable_if<
- ::std::tr1::is_same<Key,count_key>
- , typename with_count_base<
- Derived
- , BaseGenerator
- , T1
- , T2
- , Count
- >::traits::count const&
- >::type
- get(with_count_base<Derived,BaseGenerator,T1,T2,Count> const& node)
- {
- return node[count_key()];
- }
-#endif // BOOST_NO_SFINAE
-}} // namespace boost::tree_node
-
-namespace boost { namespace tree_node { namespace result_of {
-
-#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- template <
- typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- , typename Count
- >
- struct has_key_impl<
- with_count_base<Derived,BaseGenerator,T1,T2,Count>
- , count_key
- > : ::boost::mpl::true_
- {
- };
-
- template <
- typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- , typename Count
- >
- struct get_keys_impl<
- with_count_base<Derived,BaseGenerator,T1,T2,Count>
- > : ::boost::mpl::vector1<count_key>
- {
- };
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
- template <>
- struct at_key_impl<count_key>
- {
- template <typename Node>
- struct apply
- {
- typedef typename Node::traits::count const& type;
- };
- };
-}}} // namespace boost::tree_node::result_of
-
-//[reference__with_count_base_gen
-namespace boost { namespace tree_node {
-
- template <typename BaseGenerator, typename Count = void>
- struct with_count_base_gen
- {
- template <typename Derived, typename T1, typename T2 = void>
- struct apply
- {
- typedef with_count_base<Derived,BaseGenerator,T1,T2,Count> type;
- };
- };
-}} // namespace boost::tree_node
-//]
-
-namespace boost { namespace tree_node {
-
- template <typename BaseGenerator, typename T1, typename T2, typename Count>
- struct with_count
- : public
- //[reference__with_count__bases
- with_count_base<
- with_count<BaseGenerator,T1,T2,Count>
- , BaseGenerator
- , T1
- , T2
- , Count
- >
- //]
- {
- typedef with_count_base<with_count,BaseGenerator,T1,T2,Count>
- super_t;
- typedef typename super_t::traits
- traits;
- typedef typename super_t::pointer
- pointer;
- typedef typename super_t::const_pointer
- const_pointer;
- typedef typename super_t::iterator
- iterator;
- typedef typename super_t::const_iterator
- const_iterator;
- typedef typename super_t::reverse_iterator
- reverse_iterator;
- typedef typename super_t::const_reverse_iterator
- const_reverse_iterator;
- typedef typename super_t::size_type
- size_type;
-
- BOOST_TREE_NODE_COPYABLE_AND_MOVABLE(with_count, super_t)
-
-#if defined BOOST_CONTAINER_PERFECT_FORWARDING
- //[reference__with_count__emplacement_ctor
- template <typename ...Args>
- explicit with_count(Args&& ...args);
- //]
-
- //[reference__with_count__emplacement_ctor_w_allocator
- template <typename ...Args>
- explicit with_count(
- ::boost::container::allocator_arg_t
- , typename traits::allocator_reference allocator
- , Args&& ...args
- );
- //]
-#else // !defined BOOST_CONTAINER_PERFECT_FORWARDING
- BOOST_PP_REPEAT(
- BOOST_CONTAINER_MAX_CONSTRUCTOR_PARAMETERS
- , BOOST_TREE_NODE_EMPLACEMENT_CTOR_INLINE_DEF
- , (with_count, super_t)
- )
-
- BOOST_PP_REPEAT(
- BOOST_CONTAINER_MAX_CONSTRUCTOR_PARAMETERS
- , BOOST_TREE_NODE_EMPLACEMENT_CTOR_W_ALLOC_INLINE_DEF
- , (with_count, super_t)
- )
-#endif // BOOST_CONTAINER_PERFECT_FORWARDING
- };
-
-#if defined BOOST_CONTAINER_PERFECT_FORWARDING
- template <typename BaseGenerator, typename T1, typename T2, typename Count>
- template <typename ...Args>
- inline with_count<BaseGenerator,T1,T2,Count>::with_count(Args&& ...args)
- : super_t(::boost::forward<Args>(args)...)
- {
- super_t::on_post_emplacement_construct();
- }
-
- template <typename BaseGenerator, typename T1, typename T2, typename Count>
- template <typename ...Args>
- inline with_count<BaseGenerator,T1,T2,Count>::with_count(
- ::boost::container::allocator_arg_t
- , typename traits::allocator_reference allocator
- , Args&& ...args
- ) : super_t(
- ::boost::container::allocator_arg
- , allocator
- , ::boost::forward<Args>(args)...
- )
- {
- super_t::on_post_emplacement_construct();
- }
-#endif // BOOST_CONTAINER_PERFECT_FORWARDING
-}} // namespace boost::tree_node
-
-//[reference__with_count_gen
-namespace boost { namespace tree_node {
-
- template <typename BaseGenerator, typename Count = void>
- struct with_count_gen
- {
- template <typename T1, typename T2 = void>
- struct apply
- {
- typedef with_count<BaseGenerator,T1,T2,Count> type;
- };
- };
-}} // namespace boost::tree_node
-//]
-
-#include <boost/tree_node/_detail/config_end.hpp>
-
-#endif // BOOST_TREE_NODE_WITH_COUNT_HPP_INCLUDED
-

Deleted: sandbox/tree_node/boost/tree_node/with_count_fwd.hpp
==============================================================================
--- sandbox/tree_node/boost/tree_node/with_count_fwd.hpp 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84956)
+++ /dev/null 00:00:00 1970 (deleted)
@@ -1,88 +0,0 @@
-// 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)
-
-#ifndef BOOST_TREE_NODE_WITH_COUNT_FWD_HPP_INCLUDED
-#define BOOST_TREE_NODE_WITH_COUNT_FWD_HPP_INCLUDED
-
-#include <boost/config.hpp>
-#include <boost/tree_node/key/count.hpp>
-
-#if !defined BOOST_NO_SFINAE
-#include <boost/utility/enable_if.hpp>
-#include <boost/tr1/type_traits.hpp>
-#endif
-
-namespace boost { namespace tree_node {
-
- template <
- typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- , typename Count
- >
- class with_count_base;
-
- template <
- typename BaseGenerator
- , typename T1
- , typename T2 = void
- , typename Count = void
- >
- struct with_count;
-}} // namespace boost::tree_node
-
-//[reference__with_count_base__at_key
-namespace boost { namespace tree_node {
-
- template <
- typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- , typename Count
- >
- typename with_count_base<
- Derived
- , BaseGenerator
- , T1
- , T2
- , Count
- >::traits::count const&
- get(
- with_count_base<Derived,BaseGenerator,T1,T2,Count> const& node
- , count_key const& key
- );
-
-//<-
-#if !defined BOOST_NO_SFINAE
-//->
- template <
- typename Key
- , typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- , typename Count
- >
- typename ::boost::enable_if<
- ::std::tr1::is_same<Key,count_key>
- , typename with_count_base<
- Derived
- , BaseGenerator
- , T1
- , T2
- , Count
- >::traits::count const&
- >::type
- get(with_count_base<Derived,BaseGenerator,T1,T2,Count> const& node);
-//<-
-#endif // BOOST_NO_SFINAE
-//->
-}} // namespace boost::tree_node
-//]
-
-#endif // BOOST_TREE_NODE_WITH_COUNT_FWD_HPP_INCLUDED
-

Deleted: sandbox/tree_node/boost/tree_node/with_height.hpp
==============================================================================
--- sandbox/tree_node/boost/tree_node/with_height.hpp 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84956)
+++ /dev/null 00:00:00 1970 (deleted)
@@ -1,961 +0,0 @@
-// 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)
-
-#ifndef BOOST_TREE_NODE_WITH_HEIGHT_HPP_INCLUDED
-#define BOOST_TREE_NODE_WITH_HEIGHT_HPP_INCLUDED
-
-#include <cstddef>
-#include <boost/tr1/type_traits.hpp>
-#include <boost/mpl/apply_wrap.hpp>
-#include <boost/mpl/if.hpp>
-#include <boost/mpl/eval_if.hpp>
-#include <boost/noncopyable.hpp>
-#include <boost/utility/value_init.hpp>
-#include <boost/tree_node/preprocessor.hpp>
-#include <boost/tree_node/base.hpp>
-#include <boost/tree_node/with_height_fwd.hpp>
-#include <boost/tree_node/key/height.hpp>
-#include <boost/tree_node/intrinsic/has_key.hpp>
-#include <boost/tree_node/intrinsic/get_keys.hpp>
-#include <boost/tree_node/intrinsic/at_key.hpp>
-#include <boost/tree_node/iterator/dereference.hpp>
-
-#if !defined BOOST_CONTAINER_PERFECT_FORWARDING
-#include <boost/preprocessor/repetition/repeat.hpp>
-#endif
-
-#include <boost/tree_node/_detail/config_begin.hpp>
-
-#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-#include <boost/mpl/vector.hpp>
-#include <boost/move/move.hpp>
-#include <boost/type_traits/is_pod.hpp>
-
-namespace boost {
-
- template <
- typename BaseGenerator
- , typename T1
- , typename T2
- , typename Height
- >
- struct is_POD<
- ::boost::tree_node::with_height<BaseGenerator,T1,T2,Height>
- > : ::boost::false_type
- {
- };
-
- template <
- typename BaseGenerator
- , typename T1
- , typename T2
- , typename Height
- >
- struct is_pod<
- ::boost::tree_node::with_height<BaseGenerator,T1,T2,Height>
- > : ::boost::false_type
- {
- };
-} // namespace boost
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-namespace boost { namespace tree_node {
-
- template <
- typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- , typename Height
- >
- class with_height_base
- : public
- //[reference__with_height_base__bases
- ::boost::mpl::eval_if<
- ::std::tr1::is_void<T2>
- , ::boost::mpl::apply_wrap2<BaseGenerator,Derived,T1>
- , ::boost::mpl::apply_wrap3<BaseGenerator,Derived,T1,T2>
- >::type
- //]
-#if defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- , public height_key
-#endif
- , private ::boost::noncopyable
- {
- friend struct tree_node_base<Derived>;
-
- typedef with_height_base<Derived,BaseGenerator,T1,T2,Height>
- self;
-
- public:
- typedef typename ::boost::mpl::eval_if<
- ::std::tr1::is_void<T2>
- , ::boost::mpl::apply_wrap2<BaseGenerator,Derived,T1>
- , ::boost::mpl::apply_wrap3<BaseGenerator,Derived,T1,T2>
- >::type
- super_t;
- typedef typename super_t::pointer
- pointer;
- typedef typename super_t::const_pointer
- const_pointer;
- typedef typename super_t::iterator
- iterator;
- typedef typename super_t::const_iterator
- const_iterator;
- typedef typename super_t::reverse_iterator
- reverse_iterator;
- typedef typename super_t::const_reverse_iterator
- const_reverse_iterator;
- typedef typename super_t::size_type
- size_type;
-
- //[reference__with_height_base__traits
- struct traits : super_t::traits
- {
- typedef typename ::boost::mpl::if_<
- ::std::tr1::is_void<Height>
- , size_type
- , Height
- >::type
- height;
- };
- //]
-
- private:
- typename traits::height _height;
-
- protected:
- //[reference__with_height_base__derived_copy_ctor
- with_height_base(Derived const& copy);
- //]
-
- //[reference__with_height_base__derived_copy_ctor_w_allocator
- with_height_base(
- Derived const& copy
- , typename traits::allocator_reference allocator
- );
- //]
-
-#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- with_height_base(BOOST_RV_REF(Derived) source);
-
- with_height_base(
- BOOST_RV_REF(Derived) source
- , typename traits::allocator_reference allocator
- );
-#endif
-
-#if defined BOOST_CONTAINER_PERFECT_FORWARDING
- //[reference__with_height_base__emplacement_ctor
- template <typename ...Args>
- explicit with_height_base(Args&& ...args);
- //]
-
- //[reference__with_height_base__emplacement_ctor_w_allocator
- template <typename ...Args>
- explicit with_height_base(
- ::boost::container::allocator_arg_t
- , typename traits::allocator_reference allocator
- , Args&& ...args
- );
- //]
-#else // !defined BOOST_CONTAINER_PERFECT_FORWARDING
-#define BOOST_TREE_NODE_WITH_HEIGHT_MACRO(z, n, Tuple) \
- BOOST_TREE_NODE_EMPLACEMENT_CTOR_INLINE_HEADER(z, n, Tuple) \
- , _height(::boost::initialized_value) \
- { \
- } \
-//!
- BOOST_PP_REPEAT(
- BOOST_CONTAINER_MAX_CONSTRUCTOR_PARAMETERS
- , BOOST_TREE_NODE_WITH_HEIGHT_MACRO
- , (with_height_base, super_t)
- )
-#undef BOOST_TREE_NODE_WITH_HEIGHT_MACRO
-
-#define BOOST_TREE_NODE_WITH_HEIGHT_MACRO(z, n, Tuple) \
- BOOST_TREE_NODE_EMPLACEMENT_CTOR_W_ALLOC_INLINE_HEADER(z, n, Tuple) \
- , _height(::boost::initialized_value) \
- { \
- } \
-//!
- BOOST_PP_REPEAT(
- BOOST_CONTAINER_MAX_CONSTRUCTOR_PARAMETERS
- , BOOST_TREE_NODE_WITH_HEIGHT_MACRO
- , (with_height_base, super_t)
- )
-#undef BOOST_TREE_NODE_WITH_HEIGHT_MACRO
-#endif // BOOST_CONTAINER_PERFECT_FORWARDING
-
- ~with_height_base();
-
- void clone_metadata_impl(Derived const& copy);
-
-#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- void move_metadata_impl(BOOST_RV_REF(Derived) source);
-#endif
-
- void on_post_assign();
-
- template <typename BooleanIntegralConstant>
- void
- on_post_inserted_impl(
- iterator position
- , BooleanIntegralConstant invalidates_sibling_positions
- );
-
- template <typename BooleanIntegralConstant>
- void
- on_post_insert_impl(
- iterator itr
- , iterator itr_end
- , BooleanIntegralConstant invalidates_children_positions
- );
-
- void on_post_erase_impl();
-
- void on_post_clear_impl();
-
- void on_post_rotate_left_impl();
-
- void on_post_rotate_right_impl();
-
- public:
- //[reference__with_height_base__key_value_operator
- typename traits::height const& operator[](height_key const&) const;
- //]
-
- private:
- void _shallow_update();
-
- static typename traits::height
- _get_max_height(const_iterator c_itr, const_iterator c_end);
-
- static void _update_less_height(pointer p);
-
- static void _update_greater_height(pointer p);
- };
-
- template <
- typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- , typename Height
- >
- with_height_base<Derived,BaseGenerator,T1,T2,Height>::with_height_base(
- Derived const& copy
- ) : super_t(copy), _height(copy._height)
- {
- }
-
- template <
- typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- , typename Height
- >
- with_height_base<Derived,BaseGenerator,T1,T2,Height>::with_height_base(
- Derived const& copy
- , typename traits::allocator_reference allocator
- ) : super_t(copy, allocator), _height(copy._height)
- {
- }
-
-#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- template <
- typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- , typename Height
- >
- with_height_base<Derived,BaseGenerator,T1,T2,Height>::with_height_base(
-#if defined BOOST_NO_RVALUE_REFERENCES
- ::boost::rv<Derived>& source
- ) : super_t(source)
-#else
- Derived&& source
- ) : super_t(static_cast<Derived&&>(source))
-#endif
- , _height(source._height)
- {
- }
-
- template <
- typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- , typename Height
- >
- with_height_base<Derived,BaseGenerator,T1,T2,Height>::with_height_base(
-#if defined BOOST_NO_RVALUE_REFERENCES
- ::boost::rv<Derived>& source
- , typename traits::allocator_reference allocator
- ) : super_t(source, allocator)
-#else
- Derived&& source
- , typename traits::allocator_reference allocator
- ) : super_t(static_cast<Derived&&>(source), allocator)
-#endif
- , _height(source._height)
- {
- }
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-#if defined BOOST_CONTAINER_PERFECT_FORWARDING
- template <
- typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- , typename Height
- >
- template <typename ...Args>
- with_height_base<Derived,BaseGenerator,T1,T2,Height>::with_height_base(
- Args&& ...args
- ) : super_t(::boost::forward<Args>(args)...)
- , _height(::boost::initialized_value)
- {
- }
-
- template <
- typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- , typename Height
- >
- template <typename ...Args>
- with_height_base<Derived,BaseGenerator,T1,T2,Height>::with_height_base(
- ::boost::container::allocator_arg_t
- , typename traits::allocator_reference allocator
- , Args&& ...args
- ) : super_t(
- ::boost::container::allocator_arg
- , allocator
- , ::boost::forward<Args>(args)...
- )
- , _height(::boost::initialized_value)
- {
- }
-#endif // BOOST_CONTAINER_PERFECT_FORWARDING
-
- template <
- typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- , typename Height
- >
- with_height_base<Derived,BaseGenerator,T1,T2,Height>::~with_height_base()
- {
- }
-
- template <
- typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- , typename Height
- >
- inline void
- with_height_base<
- Derived
- , BaseGenerator
- , T1
- , T2
- , Height
- >::clone_metadata_impl(Derived const& copy)
- {
- super_t::clone_metadata_impl(copy);
- this->_height = copy._height;
- }
-
-#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- template <
- typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- , typename Height
- >
- inline void
- with_height_base<
- Derived
- , BaseGenerator
- , T1
- , T2
- , Height
- >::move_metadata_impl(BOOST_RV_REF(Derived) source)
- {
-#if defined BOOST_NO_RVALUE_REFERENCES
- super_t::move_metadata_impl(source);
-#else
- super_t::move_metadata_impl(static_cast<Derived&&>(source));
-#endif
- this->_height = ::boost::move(source._height);
- }
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
- template <
- typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- , typename Height
- >
- inline void
- with_height_base<
- Derived
- , BaseGenerator
- , T1
- , T2
- , Height
- >::on_post_assign()
- {
- super_t::on_post_assign();
-
- if (this->get_parent_ptr())
- {
- this->get_parent_ptr()->_shallow_update();
- }
- }
-
- template <
- typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- , typename Height
- >
- template <typename BooleanIntegralConstant>
- inline void
- with_height_base<
- Derived
- , BaseGenerator
- , T1
- , T2
- , Height
- >::on_post_inserted_impl(
- iterator position
- , BooleanIntegralConstant invalidates_sibling_positions
- )
- {
- super_t::on_post_inserted_impl(
- position
- , invalidates_sibling_positions
- );
- this->get_parent_ptr()->_shallow_update();
- }
-
- template <
- typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- , typename Height
- >
- template <typename BooleanIntegralConstant>
- inline void
- with_height_base<
- Derived
- , BaseGenerator
- , T1
- , T2
- , Height
- >::on_post_insert_impl(
- iterator itr
- , iterator itr_end
- , BooleanIntegralConstant invalidates_children_positions
- )
- {
- super_t::on_post_insert_impl(
- itr
- , itr_end
- , invalidates_children_positions
- );
- typename traits::height new_height = self::_get_max_height(
- itr
- , itr_end
- );
-
- if (this->_height < new_height)
- {
- this->_height = new_height;
- self::_update_greater_height(this->get_derived());
- this->on_post_propagate_value(height_key());
- }
- }
-
- template <
- typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- , typename Height
- >
- inline void
- with_height_base<
- Derived
- , BaseGenerator
- , T1
- , T2
- , Height
- >::on_post_erase_impl()
- {
- super_t::on_post_erase_impl();
- this->_shallow_update();
- }
-
- template <
- typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- , typename Height
- >
- inline void
- with_height_base<
- Derived
- , BaseGenerator
- , T1
- , T2
- , Height
- >::on_post_clear_impl()
- {
- super_t::on_post_clear_impl();
- this->_height = ::boost::initialized_value;
- self::_update_less_height(this->get_derived());
- this->on_post_propagate_value(height_key());
- }
-
- template <
- typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- , typename Height
- >
- inline void
- with_height_base<
- Derived
- , BaseGenerator
- , T1
- , T2
- , Height
- >::on_post_rotate_left_impl()
- {
- super_t::on_post_rotate_left_impl();
- this->_shallow_update();
- }
-
- template <
- typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- , typename Height
- >
- inline void
- with_height_base<
- Derived
- , BaseGenerator
- , T1
- , T2
- , Height
- >::on_post_rotate_right_impl()
- {
- super_t::on_post_rotate_right_impl();
- this->_shallow_update();
- }
-
- template <
- typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- , typename Height
- >
- inline typename with_height_base<
- Derived
- , BaseGenerator
- , T1
- , T2
- , Height
- >::traits::height const&
- with_height_base<
- Derived
- , BaseGenerator
- , T1
- , T2
- , Height
- >::operator[](height_key const&) const
- {
- return this->_height;
- }
-
- template <
- typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- , typename Height
- >
- void
- with_height_base<Derived,BaseGenerator,T1,T2,Height>::_shallow_update()
- {
- typename traits::height new_height = self::_get_max_height(
- this->begin()
- , this->end()
- );
-
- if (new_height < this->_height)
- {
- this->_height = new_height;
- self::_update_less_height(this->get_derived());
- this->on_post_propagate_value(height_key());
- }
- else if (this->_height < new_height)
- {
- this->_height = new_height;
- self::_update_greater_height(this->get_derived());
- this->on_post_propagate_value(height_key());
- }
- }
-
- template <
- typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- , typename Height
- >
- typename with_height_base<
- Derived
- , BaseGenerator
- , T1
- , T2
- , Height
- >::traits::height
- with_height_base<
- Derived
- , BaseGenerator
- , T1
- , T2
- , Height
- >::_get_max_height(const_iterator c_itr, const_iterator c_end)
- {
- typename traits::height result = ::boost::initialized_value;
-
- for (typename traits::height height_plus_1; c_itr != c_end; ++c_itr)
- {
- height_plus_1 = ::boost::tree_node::dereference_iterator(
- c_itr
- )._height;
-
- if (result < ++height_plus_1)
- {
- result = height_plus_1;
- }
- }
-
- return result;
- }
-
- template <
- typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- , typename Height
- >
- void
- with_height_base<
- Derived
- , BaseGenerator
- , T1
- , T2
- , Height
- >::_update_less_height(pointer p)
- {
- typename traits::height new_height;
-
- while ((p = p->get_parent_ptr()))
- {
- new_height = self::_get_max_height(p->begin(), p->end());
-
- if (p->_height == new_height)
- {
- return;
- }
- else
- {
- // This is no longer the deepest branch.
- p->_height = new_height;
- }
- }
- }
-
- template <
- typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- , typename Height
- >
- void
- with_height_base<
- Derived
- , BaseGenerator
- , T1
- , T2
- , Height
- >::_update_greater_height(pointer p)
- {
- typename traits::height p_height = p->_height;
-
- while ((p = p->get_parent_ptr()) && (p->_height < ++p_height))
- {
- // This is the new deepest branch.
- p->_height = p_height;
- }
- }
-}} // namespace boost::tree_node
-
-namespace boost { namespace tree_node {
-
- template <
- typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- , typename Height
- >
- inline typename with_height_base<
- Derived
- , BaseGenerator
- , T1
- , T2
- , Height
- >::traits::height const&
- get(
- with_height_base<Derived,BaseGenerator,T1,T2,Height> const& node
- , height_key const& key
- )
- {
- return node[key];
- }
-
-#if !defined BOOST_NO_SFINAE
- template <
- typename Key
- , typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- , typename Height
- >
- inline typename ::boost::enable_if<
- ::std::tr1::is_same<Key,height_key>
- , typename with_height_base<
- Derived
- , BaseGenerator
- , T1
- , T2
- , Height
- >::traits::height const&
- >::type
- get(with_height_base<Derived,BaseGenerator,T1,T2,Height> const& node)
- {
- return node[height_key()];
- }
-#endif // BOOST_NO_SFINAE
-}} // namespace boost::tree_node
-
-namespace boost { namespace tree_node { namespace result_of {
-
-#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- template <
- typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- , typename Height
- >
- struct has_key_impl<
- with_height_base<Derived,BaseGenerator,T1,T2,Height>
- , height_key
- > : ::boost::mpl::true_
- {
- };
-
- template <
- typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- , typename Height
- >
- struct get_keys_impl<
- with_height_base<Derived,BaseGenerator,T1,T2,Height>
- > : ::boost::mpl::vector1<height_key>
- {
- };
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
- template <>
- struct at_key_impl<height_key>
- {
- template <typename Node>
- struct apply
- {
- typedef typename Node::traits::height const& type;
- };
- };
-}}} // namespace boost::tree_node::result_of
-
-//[reference__with_height_base_gen
-namespace boost { namespace tree_node {
-
- template <typename BaseGenerator, typename Height = void>
- struct with_height_base_gen
- {
- template <typename Derived, typename T1, typename T2 = void>
- struct apply
- {
- typedef with_height_base<Derived,BaseGenerator,T1,T2,Height> type;
- };
- };
-}} // namespace boost::tree_node
-//]
-
-namespace boost { namespace tree_node {
-
- template <
- typename BaseGenerator
- , typename T1
- , typename T2
- , typename Height
- >
- struct with_height
- : public
- //[reference__with_height__bases
- with_height_base<
- with_height<BaseGenerator,T1,T2,Height>
- , BaseGenerator
- , T1
- , T2
- , Height
- >
- //]
- {
- typedef with_height_base<with_height,BaseGenerator,T1,T2,Height>
- super_t;
- typedef typename super_t::traits
- traits;
- typedef typename super_t::pointer
- pointer;
- typedef typename super_t::const_pointer
- const_pointer;
- typedef typename super_t::iterator
- iterator;
- typedef typename super_t::const_iterator
- const_iterator;
- typedef typename super_t::reverse_iterator
- reverse_iterator;
- typedef typename super_t::const_reverse_iterator
- const_reverse_iterator;
- typedef typename super_t::size_type
- size_type;
-
- BOOST_TREE_NODE_COPYABLE_AND_MOVABLE(with_height, super_t)
-
-#if defined BOOST_CONTAINER_PERFECT_FORWARDING
- //[reference__with_height__emplacement_ctor
- template <typename ...Args>
- explicit with_height(Args&& ...args);
- //]
-
- //[reference__with_height__emplacement_ctor_w_allocator
- template <typename ...Args>
- explicit with_height(
- ::boost::container::allocator_arg_t
- , typename traits::allocator_reference allocator
- , Args&& ...args
- );
- //]
-#else // !defined BOOST_CONTAINER_PERFECT_FORWARDING
- BOOST_PP_REPEAT(
- BOOST_CONTAINER_MAX_CONSTRUCTOR_PARAMETERS
- , BOOST_TREE_NODE_EMPLACEMENT_CTOR_INLINE_DEF
- , (with_height, super_t)
- )
-
- BOOST_PP_REPEAT(
- BOOST_CONTAINER_MAX_CONSTRUCTOR_PARAMETERS
- , BOOST_TREE_NODE_EMPLACEMENT_CTOR_W_ALLOC_INLINE_DEF
- , (with_height, super_t)
- )
-#endif // BOOST_CONTAINER_PERFECT_FORWARDING
- };
-
-#if defined BOOST_CONTAINER_PERFECT_FORWARDING
- template <
- typename BaseGenerator
- , typename T1
- , typename T2
- , typename Height
- >
- template <typename ...Args>
- inline with_height<BaseGenerator,T1,T2,Height>::with_height(Args&& ...args)
- : super_t(::boost::forward<Args>(args)...)
- {
- super_t::on_post_emplacement_construct();
- }
-
- template <
- typename BaseGenerator
- , typename T1
- , typename T2
- , typename Height
- >
- template <typename ...Args>
- inline with_height<BaseGenerator,T1,T2,Height>::with_height(
- ::boost::container::allocator_arg_t
- , typename traits::allocator_reference allocator
- , Args&& ...args
- ) : super_t(
- ::boost::container::allocator_arg
- , allocator
- , ::boost::forward<Args>(args)...
- )
- {
- super_t::on_post_emplacement_construct();
- }
-#endif // BOOST_CONTAINER_PERFECT_FORWARDING
-}} // namespace boost::tree_node
-
-//[reference__with_height_gen
-namespace boost { namespace tree_node {
-
- template <typename BaseGenerator, typename Height = void>
- struct with_height_gen
- {
- template <typename T1, typename T2 = void>
- struct apply
- {
- typedef with_height<BaseGenerator,T1,T2,Height> type;
- };
- };
-}} // namespace boost::tree_node
-//]
-
-#include <boost/tree_node/_detail/config_end.hpp>
-
-#endif // BOOST_TREE_NODE_WITH_HEIGHT_HPP_INCLUDED
-

Deleted: sandbox/tree_node/boost/tree_node/with_height_fwd.hpp
==============================================================================
--- sandbox/tree_node/boost/tree_node/with_height_fwd.hpp 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84956)
+++ /dev/null 00:00:00 1970 (deleted)
@@ -1,88 +0,0 @@
-// 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)
-
-#ifndef BOOST_TREE_NODE_WITH_HEIGHT_FWD_HPP_INCLUDED
-#define BOOST_TREE_NODE_WITH_HEIGHT_FWD_HPP_INCLUDED
-
-#include <boost/config.hpp>
-#include <boost/tree_node/key/height.hpp>
-
-#if !defined BOOST_NO_SFINAE
-#include <boost/utility/enable_if.hpp>
-#include <boost/tr1/type_traits.hpp>
-#endif
-
-namespace boost { namespace tree_node {
-
- template <
- typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- , typename Height
- >
- class with_height_base;
-
- template <
- typename BaseGenerator
- , typename T1
- , typename T2 = void
- , typename Height = void
- >
- struct with_height;
-}} // namespace boost::tree_node
-
-//[reference__with_height_base__at_key
-namespace boost { namespace tree_node {
-
- template <
- typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- , typename Height
- >
- typename with_height_base<
- Derived
- , BaseGenerator
- , T1
- , T2
- , Height
- >::traits::height const&
- get(
- with_height_base<Derived,BaseGenerator,T1,T2,Height> const& node
- , height_key const& key
- );
-
-//<-
-#if !defined BOOST_NO_SFINAE
-//->
- template <
- typename Key
- , typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- , typename Height
- >
- typename ::boost::enable_if<
- ::std::tr1::is_same<Key,height_key>
- , typename with_height_base<
- Derived
- , BaseGenerator
- , T1
- , T2
- , Height
- >::traits::height const&
- >::type
- get(with_height_base<Derived,BaseGenerator,T1,T2,Height> const& node);
-//<-
-#endif // BOOST_NO_SFINAE
-//->
-}} // namespace boost::tree_node
-//]
-
-#endif // BOOST_TREE_NODE_WITH_HEIGHT_FWD_HPP_INCLUDED
-

Deleted: sandbox/tree_node/boost/tree_node/with_position.hpp
==============================================================================
--- sandbox/tree_node/boost/tree_node/with_position.hpp 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84956)
+++ /dev/null 00:00:00 1970 (deleted)
@@ -1,770 +0,0 @@
-// 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)
-
-#ifndef BOOST_TREE_NODE_WITH_POSITION_HPP_INCLUDED
-#define BOOST_TREE_NODE_WITH_POSITION_HPP_INCLUDED
-
-#include <boost/tr1/type_traits.hpp>
-#include <boost/mpl/bool.hpp>
-#include <boost/mpl/apply_wrap.hpp>
-#include <boost/mpl/eval_if.hpp>
-#include <boost/noncopyable.hpp>
-#include <boost/detail/metafunction/container_iterator.hpp>
-#include <boost/detail/metafunction/is_random_access_iterator.hpp>
-#include <boost/tree_node/preprocessor.hpp>
-#include <boost/tree_node/base.hpp>
-#include <boost/tree_node/with_position_fwd.hpp>
-#include <boost/tree_node/key/position.hpp>
-#include <boost/tree_node/intrinsic/has_key.hpp>
-#include <boost/tree_node/intrinsic/get_keys.hpp>
-#include <boost/tree_node/intrinsic/at_key.hpp>
-#include <boost/tree_node/iterator/dereference.hpp>
-#include <boost/assert.hpp>
-
-#if !defined BOOST_CONTAINER_PERFECT_FORWARDING
-#include <boost/preprocessor/repetition/repeat.hpp>
-#endif
-
-#include <boost/tree_node/_detail/config_begin.hpp>
-
-#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-#include <boost/mpl/vector.hpp>
-#include <boost/move/move.hpp>
-#include <boost/type_traits/is_pod.hpp>
-
-namespace boost {
-
- template <typename BaseGenerator, typename T1, typename T2>
- struct is_POD<
- ::boost::tree_node::with_position<BaseGenerator,T1,T2>
- > : ::boost::false_type
- {
- };
-
- template <typename BaseGenerator, typename T1, typename T2>
- struct is_pod<
- ::boost::tree_node::with_position<BaseGenerator,T1,T2>
- > : ::boost::false_type
- {
- };
-} // namespace boost
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-namespace boost { namespace tree_node {
-
- template <
- typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- >
- class with_position_base
- : public
- //[reference__with_position_base__bases
- ::boost::mpl::eval_if<
- ::std::tr1::is_void<T2>
- , ::boost::mpl::apply_wrap2<BaseGenerator,Derived,T1>
- , ::boost::mpl::apply_wrap3<BaseGenerator,Derived,T1,T2>
- >::type
- //]
-#if defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- , public position_key
-#endif
- , private ::boost::noncopyable
- {
- friend struct tree_node_base<Derived>;
-
- public:
- typedef typename ::boost::mpl::eval_if<
- ::std::tr1::is_void<T2>
- , ::boost::mpl::apply_wrap2<BaseGenerator,Derived,T1>
- , ::boost::mpl::apply_wrap3<BaseGenerator,Derived,T1,T2>
- >::type
- super_t;
- typedef typename super_t::traits
- traits;
- typedef typename super_t::pointer
- pointer;
- typedef typename super_t::const_pointer
- const_pointer;
- typedef typename super_t::iterator
- iterator;
- typedef typename super_t::const_iterator
- const_iterator;
- typedef typename super_t::reverse_iterator
- reverse_iterator;
- typedef typename super_t::const_reverse_iterator
- const_reverse_iterator;
- typedef typename super_t::size_type
- size_type;
-
- private:
- iterator _position;
-
- protected:
- //[reference__with_position_base__derived_copy_ctor
- with_position_base(Derived const& copy);
- //]
-
- //[reference__with_position_base__derived_copy_ctor_w_allocator
- with_position_base(
- Derived const& copy
- , typename traits::allocator_reference allocator
- );
- //]
-
-#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- with_position_base(BOOST_RV_REF(Derived) source);
-
- with_position_base(
- BOOST_RV_REF(Derived) source
- , typename traits::allocator_reference allocator
- );
-#endif
-
-#if defined BOOST_CONTAINER_PERFECT_FORWARDING
- //[reference__with_position_base__emplacement_ctor
- template <typename ...Args>
- explicit with_position_base(Args&& ...args);
- //]
-
- //[reference__with_position_base__emplacement_ctor_w_allocator
- template <typename ...Args>
- explicit with_position_base(
- ::boost::container::allocator_arg_t
- , typename traits::allocator_reference allocator
- , Args&& ...args
- );
- //]
-#else // !defined BOOST_CONTAINER_PERFECT_FORWARDING
-#define BOOST_TREE_NODE_WITH_POSITION_MACRO(z, n, Tuple) \
- BOOST_TREE_NODE_EMPLACEMENT_CTOR_INLINE_HEADER(z, n, Tuple) \
- , _position() \
- { \
- } \
-//!
- BOOST_PP_REPEAT(
- BOOST_CONTAINER_MAX_CONSTRUCTOR_PARAMETERS
- , BOOST_TREE_NODE_WITH_POSITION_MACRO
- , (with_position_base, super_t)
- )
-#undef BOOST_TREE_NODE_WITH_POSITION_MACRO
-
-#define BOOST_TREE_NODE_WITH_POSITION_MACRO(z, n, Tuple) \
- BOOST_TREE_NODE_EMPLACEMENT_CTOR_W_ALLOC_INLINE_HEADER(z, n, Tuple) \
- , _position() \
- { \
- } \
-//!
- BOOST_PP_REPEAT(
- BOOST_CONTAINER_MAX_CONSTRUCTOR_PARAMETERS
- , BOOST_TREE_NODE_WITH_POSITION_MACRO
- , (with_position_base, super_t)
- )
-#undef BOOST_TREE_NODE_WITH_POSITION_MACRO
-#endif // BOOST_CONTAINER_PERFECT_FORWARDING
-
- ~with_position_base();
-
- void on_post_copy_or_move_impl();
-
- void on_post_inserted_impl(iterator position, ::boost::mpl::true_);
-
- void on_post_inserted_impl(iterator position, ::boost::mpl::false_);
-
- void
- on_post_insert_impl(
- iterator itr
- , iterator itr_end
- , ::boost::mpl::true_
- );
-
- void
- on_post_insert_impl(
- iterator itr
- , iterator itr_end
- , ::boost::mpl::false_
- );
-
- public:
- //[reference__with_position_base__key_value_operator__const
- const_iterator operator[](position_key const&) const;
- //]
-
- //[reference__with_position_base__key_value_operator
- iterator operator[](position_key const&);
- //]
-
- private:
- static void
- _set_child_positions(pointer to_parent, ::boost::mpl::true_);
-
- static void
- _set_child_positions(pointer to_parent, ::boost::mpl::false_);
-
- static void _initialize(iterator to_child);
- };
-
- template <
- typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- >
- with_position_base<Derived,BaseGenerator,T1,T2>::with_position_base(
- Derived const& copy
- ) : super_t(copy), _position()
- {
- }
-
- template <
- typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- >
- with_position_base<Derived,BaseGenerator,T1,T2>::with_position_base(
- Derived const& copy
- , typename traits::allocator_reference allocator
- ) : super_t(copy, allocator), _position()
- {
- }
-
-#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- template <
- typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- >
- with_position_base<Derived,BaseGenerator,T1,T2>::with_position_base(
-#if defined BOOST_NO_RVALUE_REFERENCES
- ::boost::rv<Derived>& source
- ) : super_t(source)
-#else
- Derived&& source
- ) : super_t(static_cast<Derived&&>(source))
-#endif
- , _position()
- {
- }
-
- template <
- typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- >
- with_position_base<Derived,BaseGenerator,T1,T2>::with_position_base(
-#if defined BOOST_NO_RVALUE_REFERENCES
- ::boost::rv<Derived>& source
- , typename traits::allocator_reference allocator
- ) : super_t(source, allocator)
-#else
- Derived&& source
- , typename traits::allocator_reference allocator
- ) : super_t(static_cast<Derived&&>(source), allocator)
-#endif
- , _position()
- {
- }
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-#if defined BOOST_CONTAINER_PERFECT_FORWARDING
- template <
- typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- >
- template <typename ...Args>
- with_position_base<Derived,BaseGenerator,T1,T2>::with_position_base(
- Args&& ...args
- ) : super_t(::boost::forward<Args>(args)...), _position()
- {
- }
-
- template <
- typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- >
- template <typename ...Args>
- with_position_base<Derived,BaseGenerator,T1,T2>::with_position_base(
- ::boost::container::allocator_arg_t
- , typename traits::allocator_reference allocator
- , Args&& ...args
- ) : super_t(
- ::boost::container::allocator_arg
- , allocator
- , ::boost::forward<Args>(args)...
- )
- , _position()
- {
- }
-#endif // BOOST_CONTAINER_PERFECT_FORWARDING
-
- template <
- typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- >
- with_position_base<Derived,BaseGenerator,T1,T2>::~with_position_base()
- {
- }
-
- template <
- typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- >
- inline void
- with_position_base<
- Derived
- , BaseGenerator
- , T1
- , T2
- >::on_post_copy_or_move_impl()
- {
- super_t::on_post_copy_or_move_impl();
- with_position_base<Derived,BaseGenerator,T1,T2>::_set_child_positions(
- this->get_derived()
- , ::boost::detail::metafunction::is_random_access_iterator<
- iterator
- >()
- );
- }
-
- template <
- typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- >
- inline void
- with_position_base<Derived,BaseGenerator,T1,T2>::on_post_inserted_impl(
- iterator position
- , ::boost::mpl::true_ t
- )
- {
- super_t::on_post_inserted_impl(position, t);
- this->_position = position;
- this->on_post_modify_value(position_key());
- }
-
- template <
- typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- >
- void
- with_position_base<Derived,BaseGenerator,T1,T2>::on_post_inserted_impl(
- iterator position
- , ::boost::mpl::false_ f
- )
- {
- super_t::on_post_inserted_impl(position, f);
- with_position_base<Derived,BaseGenerator,T1,T2>::_set_child_positions(
- this->get_parent_ptr()
- , ::boost::detail::metafunction::is_random_access_iterator<
- iterator
- >()
- );
- }
-
- template <
- typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- >
- void
- with_position_base<Derived,BaseGenerator,T1,T2>::on_post_insert_impl(
- iterator itr
- , iterator itr_end
- , ::boost::mpl::true_ t
- )
- {
- for (
- super_t::on_post_insert_impl(itr, itr_end, t);
- itr != itr_end;
- ++itr
- )
- {
- with_position_base<Derived,BaseGenerator,T1,T2>::_initialize(itr);
- }
- }
-
- template <
- typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- >
- void
- with_position_base<Derived,BaseGenerator,T1,T2>::on_post_insert_impl(
- iterator itr
- , iterator itr_end
- , ::boost::mpl::false_ f
- )
- {
- super_t::on_post_insert_impl(itr, itr_end, f);
- with_position_base<Derived,BaseGenerator,T1,T2>::_set_child_positions(
- this->get_derived()
- , ::boost::detail::metafunction::is_random_access_iterator<
- iterator
- >()
- );
- }
-
- template <
- typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- >
- inline typename with_position_base<
- Derived
- , BaseGenerator
- , T1
- , T2
- >::const_iterator
- with_position_base<Derived,BaseGenerator,T1,T2>::operator[](
- position_key const&
- ) const
- {
- return this->_position;
- }
-
- template <
- typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- >
- inline typename with_position_base<Derived,BaseGenerator,T1,T2>::iterator
- with_position_base<Derived,BaseGenerator,T1,T2>::operator[](
- position_key const&
- )
- {
- return this->_position;
- }
-
- template <
- typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- >
- void
- with_position_base<Derived,BaseGenerator,T1,T2>::_set_child_positions(
- pointer to_parent
- , ::boost::mpl::true_
- )
- {
- size_type const s = to_parent->size();
-
- for (size_type i = 0; i < s; ++i)
- {
- with_position_base<Derived,BaseGenerator,T1,T2>::_initialize(
- to_parent->begin() + i
- );
- BOOST_ASSERT(
- to_parent == dereference_iterator(
- dereference_iterator(to_parent->begin() + i)._position
- ).get_parent_ptr()
- );
- }
- }
-
- template <
- typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- >
- void
- with_position_base<Derived,BaseGenerator,T1,T2>::_set_child_positions(
- pointer to_parent
- , ::boost::mpl::false_
- )
- {
- iterator itr_end = to_parent->end();
-
- for (iterator itr = to_parent->begin(); itr != itr_end; ++itr)
- {
- with_position_base<Derived,BaseGenerator,T1,T2>::_initialize(itr);
- BOOST_ASSERT(
- to_parent == dereference_iterator(
- dereference_iterator(itr)._position
- ).get_parent_ptr()
- );
- }
- }
-
- template <
- typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- >
- inline void
- with_position_base<Derived,BaseGenerator,T1,T2>::_initialize(
- iterator to_child
- )
- {
- dereference_iterator(to_child)._position = to_child;
- dereference_iterator(to_child).on_post_modify_value(position_key());
- }
-}} // namespace boost::tree_node
-
-namespace boost { namespace tree_node {
-
- template <
- typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- >
- inline typename with_position_base<
- Derived
- , BaseGenerator
- , T1
- , T2
- >::const_iterator
- get(
- with_position_base<Derived,BaseGenerator,T1,T2> const& node
- , position_key const& key
- )
- {
- return node[key];
- }
-
- template <
- typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- >
- inline typename with_position_base<Derived,BaseGenerator,T1,T2>::iterator
- get(
- with_position_base<Derived,BaseGenerator,T1,T2>& node
- , position_key const& key
- )
- {
- return node[key];
- }
-
-#if !defined BOOST_NO_SFINAE
- template <
- typename Key
- , typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- >
- inline typename ::boost::enable_if<
- ::std::tr1::is_same<Key,position_key>
- , typename with_position_base<
- Derived
- , BaseGenerator
- , T1
- , T2
- >::const_iterator
- >::type
- get(with_position_base<Derived,BaseGenerator,T1,T2> const& node)
- {
- return node[position_key()];
- }
-
- template <
- typename Key
- , typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- >
- inline typename ::boost::enable_if<
- ::std::tr1::is_same<Key,position_key>
- , typename with_position_base<Derived,BaseGenerator,T1,T2>::iterator
- >::type
- get(with_position_base<Derived,BaseGenerator,T1,T2>& node)
- {
- return node[position_key()];
- }
-#endif // BOOST_NO_SFINAE
-}} // namespace boost::tree_node
-
-namespace boost { namespace tree_node { namespace result_of {
-
-#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- template <
- typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- >
- struct has_key_impl<
- with_position_base<Derived,BaseGenerator,T1,T2>
- , position_key
- > : ::boost::mpl::true_
- {
- };
-
- template <
- typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- >
- struct get_keys_impl<
- with_position_base<Derived,BaseGenerator,T1,T2>
- > : ::boost::mpl::vector1<position_key>
- {
- };
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
- template <>
- struct at_key_impl<position_key>
- {
- template <typename Node>
- struct apply
- {
- typedef typename ::boost::detail::metafunction::container_iterator<
- Node
- >::type
- type;
- };
- };
-}}} // namespace boost::tree_node::result_of
-
-//[reference__with_position_base_gen
-namespace boost { namespace tree_node {
-
- template <typename BaseGenerator>
- struct with_position_base_gen
- {
- template <typename Derived, typename T1, typename T2 = void>
- struct apply
- {
- typedef with_position_base<Derived,BaseGenerator,T1,T2> type;
- };
- };
-}} // namespace boost::tree_node
-//]
-
-namespace boost { namespace tree_node {
-
- template <typename BaseGenerator, typename T1, typename T2>
- struct with_position
- : public
- //[reference__with_position__bases
- with_position_base<
- with_position<BaseGenerator,T1,T2>
- , BaseGenerator
- , T1
- , T2
- >
- //]
- {
- typedef with_position_base<with_position,BaseGenerator,T1,T2>
- super_t;
- typedef typename super_t::traits
- traits;
- typedef typename super_t::pointer
- pointer;
- typedef typename super_t::const_pointer
- const_pointer;
- typedef typename super_t::iterator
- iterator;
- typedef typename super_t::const_iterator
- const_iterator;
- typedef typename super_t::reverse_iterator
- reverse_iterator;
- typedef typename super_t::const_reverse_iterator
- const_reverse_iterator;
- typedef typename super_t::size_type
- size_type;
-
- BOOST_TREE_NODE_COPYABLE_AND_MOVABLE(with_position, super_t)
-
-#if defined BOOST_CONTAINER_PERFECT_FORWARDING
- //[reference__with_position__emplacement_ctor
- template <typename ...Args>
- explicit with_position(Args&& ...args);
- //]
-
- //[reference__with_position__emplacement_ctor_w_allocator
- template <typename ...Args>
- explicit with_position(
- ::boost::container::allocator_arg_t
- , typename traits::allocator_reference allocator
- , Args&& ...args
- );
- //]
-#else // !defined BOOST_CONTAINER_PERFECT_FORWARDING
- BOOST_PP_REPEAT(
- BOOST_CONTAINER_MAX_CONSTRUCTOR_PARAMETERS
- , BOOST_TREE_NODE_EMPLACEMENT_CTOR_INLINE_DEF
- , (with_position, super_t)
- )
-
- BOOST_PP_REPEAT(
- BOOST_CONTAINER_MAX_CONSTRUCTOR_PARAMETERS
- , BOOST_TREE_NODE_EMPLACEMENT_CTOR_W_ALLOC_INLINE_DEF
- , (with_position, super_t)
- )
-#endif // BOOST_CONTAINER_PERFECT_FORWARDING
- };
-
-#if defined BOOST_CONTAINER_PERFECT_FORWARDING
- template <typename BaseGenerator, typename T1, typename T2>
- template <typename ...Args>
- inline with_position<BaseGenerator,T1,T2>::with_position(Args&& ...args)
- : super_t(::boost::forward<Args>(args)...)
- {
- super_t::on_post_emplacement_construct();
- }
-
- template <typename BaseGenerator, typename T1, typename T2>
- template <typename ...Args>
- inline with_position<BaseGenerator,T1,T2>::with_position(
- ::boost::container::allocator_arg_t
- , typename traits::allocator_reference allocator
- , Args&& ...args
- ) : super_t(
- ::boost::container::allocator_arg
- , allocator
- , ::boost::forward<Args>(args)...
- )
- {
- super_t::on_post_emplacement_construct();
- }
-#endif // BOOST_CONTAINER_PERFECT_FORWARDING
-}} // namespace boost::tree_node
-
-//[reference__with_position_gen
-namespace boost { namespace tree_node {
-
- template <typename BaseGenerator>
- struct with_position_gen
- {
- template <typename T1, typename T2 = void>
- struct apply
- {
- typedef with_position<BaseGenerator,T1,T2> type;
- };
- };
-}} // namespace boost::tree_node
-//]
-
-#include <boost/tree_node/_detail/config_end.hpp>
-
-#endif // BOOST_TREE_NODE_WITH_POSITION_HPP_INCLUDED
-

Deleted: sandbox/tree_node/boost/tree_node/with_position_fwd.hpp
==============================================================================
--- sandbox/tree_node/boost/tree_node/with_position_fwd.hpp 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84956)
+++ /dev/null 00:00:00 1970 (deleted)
@@ -1,114 +0,0 @@
-// 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)
-
-#ifndef BOOST_TREE_NODE_WITH_POSITION_FWD_HPP_INCLUDED
-#define BOOST_TREE_NODE_WITH_POSITION_FWD_HPP_INCLUDED
-
-#include <boost/config.hpp>
-#include <boost/tree_node/key/position.hpp>
-
-#if !defined BOOST_NO_SFINAE
-#include <boost/utility/enable_if.hpp>
-#include <boost/tr1/type_traits.hpp>
-#endif
-
-namespace boost { namespace tree_node {
-
- template <
- typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- >
- class with_position_base;
-
- template <typename BaseGenerator, typename T1, typename T2 = void>
- struct with_position;
-}} // namespace boost::tree_node
-
-//[reference__with_position_base__at_key__const
-namespace boost { namespace tree_node {
-
- template <
- typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- >
- typename with_position_base<
- Derived
- , BaseGenerator
- , T1
- , T2
- >::const_iterator
- get(
- with_position_base<Derived,BaseGenerator,T1,T2> const& node
- , position_key const& key
- );
-
-//<-
-#if !defined BOOST_NO_SFINAE
-//->
- template <
- typename Key
- , typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- >
- typename ::boost::enable_if<
- ::std::tr1::is_same<Key,position_key>
- , typename with_position_base<
- Derived
- , BaseGenerator
- , T1
- , T2
- >::const_iterator
- >::type
- get(with_position_base<Derived,BaseGenerator,T1,T2> const& node);
-//<-
-#endif
-//->
-}} // namespace boost::tree_node
-//]
-
-//[reference__with_position_base__at_key
-namespace boost { namespace tree_node {
-
- template <
- typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- >
- typename with_position_base<Derived,BaseGenerator,T1,T2>::iterator
- get(
- with_position_base<Derived,BaseGenerator,T1,T2>& node
- , position_key const& key
- );
-
-//<-
-#if !defined BOOST_NO_SFINAE
-//->
- template <
- typename Key
- , typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- >
- typename ::boost::enable_if<
- ::std::tr1::is_same<Key,position_key>
- , typename with_position_base<Derived,BaseGenerator,T1,T2>::iterator
- >::type
- get(with_position_base<Derived,BaseGenerator,T1,T2>& node);
-//<-
-#endif
-//->
-}} // namespace boost::tree_node
-//]
-
-#endif // BOOST_TREE_NODE_WITH_POSITION_HPP_INCLUDED
-

Deleted: sandbox/tree_node/boost/tree_node/with_red_black_flag.hpp
==============================================================================
--- sandbox/tree_node/boost/tree_node/with_red_black_flag.hpp 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84956)
+++ /dev/null 00:00:00 1970 (deleted)
@@ -1,755 +0,0 @@
-// 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)
-
-#ifndef BOOST_TREE_NODE_WITH_RED_BLACK_FLAG_HPP_INCLUDED
-#define BOOST_TREE_NODE_WITH_RED_BLACK_FLAG_HPP_INCLUDED
-
-#include <boost/tr1/type_traits.hpp>
-#include <boost/mpl/apply_wrap.hpp>
-#include <boost/mpl/eval_if.hpp>
-#include <boost/noncopyable.hpp>
-#include <boost/tree_node/preprocessor.hpp>
-#include <boost/tree_node/base.hpp>
-#include <boost/tree_node/with_red_black_flag_fwd.hpp>
-#include <boost/tree_node/traits/red_black_node_fwd.hpp>
-#include <boost/tree_node/intrinsic/has_key.hpp>
-#include <boost/tree_node/intrinsic/get_keys.hpp>
-#include <boost/tree_node/intrinsic/at_key.hpp>
-
-#if !defined BOOST_CONTAINER_PERFECT_FORWARDING
-#include <boost/preprocessor/repetition/repeat.hpp>
-#endif
-
-#include <boost/tree_node/_detail/config_begin.hpp>
-
-#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-#include <boost/mpl/vector.hpp>
-#include <boost/move/move.hpp>
-#include <boost/type_traits/is_pod.hpp>
-
-namespace boost {
-
- template <typename BaseGenerator, typename T1, typename T2>
- struct is_POD<
- ::boost::tree_node::with_red_black_flag<BaseGenerator,T1,T2>
- > : ::boost::false_type
- {
- };
-
- template <typename BaseGenerator, typename T1, typename T2>
- struct is_pod<
- ::boost::tree_node::with_red_black_flag<BaseGenerator,T1,T2>
- > : ::boost::false_type
- {
- };
-} // namespace boost
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-namespace boost { namespace tree_node {
-
- template <
- typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- >
- class with_red_black_flag_base
- : public
- //[reference__with_red_black_flag_base__bases
- ::boost::mpl::eval_if<
- ::std::tr1::is_void<T2>
- , ::boost::mpl::apply_wrap2<BaseGenerator,Derived,T1>
- , ::boost::mpl::apply_wrap3<BaseGenerator,Derived,T1,T2>
- >::type
- //]
-#if defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- , public red_flag_key
- , public black_flag_key
-#endif
- , private ::boost::noncopyable
- {
- friend struct tree_node_base<Derived>;
-
- public:
- typedef typename ::boost::mpl::eval_if<
- ::std::tr1::is_void<T2>
- , ::boost::mpl::apply_wrap2<BaseGenerator,Derived,T1>
- , ::boost::mpl::apply_wrap3<BaseGenerator,Derived,T1,T2>
- >::type
- super_t;
- typedef typename super_t::traits
- traits;
- typedef typename super_t::pointer
- pointer;
- typedef typename super_t::const_pointer
- const_pointer;
- typedef typename super_t::iterator
- iterator;
- typedef typename super_t::const_iterator
- const_iterator;
- typedef typename super_t::reverse_iterator
- reverse_iterator;
- typedef typename super_t::const_reverse_iterator
- const_reverse_iterator;
- typedef typename super_t::size_type
- size_type;
-
- private:
- bool _is_red;
-
- protected:
- //[reference__with_red_black_flag_base__derived_copy_ctor
- with_red_black_flag_base(Derived const& copy);
- //]
-
- //[reference__with_red_black_flag_base__derived_copy_ctor_w_allocator
- with_red_black_flag_base(
- Derived const& copy
- , typename traits::allocator_reference allocator
- );
- //]
-
-#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- with_red_black_flag_base(BOOST_RV_REF(Derived) source);
-
- with_red_black_flag_base(
- BOOST_RV_REF(Derived) source
- , typename traits::allocator_reference allocator
- );
-#endif
-
-#if defined BOOST_CONTAINER_PERFECT_FORWARDING
- //[reference__with_red_black_flag_base__emplacement_ctor
- template <typename ...Args>
- explicit with_red_black_flag_base(Args&& ...args);
- //]
-
- //[reference__with_red_black_flag_base__emplacement_ctor_w_allocator
- template <typename ...Args>
- explicit with_red_black_flag_base(
- ::boost::container::allocator_arg_t
- , typename traits::allocator_reference allocator
- , Args&& ...args
- );
- //]
-#else // !defined BOOST_CONTAINER_PERFECT_FORWARDING
-#define BOOST_TREE_NODE_WITH_RED_BLACK_FLAG_MACRO(z, n, Tuple) \
- BOOST_TREE_NODE_EMPLACEMENT_CTOR_INLINE_HEADER(z, n, Tuple) \
- , _is_red(false) \
- { \
- } \
-//!
- BOOST_PP_REPEAT(
- BOOST_CONTAINER_MAX_CONSTRUCTOR_PARAMETERS
- , BOOST_TREE_NODE_WITH_RED_BLACK_FLAG_MACRO
- , (with_red_black_flag_base, super_t)
- )
-#undef BOOST_TREE_NODE_WITH_RED_BLACK_FLAG_MACRO
-
-#define BOOST_TREE_NODE_WITH_RED_BLACK_FLAG_MACRO(z, n, Tuple) \
- BOOST_TREE_NODE_EMPLACEMENT_CTOR_W_ALLOC_INLINE_HEADER(z, n, Tuple) \
- , _is_red(false) \
- { \
- } \
-//!
- BOOST_PP_REPEAT(
- BOOST_CONTAINER_MAX_CONSTRUCTOR_PARAMETERS
- , BOOST_TREE_NODE_WITH_RED_BLACK_FLAG_MACRO
- , (with_red_black_flag_base, super_t)
- )
-#undef BOOST_TREE_NODE_WITH_RED_BLACK_FLAG_MACRO
-#endif // BOOST_CONTAINER_PERFECT_FORWARDING
-
- ~with_red_black_flag_base();
-
- void clone_metadata_impl(Derived const& copy);
-
-#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- void move_metadata_impl(BOOST_RV_REF(Derived) source);
-#endif
-
- void on_post_assign();
-
- public:
- //[reference__with_red_black_flag_base__key_value_operator__red
- bool operator[](red_flag_key const&) const;
- //]
-
- //[reference__with_red_black_flag_base__key_value_operator__black
- bool operator[](black_flag_key const&) const;
- //]
-
- //[reference__with_red_black_flag_base__set_red_flag
- void set_red_flag(bool flag);
- //]
-
- //[reference__with_red_black_flag_base__set_black_flag
- void set_black_flag(bool flag);
- //]
- };
-
- template <
- typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- >
- with_red_black_flag_base<
- Derived
- , BaseGenerator
- , T1
- , T2
- >::with_red_black_flag_base(Derived const& copy)
- : super_t(copy), _is_red(copy._is_red)
- {
- }
-
- template <
- typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- >
- with_red_black_flag_base<
- Derived
- , BaseGenerator
- , T1
- , T2
- >::with_red_black_flag_base(
- Derived const& copy
- , typename traits::allocator_reference allocator
- ) : super_t(copy, allocator), _is_red(copy._is_red)
- {
- }
-
-#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- template <
- typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- >
- with_red_black_flag_base<
- Derived
- , BaseGenerator
- , T1
- , T2
- >::with_red_black_flag_base(
-#if defined BOOST_NO_RVALUE_REFERENCES
- ::boost::rv<Derived>& source
- ) : super_t(source)
-#else
- Derived&& source
- ) : super_t(static_cast<Derived&&>(source))
-#endif
- , _is_red(source._is_red)
- {
- }
-
- template <
- typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- >
- with_red_black_flag_base<
- Derived
- , BaseGenerator
- , T1
- , T2
- >::with_red_black_flag_base(
-#if defined BOOST_NO_RVALUE_REFERENCES
- ::boost::rv<Derived>& source
- , typename traits::allocator_reference allocator
- ) : super_t(source, allocator)
-#else
- Derived&& source
- , typename traits::allocator_reference allocator
- ) : super_t(static_cast<Derived&&>(source), allocator)
-#endif
- , _is_red(source._is_red)
- {
- }
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-#if defined BOOST_CONTAINER_PERFECT_FORWARDING
- template <
- typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- >
- template <typename ...Args>
- with_red_black_flag_base<
- Derived
- , BaseGenerator
- , T1
- , T2
- >::with_red_black_flag_base(Args&& ...args)
- : super_t(::boost::forward<Args>(args)...), _is_red(false)
- {
- }
-
- template <
- typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- >
- template <typename ...Args>
- with_red_black_flag_base<
- Derived
- , BaseGenerator
- , T1
- , T2
- >::with_red_black_flag_base(
- ::boost::container::allocator_arg_t
- , typename traits::allocator_reference allocator
- , Args&& ...args
- ) : super_t(
- ::boost::container::allocator_arg
- , allocator
- , ::boost::forward<Args>(args)...
- )
- , _is_red(false)
- {
- }
-#endif // BOOST_CONTAINER_PERFECT_FORWARDING
-
- template <
- typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- >
- with_red_black_flag_base<
- Derived
- , BaseGenerator
- , T1
- , T2
- >::~with_red_black_flag_base()
- {
- }
-
- template <
- typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- >
- inline void
- with_red_black_flag_base<
- Derived
- , BaseGenerator
- , T1
- , T2
- >::clone_metadata_impl(Derived const& copy)
- {
- super_t::clone_metadata_impl(copy);
- this->_is_red = copy._is_red;
- }
-
-#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- template <
- typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- >
- inline void
- with_red_black_flag_base<
- Derived
- , BaseGenerator
- , T1
- , T2
- >::move_metadata_impl(BOOST_RV_REF(Derived) source)
- {
-#if defined BOOST_NO_RVALUE_REFERENCES
- super_t::move_metadata_impl(source);
-#else
- super_t::move_metadata_impl(static_cast<Derived&&>(source));
-#endif
- this->_is_red = source._is_red;
- }
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
- template <
- typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- >
- inline void
- with_red_black_flag_base<
- Derived
- , BaseGenerator
- , T1
- , T2
- >::on_post_assign()
- {
- super_t::on_post_assign();
- this->on_post_modify_value(red_flag_key());
- this->on_post_modify_value(black_flag_key());
- }
-
- template <
- typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- >
- inline bool
- with_red_black_flag_base<
- Derived
- , BaseGenerator
- , T1
- , T2
- >::operator[](red_flag_key const&) const
- {
- return this->_is_red;
- }
-
- template <
- typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- >
- inline bool
- with_red_black_flag_base<
- Derived
- , BaseGenerator
- , T1
- , T2
- >::operator[](black_flag_key const&) const
- {
- return !this->_is_red;
- }
-
- template <
- typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- >
- inline void
- with_red_black_flag_base<Derived,BaseGenerator,T1,T2>::set_red_flag(
- bool flag
- )
- {
- this->_is_red = flag;
- this->on_post_modify_value(red_flag_key());
- this->on_post_modify_value(black_flag_key());
- }
-
- template <
- typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- >
- inline void
- with_red_black_flag_base<Derived,BaseGenerator,T1,T2>::set_black_flag(
- bool flag
- )
- {
- this->_is_red = !flag;
- this->on_post_modify_value(red_flag_key());
- this->on_post_modify_value(black_flag_key());
- }
-}} // namespace boost::tree_node
-
-namespace boost { namespace tree_node {
-
- template <
- typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- >
- inline bool
- get(
- with_red_black_flag_base<Derived,BaseGenerator,T1,T2> const& node
- , red_flag_key const& key
- )
- {
- return node[key];
- }
-
- template <
- typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- >
- inline bool
- get(
- with_red_black_flag_base<Derived,BaseGenerator,T1,T2> const& node
- , black_flag_key const& key
- )
- {
- return node[key];
- }
-
-#if !defined BOOST_NO_SFINAE
- template <
- typename Key
- , typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- >
- inline typename ::boost::enable_if<
- ::std::tr1::is_same<Key,red_flag_key>
- , bool
- >::type
- get(with_red_black_flag_base<Derived,BaseGenerator,T1,T2> const& node)
- {
- return node[red_flag_key()];
- }
-
- template <
- typename Key
- , typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- >
- inline typename ::boost::enable_if<
- ::std::tr1::is_same<Key,black_flag_key>
- , bool
- >::type
- get(with_red_black_flag_base<Derived,BaseGenerator,T1,T2> const& node)
- {
- return node[black_flag_key()];
- }
-#endif // BOOST_NO_SFINAE
-
- template <
- typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- >
- inline void
- put(
- with_red_black_flag_base<Derived,BaseGenerator,T1,T2>& node
- , red_flag_key const& key
- , bool value
- )
- {
- node.set_red_flag(value);
- }
-
- template <
- typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- >
- inline void
- put(
- with_red_black_flag_base<Derived,BaseGenerator,T1,T2>& node
- , black_flag_key const& key
- , bool value
- )
- {
- node.set_black_flag(value);
- }
-}} // namespace boost::tree_node
-
-namespace boost { namespace tree_node { namespace result_of {
-
-#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- template <
- typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- >
- struct has_key_impl<
- with_red_black_flag_base<Derived,BaseGenerator,T1,T2>
- , red_flag_key
- > : ::boost::mpl::true_
- {
- };
-
- template <
- typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- >
- struct has_key_impl<
- with_red_black_flag_base<Derived,BaseGenerator,T1,T2>
- , black_flag_key
- > : ::boost::mpl::true_
- {
- };
-
- template <
- typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- >
- struct get_keys_impl<
- with_red_black_flag_base<Derived,BaseGenerator,T1,T2>
- > : ::boost::mpl::vector2<red_flag_key,black_flag_key>
- {
- };
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
- template <>
- struct at_key_impl<red_flag_key>
- {
- template <typename Node>
- struct apply
- {
- typedef bool type;
- };
- };
-
- template <>
- struct at_key_impl<black_flag_key>
- {
- template <typename Node>
- struct apply
- {
- typedef bool type;
- };
- };
-}}} // namespace boost::tree_node::result_of
-
-//[reference__with_red_black_flag_base_gen
-namespace boost { namespace tree_node {
-
- template <typename BaseGenerator>
- struct with_red_black_flag_base_gen
- {
- template <typename Derived, typename T1, typename T2 = void>
- struct apply
- {
- typedef with_red_black_flag_base<Derived,BaseGenerator,T1,T2> type;
- };
- };
-}} // namespace boost::tree_node
-//]
-
-namespace boost { namespace tree_node {
-
- template <typename BaseGenerator, typename T1, typename T2>
- struct with_red_black_flag
- : public
- //[reference__with_red_black_flag__bases
- with_red_black_flag_base<
- with_red_black_flag<BaseGenerator,T1,T2>
- , BaseGenerator
- , T1
- , T2
- >
- //]
- {
- typedef with_red_black_flag_base<
- with_red_black_flag
- , BaseGenerator
- , T1
- , T2
- >
- super_t;
- typedef typename super_t::traits
- traits;
- typedef typename super_t::pointer
- pointer;
- typedef typename super_t::const_pointer
- const_pointer;
- typedef typename super_t::iterator
- iterator;
- typedef typename super_t::const_iterator
- const_iterator;
- typedef typename super_t::reverse_iterator
- reverse_iterator;
- typedef typename super_t::const_reverse_iterator
- const_reverse_iterator;
- typedef typename super_t::size_type
- size_type;
-
- BOOST_TREE_NODE_COPYABLE_AND_MOVABLE(with_red_black_flag, super_t)
-
-#if defined BOOST_CONTAINER_PERFECT_FORWARDING
- //[reference__with_red_black_flag__emplacement_ctor
- template <typename ...Args>
- explicit with_red_black_flag(Args&& ...args);
- //]
-
- //[reference__with_red_black_flag__emplacement_ctor_w_allocator
- template <typename ...Args>
- explicit with_red_black_flag(
- ::boost::container::allocator_arg_t
- , typename traits::allocator_reference allocator
- , Args&& ...args
- );
- //]
-#else // !defined BOOST_CONTAINER_PERFECT_FORWARDING
- BOOST_PP_REPEAT(
- BOOST_CONTAINER_MAX_CONSTRUCTOR_PARAMETERS
- , BOOST_TREE_NODE_EMPLACEMENT_CTOR_INLINE_DEF
- , (with_red_black_flag, super_t)
- )
-
- BOOST_PP_REPEAT(
- BOOST_CONTAINER_MAX_CONSTRUCTOR_PARAMETERS
- , BOOST_TREE_NODE_EMPLACEMENT_CTOR_W_ALLOC_INLINE_DEF
- , (with_red_black_flag, super_t)
- )
-#endif // BOOST_CONTAINER_PERFECT_FORWARDING
- };
-
-#if defined BOOST_CONTAINER_PERFECT_FORWARDING
- template <typename BaseGenerator, typename T1, typename T2>
- template <typename ...Args>
- inline with_red_black_flag<BaseGenerator,T1,T2>::with_red_black_flag(
- Args&& ...args
- ) : super_t(::boost::forward<Args>(args)...)
- {
- super_t::on_post_emplacement_construct();
- }
-
- template <typename BaseGenerator, typename T1, typename T2>
- template <typename ...Args>
- inline with_red_black_flag<BaseGenerator,T1,T2>::with_red_black_flag(
- ::boost::container::allocator_arg_t
- , typename traits::allocator_reference allocator
- , Args&& ...args
- ) : super_t(
- ::boost::container::allocator_arg
- , allocator
- , ::boost::forward<Args>(args)...
- )
- {
- super_t::on_post_emplacement_construct();
- }
-#endif // BOOST_CONTAINER_PERFECT_FORWARDING
-}} // namespace boost::tree_node
-
-//[reference__with_red_black_flag_gen
-namespace boost { namespace tree_node {
-
- template <typename BaseGenerator>
- struct with_red_black_flag_gen
- {
- template <typename T1, typename T2 = void>
- struct apply
- {
- typedef with_red_black_flag<BaseGenerator,T1,T2> type;
- };
- };
-}} // namespace boost::tree_node
-//]
-
-#include <boost/tree_node/_detail/config_end.hpp>
-
-#endif // BOOST_TREE_NODE_WITH_RED_BLACK_FLAG_HPP_INCLUDED
-

Deleted: sandbox/tree_node/boost/tree_node/with_red_black_flag_fwd.hpp
==============================================================================
--- sandbox/tree_node/boost/tree_node/with_red_black_flag_fwd.hpp 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84956)
+++ /dev/null 00:00:00 1970 (deleted)
@@ -1,140 +0,0 @@
-// 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)
-
-#ifndef BOOST_TREE_NODE_WITH_RED_BLACK_FLAG_FWD_HPP_INCLUDED
-#define BOOST_TREE_NODE_WITH_RED_BLACK_FLAG_FWD_HPP_INCLUDED
-
-#include <boost/config.hpp>
-#include <boost/tree_node/key/red_black_flag.hpp>
-
-#if !defined BOOST_NO_SFINAE
-#include <boost/utility/enable_if.hpp>
-#include <boost/tr1/type_traits.hpp>
-#endif
-
-namespace boost { namespace tree_node {
-
- template <
- typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- >
- class with_red_black_flag_base;
-
- template <typename BaseGenerator, typename T1, typename T2 = void>
- struct with_red_black_flag;
-}} // namespace boost::tree_node
-
-//[reference__with_red_black_flag_base__at_red_flag_key
-namespace boost { namespace tree_node {
-
- template <
- typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- >
- bool
- get(
- with_red_black_flag_base<Derived,BaseGenerator,T1,T2> const& node
- , red_flag_key const& key
- );
-
-//<-
-#if !defined BOOST_NO_SFINAE
-//->
- template <
- typename Key
- , typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- >
- typename ::boost::enable_if<
- ::std::tr1::is_same<Key,red_flag_key>
- , bool
- >::type
- get(with_red_black_flag_base<Derived,BaseGenerator,T1,T2> const& node);
-//<-
-#endif
-//->
-}} // namespace boost::tree_node
-//]
-
-//[reference__with_red_black_flag_base__at_black_flag_key
-namespace boost { namespace tree_node {
-
- template <
- typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- >
- bool
- get(
- with_red_black_flag_base<Derived,BaseGenerator,T1,T2> const& node
- , black_flag_key const& key
- );
-
-//<-
-#if !defined BOOST_NO_SFINAE
-//->
- template <
- typename Key
- , typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- >
- typename ::boost::enable_if<
- ::std::tr1::is_same<Key,black_flag_key>
- , bool
- >::type
- get(with_red_black_flag_base<Derived,BaseGenerator,T1,T2> const& node);
-//<-
-#endif
-//->
-}} // namespace boost::tree_node
-//]
-
-//[reference__with_red_black_flag_base__put__red
-namespace boost { namespace tree_node {
-
- template <
- typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- >
- void
- put(
- with_red_black_flag_base<Derived,BaseGenerator,T1,T2>& node
- , red_flag_key const& key
- , bool value
- );
-}} // namespace boost::tree_node
-//]
-
-//[reference__with_red_black_flag_base__put__black
-namespace boost { namespace tree_node {
-
- template <
- typename Derived
- , typename BaseGenerator
- , typename T1
- , typename T2
- >
- void
- put(
- with_red_black_flag_base<Derived,BaseGenerator,T1,T2>& node
- , black_flag_key const& key
- , bool value
- );
-}} // namespace boost::tree_node
-//]
-
-#endif // BOOST_TREE_NODE_WITH_RED_BLACK_FLAG_FWD_HPP_INCLUDED
-

Deleted: sandbox/tree_node/libs/tree_node/example/assoc_iterator_functions.hpp
==============================================================================
--- sandbox/tree_node/libs/tree_node/example/assoc_iterator_functions.hpp 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84956)
+++ /dev/null 00:00:00 1970 (deleted)
@@ -1,83 +0,0 @@
-// 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)
-
-#ifndef LIBS_TREE_NODE_EXAMPLE_ASSOC_ITERATOR_FUNCTIONS_HPP_INCLUDED
-#define LIBS_TREE_NODE_EXAMPLE_ASSOC_ITERATOR_FUNCTIONS_HPP_INCLUDED
-
-#include <iostream>
-#include <boost/tree_node/traversal_state.hpp>
-#include <boost/tree_node/iterator/breadth_first_descendant.hpp>
-#include <boost/tree_node/iterator/pre_order_descendant.hpp>
-#include <boost/tree_node/iterator/post_order_descendant.hpp>
-#include <boost/tree_node/iterator/depth_first_descendant.hpp>
-#include <boost/tree_node/iterator/dereference.hpp>
-
-template <typename NodeIterator, typename Function>
-void associative_iterator_out(NodeIterator itr, Function f, unsigned int n)
-{
- for (unsigned int i = 0; itr; ++itr)
- {
- if (!i)
- {
- std::cout << std::endl << " ";
- }
-
- f(itr->first, boost::tree_node::dereference_iterator(itr));
-
- if (++i == n)
- {
- i = 0;
- }
- }
-}
-
-template <typename NodeIterator, typename Function>
-void associative_iterator_out(NodeIterator itr, Function f, char const* text)
-{
- for (std::cout << ';' << std::endl << text; itr; ++itr)
- {
- f(
- itr->first
- , boost::tree_node::dereference_iterator(itr)
- , boost::tree_node::traversal_state(itr)
- );
- }
-}
-
-template <typename Node, typename Function>
-void associative_out_bf_pre_post(Node const& node, Function f, unsigned int n)
-{
- std::cout << ';' << std::endl << " emplacer[bf_d_vals]";
- associative_iterator_out(
- boost::tree_node::make_breadth_first_descendant_iterator(node)
- , f
- , n
- );
- std::cout << ';' << std::endl << " emplacer[pre_d_vals]";
- associative_iterator_out(
- boost::tree_node::make_pre_order_descendant_iterator(node)
- , f
- , n
- );
- std::cout << ';' << std::endl << " emplacer[post_d_vals]";
- associative_iterator_out(
- boost::tree_node::make_post_order_descendant_iterator(node)
- , f
- , n
- );
-}
-
-template <typename Node, typename Function>
-void associative_out_df(Node const& node, Function f)
-{
- associative_iterator_out(
- boost::tree_node::make_depth_first_descendant_iterator(node)
- , f
- , " emplacer[df_d_vals]"
- );
-}
-
-#endif // LIBS_TREE_NODE_EXAMPLE_ASSOC_ITERATOR_FUNCTIONS_HPP_INCLUDED
-

Deleted: sandbox/tree_node/libs/tree_node/example/associative_node.cpp
==============================================================================
--- sandbox/tree_node/libs/tree_node/example/associative_node.cpp 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84956)
+++ /dev/null 00:00:00 1970 (deleted)
@@ -1,920 +0,0 @@
-// 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)
-
-#include <iostream>
-#include <boost/config.hpp>
-#include <boost/range/begin.hpp>
-#include <boost/container_gen/is_unique_assoc_selector.hpp>
-#include <boost/typeof/boost/rational.hpp>
-#include <boost/typeof/boost/tree_node/associative_node.hpp>
-#include <boost/typeof/boost/tree_node/with_count.hpp>
-#include <boost/typeof/boost/tree_node/with_height.hpp>
-#include <boost/typeof/boost/tree_node/with_position.hpp>
-#include <boost/tree_node/iterator/breadth_first.hpp>
-#include <boost/tree_node/iterator/breadth_first_descendant.hpp>
-#include <boost/tree_node/iterator/pre_order.hpp>
-#include <boost/tree_node/iterator/post_order.hpp>
-#include <boost/tree_node/iterator/depth_first.hpp>
-#include <boost/tree_node/iterator/dereference.hpp>
-#include <boost/tree_node/preprocessor.hpp>
-
-#if defined BOOST_TREE_NODE_CAN_USE_FUSION
-#include <boost/typeof/boost/tree_node/with_accumulation.hpp>
-#endif
-
-#include "type_definitions.hpp"
-#include "output_preamble.hpp"
-#include "output_functions.hpp"
-#include "iterator_functions.hpp"
-#include "assoc_iterator_functions.hpp"
-
-char const* names[] = {"able", "baker", "chuck", "dog", "easy", "fox"};
-
-template <typename Node>
-void initialize(Node& root)
-{
- for (boost::tree_node::breadth_first_iterator<Node> itr(root); itr; ++itr)
- {
- typename Node::traits::data_type const& data = get(
- *itr
- , boost::tree_node::data_key()
- );
-
- if (1 < data)
- {
- for (std::size_t i = 0; i < data; ++i)
- {
- for (std::size_t j = 0; j + i < data; ++j)
- {
- itr->emplace(names[j], i);
- }
- }
- }
- }
-}
-
-#if defined BOOST_TREE_NODE_CAN_USE_FUSION
-template <typename DNode, typename ANode>
-void out_with_them(DNode const& d_node, ANode const& a_node)
-{
- std::cout << std::endl << "#if defined BOOST_TREE_NODE_CAN_USE_FUSION";
- iterator_out_bf_pre_post(a_node, output_node<boost::mpl::true_>(), 1);
- associative_out_bf_pre_post(a_node, output_node<boost::mpl::true_>(), 1);
- associative_out_df(a_node, output_tree<boost::mpl::true_>(4, 9, false));
- iterator_out_df(a_node, output_tree<boost::mpl::true_>(4, 9, false));
- std::cout << "#else // !defined BOOST_TREE_NODE_CAN_USE_FUSION";
- iterator_out_bf_pre_post(d_node, output_node<boost::mpl::false_>(), 6);
- associative_out_bf_pre_post(d_node, output_node<boost::mpl::false_>(), 3);
- associative_out_df(d_node, output_tree<boost::mpl::false_>(2, 5, true));
- iterator_out_df(d_node, output_tree<boost::mpl::false_>(2, 7, true));
- std::cout << "#endif // BOOST_NO_SFINAE" << std::endl;
-}
-#else // !defined BOOST_TREE_NODE_CAN_USE_FUSION
-template <typename DNode>
-void out_with_it(DNode const& d_node)
-{
- iterator_out_bf_pre_post(d_node, output_node<boost::mpl::false_>(), 6);
- associative_out_bf_pre_post(d_node, output_node<boost::mpl::false_>(), 3);
- associative_out_df(d_node, output_tree<boost::mpl::false_>(2, 5, true));
- iterator_out_df(d_node, output_tree<boost::mpl::false_>(2, 7, true));
-}
-#endif // BOOST_TREE_NODE_CAN_USE_FUSION
-
-#if defined BOOST_TREE_NODE_CAN_USE_FUSION_WITH_TYPEOF
-template <typename FNode>
-void out_with_all(FNode const& f_node)
-{
- iterator_out_bf_pre_post(f_node, output_uint_char_node(), 5);
- associative_out_bf_pre_post(f_node, output_uint_char_node(), 3);
- associative_out_df(f_node, output_uint_char_tree(4, 9, false));
- iterator_out_df(f_node, output_uint_char_tree(4, 9, false));
-}
-#endif
-
-template <typename Selector>
-void output_driver()
-{
- typedef boost::tree_node::with_height<
- boost::tree_node::with_position_base_gen<
- boost::tree_node::with_count_base_gen<
- boost::tree_node::associative_node_base_gen<Selector>
- >
- >
- , char const*
- , boost::rational<long>
- >
- DNode;
-
- DNode d_root(5);
-
- initialize(d_root);
-
-#if defined BOOST_TREE_NODE_CAN_USE_FUSION
- typedef boost::tree_node::with_accumulation<
- boost::tree_node::with_height_base_gen<
- boost::tree_node::with_accumulation_base_gen<
- boost::tree_node::with_position_base_gen<
- boost::tree_node::with_accumulation_base_gen<
- boost::tree_node::with_count_base_gen<
- boost::tree_node::with_accumulation_base_gen<
- boost::tree_node::associative_node_base_gen<Selector>
- >
- >
- , AccuAccuKey
- >
- >
- , AccuCountKey
- >
- >
- , char const*
- , boost::rational<long>
- , AccuHeightKey
- >
- ANode;
-
- ANode a_root(5);
-
- initialize(a_root);
-#endif // BOOST_TREE_NODE_CAN_USE_FUSION
-
- std::cout << std::endl << "template <typename Selector>";
- std::cout << std::endl << (
- boost::is_unique_associative_selector<Selector>::value
- ? "void test_unique_associative()"
- : "void test_multiple_associative()"
- ) << std::endl << '{' << std::endl;
-#if defined BOOST_TREE_NODE_CAN_USE_FUSION
- std::cout << "#if defined BOOST_TREE_NODE_CAN_USE_FUSION" << std::endl << (
- " typedef boost::tree_node::with_accumulation<"
- ) << std::endl << " boost::tree_node::with_height_base_gen<";
- std::cout << std::endl << (
- " boost::tree_node::with_accumulation_base_gen<"
- ) << std::endl << (
- " boost::tree_node::with_position_base_gen<"
- ) << std::endl << (
- " boost::tree_node::with_accumulation_base_gen<"
- ) << std::endl << (
- " boost::tree_node::with_count_base_gen<"
- ) << std::endl << " boost";
- std::cout << "::tree_node::with_accumulation_base_gen<" << std::endl << (
- " boost::tree_node::associative_node_base_gen"
- ) << "<Selector>" << std::endl << " >" << std::endl;
- std::cout << " >" << std::endl;
- std::cout << " , AccuAccuKey" << std::endl;
- std::cout << " >" << std::endl;
- std::cout << " >" << std::endl;
- std::cout << " , AccuCountKey" << std::endl;
- std::cout << " >" << std::endl;
- std::cout << " >" << std::endl;
- std::cout << " , char const*" << std::endl;
- std::cout << " , boost::rational<long>" << std::endl;
- std::cout << " , AccuHeightKey" << std::endl << " >";
- std::cout << std::endl << " ANode;" << std::endl << (
- "#else // !defined BOOST_TREE_NODE_CAN_USE_FUSION"
- ) << std::endl;
-#endif // BOOST_NO_SFINAE
- std::cout << " typedef boost::tree_node::with_height<" << std::endl << (
- " boost::tree_node::with_position_base_gen<"
- ) << std::endl << (
- " boost::tree_node::with_count_base_gen<"
- ) << std::endl << " ";
- std::cout << "boost::tree_node::associative_node_base_gen<Selector>";
- std::cout << std::endl << " >" << std::endl;
- std::cout << " >" << std::endl;
- std::cout << " , char const*" << std::endl;
- std::cout << " , boost::rational<long>" << std::endl;
- std::cout << " >" << std::endl;
- std::cout << " ANode;" << std::endl;
-#if defined BOOST_TREE_NODE_CAN_USE_FUSION
- std::cout << "#endif // BOOST_TREE_NODE_CAN_USE_FUSION" << std::endl;
-#endif
- output_container_type_preamble();
- std::cout << " typedef typename boost::container_gen<" << std::endl;
- std::cout << " boost::dequeS" << std::endl;
- std::cout << " , boost::tuples::tuple<" << std::endl;
- std::cout << " typename ANode::traits::key_type";
- std::cout << std::endl << (
- " , typename boost::tree_node::result_of::value_at_"
- ) << "key<" << std::endl;
- std::cout << " ANode const" << std::endl;
- std::cout << " , boost::tree_node::data_key";
- std::cout << std::endl << " >::type" << std::endl << (
- " , typename boost::tree_node::result_of::value_at_"
- ) << "key<" << std::endl;
- std::cout << " ANode const" << std::endl;
- std::cout << " , boost::tree_node::height_key";
- std::cout << std::endl << " >::type" << std::endl << (
- " , typename boost::tree_node::result_of::value_at_"
- ) << "key<" << std::endl;
- std::cout << " ANode const" << std::endl;
- std::cout << " , boost::tree_node::count_key";
- std::cout << std::endl << " >::type" << std::endl;
- std::cout << "#if defined BOOST_TREE_NODE_CAN_USE_FUSION" << std::endl << (
- " , typename boost::tree_node::result_of::value_at_"
- ) << "key<" << std::endl;
- std::cout << " ANode const" << std::endl << (
- " , boost::tree_node::accumulation_key<>"
- ) << std::endl << " >::type" << std::endl << (
- " , typename boost::tree_node::result_of::value_at_"
- ) << "key<" << std::endl;
- std::cout << " ANode const" << std::endl;
- std::cout << " , AccuHeightKey" << std::endl;
- std::cout << " >::type" << std::endl << (
- " , typename boost::tree_node::result_of::value_at_"
- ) << "key<" << std::endl;
- std::cout << " ANode const" << std::endl;
- std::cout << " , AccuCountKey" << std::endl;
- std::cout << " >::type" << std::endl << (
- " , typename boost::tree_node::result_of::value_at_"
- ) << "key<" << std::endl;
- std::cout << " ANode const" << std::endl;
- std::cout << " , AccuAccuKey" << std::endl;
- std::cout << " >::type" << std::endl;
- std::cout << "#endif // BOOST_TREE_NODE_CAN_USE_FUSION" << std::endl;
- std::cout << " >" << std::endl << " >::type";
- std::cout << std::endl << " KeyValues;" << std::endl;
- std::cout << " typedef typename boost::container_gen<" << std::endl;
- std::cout << " boost::dequeS" << std::endl;
- std::cout << " , boost::tuples::tuple<" << std::endl;
- std::cout << " boost::tree_node::traversal_state";
- std::cout << std::endl << (
- " , typename ANode::traits::key_type"
- ) << std::endl << (
- " , typename boost::tree_node::result_of::value_at_"
- ) << "key<" << std::endl;
- std::cout << " ANode const" << std::endl;
- std::cout << " , boost::tree_node::data_key";
- std::cout << std::endl << " >::type" << std::endl << (
- " , typename boost::tree_node::result_of::value_at_"
- ) << "key<" << std::endl;
- std::cout << " ANode const" << std::endl;
- std::cout << " , boost::tree_node::height_key";
- std::cout << std::endl << " >::type" << std::endl << (
- " , typename boost::tree_node::result_of::value_at_"
- ) << "key<" << std::endl;
- std::cout << " ANode const" << std::endl;
- std::cout << " , boost::tree_node::count_key";
- std::cout << std::endl << " >::type" << std::endl;
- std::cout << "#if defined BOOST_TREE_NODE_CAN_USE_FUSION" << std::endl << (
- " , typename boost::tree_node::result_of::value_at_"
- ) << "key<" << std::endl;
- std::cout << " ANode const" << std::endl << (
- " , boost::tree_node::accumulation_key<>"
- ) << std::endl << " >::type" << std::endl << (
- " , typename boost::tree_node::result_of::value_at_"
- ) << "key<" << std::endl;
- std::cout << " ANode const" << std::endl;
- std::cout << " , AccuHeightKey" << std::endl;
- std::cout << " >::type" << std::endl << (
- " , typename boost::tree_node::result_of::value_at_"
- ) << "key<" << std::endl;
- std::cout << " ANode const" << std::endl;
- std::cout << " , AccuCountKey" << std::endl;
- std::cout << " >::type" << std::endl << (
- " , typename boost::tree_node::result_of::value_at_"
- ) << "key<" << std::endl;
- std::cout << " ANode const" << std::endl;
- std::cout << " , AccuAccuKey" << std::endl;
- std::cout << " >::type" << std::endl;
- std::cout << "#endif // BOOST_TREE_NODE_CAN_USE_FUSION" << std::endl;
- std::cout << " >" << std::endl << " >::type";
- std::cout << std::endl << " DFKeyValues;" << std::endl;
- std::cout << std::endl << " ANode a_root(5);" << std::endl;
- std::cout << std::endl << " BOOST_CHECK(" << std::endl;
- std::cout << " !a_root.get_parent_ptr()" << std::endl;
- std::cout << "// , \"Parent member uninitialized.\"" << std::endl;
- std::cout << " );" << std::endl << std::endl;
- std::cout << " initialize<Selector>(a_root);" << std::endl << std::endl;
- std::cout << " {" << std::endl;
- std::cout << " Values bf_vals, pre_vals, post_vals;" << std::endl;
- std::cout << " KeyValues bf_d_vals, pre_d_vals, post_d_vals;";
- std::cout << std::endl << " DFValues df_vals;" << std::endl;
- std::cout << " DFKeyValues df_d_vals;" << std::endl;
- std::cout << " Emplacer emplacer;" << std::endl;
-#if defined BOOST_TREE_NODE_CAN_USE_FUSION
- out_with_them(d_root, a_root);
-#else
- out_with_it(d_root);
-#endif
- std::cout << " test_associative_node<a_node_case>(" << std::endl;
- std::cout << " a_root" << std::endl;
- std::cout << " , bf_vals" << std::endl;
- std::cout << " , bf_d_vals" << std::endl;
- std::cout << " , pre_vals" << std::endl;
- std::cout << " , pre_d_vals" << std::endl;
- std::cout << " , post_vals" << std::endl;
- std::cout << " , post_d_vals" << std::endl;
- std::cout << " , df_vals" << std::endl;
- std::cout << " , df_d_vals" << std::endl;
- std::cout << " );" << std::endl << " }" << std::endl;
-
- {
- typename DNode::iterator d_child_itr(
- boost::tree_node::dereference_iterator(
- d_root.find(names[2])
- ).insert(names[5], d_root)
- );
-#if defined BOOST_TREE_NODE_CAN_USE_FUSION
- typename ANode::iterator a_child_itr(
- boost::tree_node::dereference_iterator(
- a_root.find(names[2])
- ).insert(names[5], a_root)
- );
-#endif
-
- std::cout << std::endl << " {" << std::endl;
- std::cout << " ANode a_copy(a_root);" << std::endl << (
- " boost::tree_node::breadth_first_iterator<ANode const>"
- ) << std::endl << (
- " bf_root_itr(a_root), bf_copy_itr(a_copy);"
- ) << std::endl << " boost::tree_node::breadth_first";
- std::cout << "_descendant_iterator<ANode const>" << std::endl << (
- " bf_d_root_itr(a_root), bf_d_copy_itr(a_copy);"
- ) << std::endl << (
- " boost::tree_node::pre_order_iterator<ANode const>"
- ) << std::endl << (
- " pre_root_itr(a_root), pre_copy_itr(a_copy);"
- ) << std::endl << " boost::tree_node::pre_order";
- std::cout << "_descendant_iterator<ANode const>" << std::endl << (
- " pre_d_root_itr(a_root), pre_d_copy_itr(a_copy);"
- ) << std::endl << (
- " boost::tree_node::post_order_iterator<ANode const>"
- ) << std::endl << (
- " post_root_itr(a_root), post_copy_itr(a_copy);"
- ) << std::endl << " boost::tree_node::post_order";
- std::cout << "_descendant_iterator<ANode const>" << std::endl << (
- " post_d_root_itr(a_root), post_d_copy_itr(a_copy);"
- ) << std::endl << (
- " boost::tree_node::depth_first_iterator<ANode const>"
- ) << std::endl << (
- " df_root_itr(a_root), df_copy_itr(a_copy);"
- ) << std::endl << " boost::tree_node::depth_first";
- std::cout << "_descendant_iterator<ANode const>" << std::endl << (
- " df_d_root_itr(a_root), df_d_copy_itr(a_copy);"
- ) << std::endl << std::endl << " BOOST_CHECK(" << (
- "test_node_copies(bf_root_itr, bf_copy_itr));"
- ) << std::endl << " BOOST_CHECK(" << std::endl << " " << (
- " test_associative_node_copies(bf_d_root_itr, bf_d_copy_itr)"
- ) << std::endl << " );" << std::endl << " " << (
- "BOOST_CHECK(test_node_copies(pre_root_itr, pre_copy_itr));"
- ) << std::endl << " BOOST_CHECK(" << std::endl << " " << (
- " test_associative_node_copies(pre_d_root_itr, pre_d_copy_itr)"
- ) << std::endl << " );" << std::endl << " " << (
- "BOOST_CHECK(test_node_copies(post_root_itr, post_copy_itr));"
- ) << std::endl << " BOOST_CHECK(" << std::endl << " " << (
- " test_associative_node_copies(post_d_root_itr, post_d_copy_it"
- ) << "r)" << std::endl << " );" << std::endl << " " << (
- "BOOST_CHECK(test_node_copies(df_root_itr, df_copy_itr));"
- ) << std::endl << " BOOST_CHECK(" << std::endl << " " << (
- " test_associative_node_copies(df_d_root_itr, df_d_copy_itr)"
- ) << std::endl << " );" << std::endl << " }" << std::endl;
- std::cout << std::endl << " {" << std::endl << (
- " typename ANode::iterator a_child_itr("
- ) << std::endl << " boost::tree_node::dereference_iterator(";
- std::cout << std::endl << " a_root.find(names[2])";
- std::cout << std::endl << " ).insert(names[5], a_root)";
- std::cout << std::endl << " );" << std::endl << (
- " Values bf_vals, pre_vals, post_vals;"
- ) << std::endl;
- std::cout << " KeyValues bf_d_vals, pre_d_vals, post_d_vals;";
- std::cout << std::endl << " DFValues df_vals;" << std::endl;
- std::cout << " DFKeyValues df_d_vals;" << std::endl;
- std::cout << " Emplacer emplacer;" << std::endl;
-#if defined BOOST_TREE_NODE_CAN_USE_FUSION
- out_with_them(d_root, a_root);
-#else
- out_with_it(d_root);
-#endif
- std::cout << " test_associative_node<a_node_case>(";
- std::cout << std::endl << " a_root" << std::endl;
- std::cout << " , bf_vals" << std::endl;
- std::cout << " , bf_d_vals" << std::endl;
- std::cout << " , pre_vals" << std::endl;
- std::cout << " , pre_d_vals" << std::endl;
- std::cout << " , post_vals" << std::endl;
- std::cout << " , post_d_vals" << std::endl;
- std::cout << " , df_vals" << std::endl;
- std::cout << " , df_d_vals" << std::endl;
- std::cout << " );" << std::endl << std::endl;
-
- d_root = boost::tree_node::dereference_iterator(d_child_itr);
-#if defined BOOST_TREE_NODE_CAN_USE_FUSION
- a_root = boost::tree_node::dereference_iterator(a_child_itr);
-#endif
- std::cout << " a_root = boost::tree_node::";
- std::cout << "dereference_iterator(a_child_itr);" << std::endl;
- std::cout << " bf_vals.clear();" << std::endl;
- std::cout << " bf_d_vals.clear();" << std::endl;
- std::cout << " pre_vals.clear();" << std::endl;
- std::cout << " pre_d_vals.clear();" << std::endl;
- std::cout << " post_vals.clear();" << std::endl;
- std::cout << " post_d_vals.clear();" << std::endl;
- std::cout << " df_vals.clear();" << std::endl;
- std::cout << " df_d_vals.clear();" << std::endl;
-#if defined BOOST_TREE_NODE_CAN_USE_FUSION
- out_with_them(d_root, a_root);
-#else
- out_with_it(d_root);
-#endif
- std::cout << " test_associative_node<a_node_case>(";
- std::cout << std::endl << " a_root" << std::endl;
- std::cout << " , bf_vals" << std::endl;
- std::cout << " , bf_d_vals" << std::endl;
- std::cout << " , pre_vals" << std::endl;
- std::cout << " , pre_d_vals" << std::endl;
- std::cout << " , post_vals" << std::endl;
- std::cout << " , post_d_vals" << std::endl;
- std::cout << " , df_vals" << std::endl;
- std::cout << " , df_d_vals" << std::endl;
- std::cout << " );" << std::endl << std::endl;
-
- if (boost::is_unique_associative_selector<Selector>::value)
- {
- boost::tree_node::dereference_iterator(
- d_child_itr = d_root.find(names[2])
- ) = d_root;
-#if defined BOOST_TREE_NODE_CAN_USE_FUSION
- boost::tree_node::dereference_iterator(
- a_child_itr = a_root.find(names[2])
- ) = a_root;
-#endif
- std::cout << " a_child_itr = a_root.find(names[2]);";
- std::cout << std::endl;
- }
- else
- {
- d_child_itr = boost::begin(d_root.equal_range(names[2]));
-
- while (boost::tree_node::dereference_iterator(d_child_itr).empty())
- {
- ++d_child_itr;
- }
-
- d_child_itr = boost::begin(
- boost::tree_node::dereference_iterator(
- d_child_itr
- ).equal_range(names[1])
- );
- boost::tree_node::dereference_iterator(d_child_itr) = d_root;
-#if defined BOOST_TREE_NODE_CAN_USE_FUSION
- a_child_itr = boost::begin(a_root.equal_range(names[2]));
-
- while (boost::tree_node::dereference_iterator(a_child_itr).empty())
- {
- ++a_child_itr;
- }
-
- a_child_itr = boost::begin(
- boost::tree_node::dereference_iterator(
- a_child_itr
- ).equal_range(names[1])
- );
- boost::tree_node::dereference_iterator(a_child_itr) = a_root;
-#endif // BOOST_TREE_NODE_CAN_USE_FUSION
- std::cout << " a_child_itr = boost::begin(a_root.equal";
- std::cout << "_range(names[2]));" << std::endl << std::endl << (
- " while (boost::tree_node::dereference_iterator(a_"
- ) << "child_itr).empty())" << std::endl << " {";
- std::cout << std::endl << " ++a_child_itr;";
- std::cout << std::endl << " }" << std::endl;
- std::cout << std::endl << (
- " a_child_itr = boost::begin("
- ) << std::endl << (
- " boost::tree_node::dereference_iterator("
- ) << std::endl << " a_child_itr" << std::endl;
- std::cout << " ).equal_range(names[1])";
- std::cout << std::endl << " );" << std::endl;
- }
-
- std::cout << " boost::tree_node::dereference_iterator";
- std::cout << "(a_child_itr) = a_root;" << std::endl;
- std::cout << " test_associative_node<a_node_case>(";
- std::cout << std::endl << (
- " boost::tree_node::dereference_iterator(a_child_itr)"
- ) << std::endl << " , bf_vals" << std::endl;
- std::cout << " , bf_d_vals" << std::endl;
- std::cout << " , pre_vals" << std::endl;
- std::cout << " , pre_d_vals" << std::endl;
- std::cout << " , post_vals" << std::endl;
- std::cout << " , post_d_vals" << std::endl;
- std::cout << " , df_vals" << std::endl;
- std::cout << " , df_d_vals" << std::endl;
- std::cout << " );" << std::endl << std::endl;
- std::cout << " bf_vals.clear();" << std::endl;
- std::cout << " bf_d_vals.clear();" << std::endl;
- std::cout << " pre_vals.clear();" << std::endl;
- std::cout << " pre_d_vals.clear();" << std::endl;
- std::cout << " post_vals.clear();" << std::endl;
- std::cout << " post_d_vals.clear();" << std::endl;
- std::cout << " df_vals.clear();" << std::endl;
- std::cout << " df_d_vals.clear();" << std::endl;
-#if defined BOOST_TREE_NODE_CAN_USE_FUSION
- out_with_them(d_root, a_root);
-#else
- out_with_it(d_root);
-#endif
- std::cout << " test_associative_node<a_node_case>(";
- std::cout << std::endl << " a_root" << std::endl;
- std::cout << " , bf_vals" << std::endl;
- std::cout << " , bf_d_vals" << std::endl;
- std::cout << " , pre_vals" << std::endl;
- std::cout << " , pre_d_vals" << std::endl;
- std::cout << " , post_vals" << std::endl;
- std::cout << " , post_d_vals" << std::endl;
- std::cout << " , df_vals" << std::endl;
- std::cout << " , df_d_vals" << std::endl << " );";
- std::cout << std::endl << " BOOST_CHECK(" << std::endl << (
- " boost::tree_node::dereference_iterator("
- ) << std::endl << " a_child_itr" << std::endl;
- std::cout << " ).erase(names[1]) == ";
- std::cout << boost::tree_node::dereference_iterator(
- d_child_itr
- ).erase(names[1]) << std::endl << " );" << std::endl;
-#if defined BOOST_TREE_NODE_CAN_USE_FUSION
- boost::tree_node::dereference_iterator(a_child_itr).erase(names[1]);
-#endif
- std::cout << " bf_vals.clear();" << std::endl;
- std::cout << " bf_d_vals.clear();" << std::endl;
- std::cout << " pre_vals.clear();" << std::endl;
- std::cout << " pre_d_vals.clear();" << std::endl;
- std::cout << " post_vals.clear();" << std::endl;
- std::cout << " post_d_vals.clear();" << std::endl;
- std::cout << " df_vals.clear();" << std::endl;
- std::cout << " df_d_vals.clear();" << std::endl;
-#if defined BOOST_TREE_NODE_CAN_USE_FUSION
- out_with_them(d_root, a_root);
-#else
- out_with_it(d_root);
-#endif
- std::cout << " test_associative_node<a_node_case>(";
- std::cout << std::endl << " a_root" << std::endl;
- std::cout << " , bf_vals" << std::endl;
- std::cout << " , bf_d_vals" << std::endl;
- std::cout << " , pre_vals" << std::endl;
- std::cout << " , pre_d_vals" << std::endl;
- std::cout << " , post_vals" << std::endl;
- std::cout << " , post_d_vals" << std::endl;
- std::cout << " , df_vals" << std::endl;
- std::cout << " , df_d_vals" << std::endl << " );";
- }
-
- std::cout << std::endl << " }";
-
-#if defined BOOST_TREE_NODE_CAN_USE_FUSION_WITH_TYPEOF
- typedef boost::tree_node::with_accumulation<
- boost::tree_node::associative_node_base_gen<Selector>
- , char const*
- , DataMap
- , AccuYourUintKey
- >
- FNode;
-
- FNode f_root(
- boost::fusion::make_pair<example_keys::your_uint>(5)
- , boost::fusion::make_pair<example_keys::your_char>('5')
- );
-
- for (
- boost::tree_node::breadth_first_iterator<FNode> itr(f_root);
- itr;
- ++itr
- )
- {
- typename boost::tree_node::result_of::value_at_key<
- FNode const
- , example_keys::your_uint
- >::type data = boost::tree_node::get<
- example_keys::your_uint
- >(boost::tree_node::dereference_iterator(itr));
-
- if (1 < data)
- {
- for (unsigned int i = 0; i < data; ++i)
- {
- for (std::size_t j = 0; j + i < data; ++j)
- {
- itr->emplace(
- names[j]
- , boost::fusion::make_pair<example_keys::your_uint>(i)
- , boost::fusion::make_pair<example_keys::your_char>(
- '0' + i
- )
- );
- }
- }
- }
- }
-
- std::cout << std::endl << std::endl << (
- "#if defined BOOST_TREE_NODE_CAN_USE_FUSION_WITH_TYPEOF"
- ) << std::endl << " typedef boost::tree_node::with_accumulation<";
- std::cout << std::endl << (
- " boost::tree_node::associative_node_base_gen<Selector>"
- ) << std::endl << " , char const*" << std::endl;
- std::cout << " , DataMap" << std::endl;
- std::cout << " , AccuYourUintKey" << std::endl;
- std::cout << " >" << std::endl << " FNode;";
- output_container_fused_type_preamble();
- std::cout << " typedef typename boost::container_gen<" << std::endl;
- std::cout << " boost::dequeS" << std::endl;
- std::cout << " , boost::tuples::tuple<" << std::endl << (
- " typename FNode::traits::key_type"
- ) << std::endl << (
- " , typename boost::tree_node::result_of::value_at_"
- ) << "key<" << std::endl << " FNode const";
- std::cout << std::endl << (
- " , example_keys::your_uint"
- ) << std::endl << " >::type" << std::endl << (
- " , typename boost::tree_node::result_of::value_at_"
- ) << "key<" << std::endl << " FNode const";
- std::cout << std::endl << (
- " , example_keys::your_char"
- ) << std::endl << " >::type" << std::endl << (
- " , typename boost::tree_node::result_of::value_at_"
- ) << "key<" << std::endl << " FNode const";
- std::cout << std::endl << (
- " , AccuYourUintKey"
- ) << std::endl << " >::type" << std::endl;
- std::cout << " >" << std::endl << " >::type";
- std::cout << std::endl << " MoreKeyValues;" << std::endl;
- std::cout << " typedef typename boost::container_gen<" << std::endl;
- std::cout << " boost::dequeS" << std::endl;
- std::cout << " , boost::tuples::tuple<" << std::endl;
- std::cout << " boost::tree_node::traversal_state";
- std::cout << std::endl << (
- " , typename FNode::traits::key_type"
- ) << std::endl << (
- " , typename boost::tree_node::result_of::value_at_"
- ) << "key<" << std::endl << " FNode const";
- std::cout << std::endl << (
- " , example_keys::your_uint"
- ) << std::endl << " >::type" << std::endl << (
- " , typename boost::tree_node::result_of::value_at_"
- ) << "key<" << std::endl << " FNode const";
- std::cout << std::endl << (
- " , example_keys::your_char"
- ) << std::endl << " >::type" << std::endl << (
- " , typename boost::tree_node::result_of::value_at_"
- ) << "key<" << std::endl << " FNode const";
- std::cout << std::endl << (
- " , AccuYourUintKey"
- ) << std::endl << " >::type" << std::endl;
- std::cout << " >" << std::endl << " >::type";
- std::cout << std::endl << " DFMoreKeyValues;" << std::endl;
- std::cout << std::endl << " FNode f_root(" << std::endl << (
- " boost::fusion::make_pair<example_keys::your_uint>(5)"
- ) << std::endl << (
- " , boost::fusion::make_pair<example_keys::your_char>(\'5\')"
- ) << std::endl << " );" << std::endl << std::endl;
- std::cout << " for (" << std::endl << (
- " boost::tree_node::breadth_first_iterator<FNode> itr(f_root);"
- ) << std::endl << " itr;" << std::endl << " ++itr";
- std::cout << std::endl << " )" << std::endl << " {" << std::endl;
- std::cout << " typename boost::tree_node::result_of::value_at_key<";
- std::cout << std::endl << " FNode const" << std::endl;
- std::cout << " , example_keys::your_uint" << std::endl;
- std::cout << " >::type data = boost::tree_node::get<" << std::endl;
- std::cout << " example_keys::your_uint" << std::endl << (
- " >(boost::tree_node::dereference_iterator(itr));"
- ) << std::endl << std::endl << " if (1 < data)" << std::endl;
- std::cout << " {" << std::endl;
- std::cout << " for (unsigned int i = 0; i < data; ++i)";
- std::cout << std::endl << " {" << std::endl << (
- " for (std::size_t j = 0; j + i < data; ++j)"
- ) << std::endl << " {" << std::endl;
- std::cout << " itr->emplace(" << std::endl;
- std::cout << " names[j]" << std::endl << (
- " , boost::fusion::make_pair<example_keys::your_"
- ) << "uint>(i)" << std::endl << " " << (
- ", boost::fusion::make_pair<example_keys::your_char>("
- ) << std::endl << " '0' + i" << std::endl;
- std::cout << " )" << std::endl;
- std::cout << " );" << std::endl << " }";
- std::cout << std::endl << " }" << std::endl << " }";
- std::cout << std::endl << " }" << std::endl;
- std::cout << std::endl << " {" << std::endl;
- std::cout << " MoreValues bf_vals, pre_vals, post_vals;";
- std::cout << std::endl << (
- " MoreKeyValues bf_d_vals, pre_d_vals, post_d_vals;"
- ) << std::endl << " DFMoreKeyValues df_d_vals;" << std::endl;
- std::cout << " DFMoreValues df_vals;" << std::endl;
- std::cout << " Emplacer emplacer;" << std::endl;
- out_with_all(f_root);
- std::cout << " test_associative_node<f_node_case>(" << std::endl;
- std::cout << " f_root" << std::endl << " , bf_vals";
- std::cout << std::endl << " , bf_d_vals" << std::endl;
- std::cout << " , pre_vals" << std::endl;
- std::cout << " , pre_d_vals" << std::endl;
- std::cout << " , post_vals" << std::endl;
- std::cout << " , post_d_vals" << std::endl;
- std::cout << " , df_vals" << std::endl << " , df_d_vals";
- std::cout << std::endl << " );" << std::endl << std::endl;
-
- put(
- boost::tree_node::dereference_iterator(f_root.find(names[2]))
- , example_keys::your_uint()
- , 7
- );
- std::cout << " put(" << std::endl << " boost::tree_node";
- std::cout << "::dereference_iterator(f_root.find(names[2]))" << std::endl;
- std::cout << " , example_keys::your_uint()" << std::endl;
- std::cout << " , 7" << std::endl << " );" << std::endl;
- std::cout << " bf_vals.clear();" << std::endl;
- std::cout << " bf_d_vals.clear();" << std::endl;
- std::cout << " pre_vals.clear();" << std::endl;
- std::cout << " pre_d_vals.clear();" << std::endl;
- std::cout << " post_vals.clear();" << std::endl;
- std::cout << " post_d_vals.clear();" << std::endl;
- std::cout << " df_vals.clear();" << std::endl;
- std::cout << " df_d_vals.clear();" << std::endl;
- out_with_all(f_root);
- std::cout << " test_associative_node<f_node_case>(" << std::endl;
- std::cout << " f_root" << std::endl << " , bf_vals";
- std::cout << std::endl << " , bf_d_vals" << std::endl;
- std::cout << " , pre_vals" << std::endl;
- std::cout << " , pre_d_vals" << std::endl;
- std::cout << " , post_vals" << std::endl;
- std::cout << " , post_d_vals" << std::endl;
- std::cout << " , df_vals" << std::endl << " , df_d_vals";
- std::cout << std::endl << " );" << std::endl << " }";
- std::cout << std::endl << (
- "#endif // BOOST_TREE_NODE_CAN_USE_FUSION_WITH_TYPEOF"
- );
-#endif // BOOST_TREE_NODE_CAN_USE_FUSION_WITH_TYPEOF
-
- std::cout << std::endl << '}' << std::endl;
-}
-
-#if defined BOOST_TYPEOF_EMULATION
-#include <boost/container_gen/selectors_typeof.hpp>
-#include <boost/container_gen/c_str_cmp_selectors_typeof.hpp>
-#if defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-#include <boost/typeof/boost/ptr_container/ptr_map.hpp>
-#elif defined LIBS_TREE_NODE_EXAMPLE_ASSOCIATIVE_NODE_USE_FLAT_MAP
-#include <boost/typeof/boost/container/flat_map.hpp>
-#else // !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-#include <boost/typeof/boost/mpl/bool.hpp>
-#include <boost/typeof/boost/container/map.hpp>
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-#else // !defined BOOST_TYPEOF_EMULATION
-#include <boost/container_gen/selectors.hpp>
-#include <boost/container_gen/c_str_cmp_selectors.hpp>
-#endif // BOOST_TYPEOF_EMULATION
-
-int main()
-{
- output_copyright_and_config_preamble();
- output_header_and_type_preamble();
- std::cout << (
- "#include <boost/typeof/boost/tree_node/associative_node.hpp>"
- ) << std::endl << (
- "#include <boost/container_gen/is_unique_assoc_selector.hpp>"
- ) << std::endl << std::endl << "char const* names[] = {\"able\"," << (
- " \"baker\", \"chuck\", \"dog\", \"easy\", \"fox\"};"
- ) << std::endl << std::endl << "template <typename Select, typename Node>";
- std::cout << std::endl << "void initialize(Node& root)" << std::endl;
- std::cout << '{' << std::endl << (
- " for (boost::tree_node::breadth_first_iterator<Node> itr(root);"
- ) << " itr; ++itr)" << std::endl << " {" << std::endl << (
- " typename Node::traits::data_type const& data = get("
- ) << std::endl << " *itr" << std::endl;
- std::cout << " , boost::tree_node::data_key()" << std::endl;
- std::cout << " );" << std::endl << std::endl;
- std::cout << " if (1 < data)" << std::endl;
- std::cout << " {" << std::endl;
- std::cout << " for (std::size_t i = 0; i < data; ++i)";
- std::cout << std::endl << " {" << std::endl;
- std::cout << " for (std::size_t j = 0; j + i < data; ++j)";
- std::cout << std::endl << " {" << std::endl << " " << (
- " typename Node::iterator find_itr(itr->find(names[j]));"
- ) << std::endl << (
- " bool not_found = find_itr == itr->end();"
- ) << std::endl << (
- " typename Node::iterator child_itr("
- ) << std::endl << (
- " itr->emplace(names[j], i)"
- ) << std::endl << " );" << std::endl;
- std::cout << " Node& child(" << std::endl << (
- " boost::tree_node::dereference_iterator"
- ) << "(child_itr)" << std::endl << " );" << std::endl;
- std::cout << " Node const& const_child(child);";
- std::cout << std::endl << std::endl << (
- " if (not_found)"
- ) << std::endl << " {" << std::endl;
- std::cout << " typename Node::pointer child_ptr(";
- std::cout << std::endl << (
- " child.get_parent_ptr()"
- ) << std::endl << " );" << std::endl;
- std::cout << " BOOST_CHECK(" << std::endl;
- std::cout << " child_ptr == &*itr" << std::endl;
- std::cout << "// , \"Ctor not linking child to";
- std::cout << " parent.\"" << std::endl << " );";
- std::cout << std::endl << " BOOST_CHECK(";
- std::cout << std::endl << (
- " child_ptr == const_child.get_parent_ptr()"
- ) << std::endl << (
- "// , \"Why are these pointers different?\""
- ) << std::endl << " );" << std::endl;
- std::cout << " }" << std::endl;
- std::cout << " else if (" << std::endl;
- std::cout << " boost::";
- std::cout << "is_unique_associative_selector<Select>::value" << std::endl;
- std::cout << " )" << std::endl;
- std::cout << " {" << std::endl;
- std::cout << " BOOST_CHECK(" << std::endl << (
- " find_itr->first == child_itr->first"
- ) << std::endl;
- std::cout << "// , \"Keys do not match.\"";
- std::cout << std::endl << " );" << std::endl;
- std::cout << " BOOST_CHECK(" << std::endl;
- std::cout << " get(" << std::endl << " " << (
- " boost::tree_node::dereference_iterator("
- ) << std::endl;
- std::cout << " find_itr" << std::endl;
- std::cout << " )" << std::endl << (
- " , boost::tree_node::data_key()"
- ) << std::endl << " ) == get(" << std::endl;
- std::cout << " const_child";
- std::cout << std::endl << (
- " , boost::tree_node::data_key()"
- ) << std::endl << " )" << std::endl << (
- "// , \"Ctor not linking parent to child.\""
- ) << std::endl << " );" << std::endl;
- std::cout << " }" << std::endl << " }";
- std::cout << std::endl << " }" << std::endl << " }";
- std::cout << std::endl << " }" << std::endl << '}' << std::endl;
-
-#if defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- output_driver<
- boost::ptr_map_selector<boost::c_str_ordering_selector>
- >();
- output_driver<
- boost::ptr_multimap_selector<boost::c_str_ordering_selector>
- >();
-#elif defined LIBS_TREE_NODE_EXAMPLE_ASSOCIATIVE_NODE_USE_FLAT_MAP
- output_driver<
- boost::flat_map_selector<boost::c_str_ordering_selector>
- >();
- output_driver<
- boost::flat_multimap_selector<boost::c_str_ordering_selector>
- >();
-#else
- output_driver<boost::map_selector<boost::mpl::true_> >();
- output_driver<boost::multimap_selector<boost::mpl::true_> >();
-#endif
-
- std::cout << std::endl << "#if defined BOOST_MSVC" << std::endl;
- std::cout << " #pragma warning (pop)" << std::endl;
- std::cout << "#endif" << std::endl << std::endl;
- std::cout << "#if defined BOOST_TYPEOF_EMULATION" << std::endl << (
- "#include <boost/typeof/boost/container_gen/selectors.hpp>"
- ) << std::endl << (
- "#include <boost/typeof/boost/container_gen/c_str_cmp_selectors.hpp>"
- ) << std::endl << (
- "#include <boost/typeof/boost/ptr_container/ptr_map.hpp>"
- ) << std::endl << (
- "#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION"
- ) << std::endl;
- std::cout << "#include <boost/typeof/boost/mpl/bool.hpp>" << std::endl << (
- "#include <boost/typeof/boost/container/map.hpp>"
- ) << std::endl;
- std::cout << "#include <boost/typeof/boost/container/flat_map.hpp>";
- std::cout << std::endl << "#endif" << std::endl;
- std::cout << "#else // !defined BOOST_TYPEOF_EMULATION" << std::endl;
- std::cout << "#include <boost/container_gen/selectors.hpp>" << std::endl;
- std::cout << "#include <boost/container_gen/c_str_cmp_selectors.hpp>";
- std::cout << std::endl << "#endif // BOOST_TYPEOF_EMULATION" << std::endl;
- std::cout << std::endl << "int test_main(int argc, char** argv)";
- std::cout << std::endl << '{' << std::endl << (
- " test_unique_associative<"
- ) << std::endl << (
- " boost::ptr_map_selector<boost::c_str_ordering_selector>"
- ) << std::endl << " >();" << std::endl << (
- " test_multiple_associative<"
- ) << std::endl << (
- " boost::ptr_multimap_selector<boost::c_str_ordering_selector>"
- ) << std::endl << " >();" << std::endl;
- std::cout << "#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION";
- std::cout << std::endl << " test_unique_associative<" << std::endl;
- std::cout << " boost::map_selector<boost::mpl::true_,";
- std::cout << "boost::c_str_ordering_selector>" << std::endl << " >();";
- std::cout << std::endl << " test_multiple_associative<" << std::endl;
- std::cout << " boost::multimap_selector<" << std::endl;
- std::cout << " boost::mpl::true_" << std::endl;
- std::cout << " , boost::c_str_ordering_selector" << std::endl;
- std::cout << " >" << std::endl << " >();" << std::endl;
- std::cout << " test_unique_associative<" << std::endl << (
- " boost::flat_map_selector<boost::c_str_ordering_selector>"
- ) << std::endl << " >();" << std::endl << (
- " test_multiple_associative<"
- ) << std::endl << (
- " boost::flat_multimap_selector<boost::c_str_ordering_selector>"
- ) << std::endl << " >();" << std::endl << "#endif" << std::endl;
- std::cout << std::endl << " return 0;" << std::endl;
- std::cout << '}' << std::endl << std::endl;
-
- return 0;
-}
-

Deleted: sandbox/tree_node/libs/tree_node/example/binary_node.cpp
==============================================================================
--- sandbox/tree_node/libs/tree_node/example/binary_node.cpp 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84956)
+++ /dev/null 00:00:00 1970 (deleted)
@@ -1,987 +0,0 @@
-// 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)
-
-#include <iostream>
-#include <boost/config.hpp>
-#include <boost/typeof/boost/rational.hpp>
-#include <boost/typeof/boost/tree_node/binary_node.hpp>
-#include <boost/typeof/boost/tree_node/with_count.hpp>
-#include <boost/typeof/boost/tree_node/with_height.hpp>
-#include <boost/typeof/boost/tree_node/with_position.hpp>
-#include <boost/tree_node/iterator/breadth_first.hpp>
-#include <boost/tree_node/iterator/pre_order_descendant.hpp>
-#include <boost/tree_node/iterator/post_order.hpp>
-#include <boost/tree_node/preprocessor.hpp>
-
-#if defined BOOST_TREE_NODE_CAN_USE_FUSION
-#include <boost/typeof/boost/tree_node/with_accumulation.hpp>
-#endif
-
-#include "type_definitions.hpp"
-#include "output_preamble.hpp"
-#include "output_functions.hpp"
-#include "iterator_functions.hpp"
-
-typedef boost::tree_node::with_height<
- boost::tree_node::with_position_base_gen<
- boost::tree_node::with_count_base_gen<
- boost::tree_node::binary_node_base_gen<>
- >
- >
- , boost::rational<long>
- >
- DNode;
-
-#if defined BOOST_TREE_NODE_CAN_USE_FUSION
-typedef boost::tree_node::with_accumulation<
- boost::tree_node::with_height_base_gen<
- boost::tree_node::with_accumulation_base_gen<
- boost::tree_node::with_position_base_gen<
- boost::tree_node::with_accumulation_base_gen<
- boost::tree_node::with_count_base_gen<
- boost::tree_node::with_accumulation_base_gen<
- boost::tree_node::binary_node_base_gen<>
- >
- >
- , AccuAccuKey
- >
- >
- , AccuCountKey
- >
- >
- , boost::rational<long>
- , void
- , AccuHeightKey
- >
- ANode;
-typedef boost::tree_node::with_accumulation<
- boost::tree_node::binary_node_base_gen<>
- , DataMap
- , void
- , AccuYourUintKey
- >
- FNode;
-typedef boost::tree_node::with_accumulation<
- boost::tree_node::with_accumulation_base_gen<
- boost::tree_node::binary_node_base_gen<>
- , HeightSumKey
- >
- , GUITable
- , void
- , MinPriorityKey
- >
- GUINode;
-
-void out_with_it(FNode const& f_node)
-{
- iterator_out_bf_pre_post(f_node, output_uint_char_node(), 5);
- iterator_out_in_order(f_node, output_uint_char_node(), 5);
- iterator_out_df(f_node, output_uint_char_tree(2, 7, true));
-}
-
-void out_with_it(GUINode const& gui_node)
-{
- iterator_out_bf_pre_post(gui_node, output_gui_node(), 3);
- iterator_out_in_order(gui_node, output_gui_node(), 3);
- iterator_out_df(gui_node, output_gui_tree(2, 7, true));
-}
-#endif // BOOST_TREE_NODE_CAN_USE_FUSION
-
-template <typename Node>
-void initialize(Node& root)
-{
- for (boost::tree_node::breadth_first_iterator<Node> itr(root); itr; ++itr)
- {
- typename Node::traits::data_type const& data = get(
- *itr
- , boost::tree_node::data_key()
- );
-
- if (1 < data)
- {
- itr->emplace_left(data - 2);
- itr->emplace_right(data - 1);
- }
- }
-}
-
-#if defined BOOST_TREE_NODE_CAN_USE_FUSION
-void out_with_them(DNode const& d_node, ANode const& a_node)
-{
- std::cout << std::endl << "#if defined BOOST_TREE_NODE_CAN_USE_FUSION";
- iterator_out_bf_pre_post(a_node, output_node<boost::mpl::true_>(), 1);
- iterator_out_in_order(a_node, output_node<boost::mpl::true_>(), 1);
- iterator_out_df(a_node, output_tree<boost::mpl::true_>(2, 7, true));
- std::cout << "#else // !defined BOOST_TREE_NODE_CAN_USE_FUSION";
- iterator_out_bf_pre_post(d_node, output_node<boost::mpl::false_>(), 7);
- iterator_out_in_order(d_node, output_node<boost::mpl::false_>(), 7);
- iterator_out_df(d_node, output_tree<boost::mpl::false_>(2, 7, true));
- std::cout << "#endif // BOOST_NO_SFINAE" << std::endl;
-}
-#else // !defined BOOST_TREE_NODE_CAN_USE_FUSION
-void out_with_it(DNode const& d_node)
-{
- iterator_out_bf_pre_post(d_node, output_node<boost::mpl::false_>(), 7);
- iterator_out_in_order(d_node, output_node<boost::mpl::false_>(), 7);
- iterator_out_df(d_node, output_tree<boost::mpl::false_>(2, 7, true));
-}
-#endif // BOOST_TREE_NODE_CAN_USE_FUSION
-
-int main()
-{
- DNode d_root(5);
-
- initialize(d_root);
-
-#if defined BOOST_TREE_NODE_CAN_USE_FUSION
- ANode a_root(5);
-
- initialize(a_root);
-#endif
-
- output_copyright_and_config_preamble();
- output_header_and_type_preamble();
- std::cout << "#include <boost/typeof/boost/tree_node/binary_node.hpp>";
- std::cout << std::endl << std::endl;
-#if defined BOOST_TREE_NODE_CAN_USE_FUSION
- std::cout << "#if defined BOOST_TREE_NODE_CAN_USE_FUSION" << std::endl;
- std::cout << "typedef boost::tree_node::with_accumulation<" << std::endl;
- std::cout << " boost::tree_node::with_height_base_gen<";
- std::cout << std::endl << (
- " boost::tree_node::with_accumulation_base_gen<"
- ) << std::endl << (
- " boost::tree_node::with_position_base_gen<"
- ) << std::endl << (
- " boost::tree_node::with_accumulation_base_gen<"
- ) << std::endl << (
- " boost::tree_node::with_count_base_gen<"
- ) << std::endl << " boost::tree_node::";
- std::cout << "with_accumulation_base_gen<" << std::endl << " " << (
- " boost::tree_node::binary_node_base_gen<>"
- ) << std::endl << " >" << std::endl;
- std::cout << " >" << std::endl;
- std::cout << " , AccuAccuKey" << std::endl;
- std::cout << " >" << std::endl;
- std::cout << " >" << std::endl;
- std::cout << " , AccuCountKey" << std::endl;
- std::cout << " >" << std::endl << " >";
- std::cout << std::endl << " , boost::rational<long>" << std::endl;
- std::cout << " , void" << std::endl;
- std::cout << " , AccuHeightKey" << std::endl << " >";
- std::cout << std::endl << " ANode;" << std::endl << (
- "#else // !defined BOOST_TREE_NODE_CAN_USE_FUSION"
- ) << std::endl;
-#endif // BOOST_TREE_NODE_CAN_USE_FUSION
- std::cout << "typedef boost::tree_node::with_height<" << std::endl << (
- " boost::tree_node::with_position_base_gen<"
- ) << std::endl << (
- " boost::tree_node::with_count_base_gen<"
- ) << std::endl << (
- " boost::tree_node::binary_node_base_gen<>"
- ) << std::endl << " >" << std::endl;
- std::cout << " >" << std::endl;
- std::cout << " , boost::rational<long>" << std::endl;
- std::cout << " >" << std::endl;
- std::cout << " ANode;" << std::endl;
-#if defined BOOST_TREE_NODE_CAN_USE_FUSION
- std::cout << "#endif // BOOST_TREE_NODE_CAN_USE_FUSION" << std::endl;
-#endif
- std::cout << std::endl << "typedef boost::container_gen<" << std::endl;
- std::cout << " boost::dequeS" << std::endl;
- std::cout << " , boost::tuples::tuple<" << std::endl;
- std::cout << " boost::tree_node::result_of::value_at_key<";
- std::cout << std::endl << " ANode const" << std::endl;
- std::cout << " , boost::tree_node::data_key" << std::endl;
- std::cout << " >::type" << std::endl;
- std::cout << " , boost::tree_node::result_of::value_at_key<";
- std::cout << std::endl << " ANode const" << std::endl;
- std::cout << " , boost::tree_node::height_key";
- std::cout << std::endl << " >::type" << std::endl;
- std::cout << " , boost::tree_node::result_of::value_at_key<";
- std::cout << std::endl << " ANode const" << std::endl;
- std::cout << " , boost::tree_node::count_key";
- std::cout << std::endl << " >::type" << std::endl;
- std::cout << "#if defined BOOST_TREE_NODE_CAN_USE_FUSION" << std::endl;
- std::cout << " , boost::tree_node::result_of::value_at_key<";
- std::cout << std::endl << " ANode const" << std::endl;
- std::cout << " , boost::tree_node::accumulation_key<>";
- std::cout << std::endl << " >::type" << std::endl;
- std::cout << " , boost::tree_node::result_of::value_at_key<";
- std::cout << std::endl << " ANode const" << std::endl;
- std::cout << " , AccuHeightKey" << std::endl;
- std::cout << " >::type" << std::endl;
- std::cout << " , boost::tree_node::result_of::value_at_key<";
- std::cout << std::endl << " ANode const" << std::endl;
- std::cout << " , AccuCountKey" << std::endl;
- std::cout << " >::type" << std::endl;
- std::cout << " , boost::tree_node::result_of::value_at_key<";
- std::cout << std::endl << " ANode const" << std::endl;
- std::cout << " , AccuAccuKey" << std::endl;
- std::cout << " >::type" << std::endl;
- std::cout << "#endif // BOOST_TREE_NODE_CAN_USE_FUSION" << std::endl;
- std::cout << " >" << std::endl << " >::type";
- std::cout << std::endl << " Values;" << std::endl;
- std::cout << "typedef boost::container_gen<" << std::endl;
- std::cout << " boost::dequeS" << std::endl;
- std::cout << " , boost::tuples::tuple<" << std::endl << (
- " boost::tree_node::traversal_state"
- ) << std::endl;
- std::cout << " , boost::tree_node::result_of::value_at_key<";
- std::cout << std::endl << " ANode const" << std::endl;
- std::cout << " , boost::tree_node::data_key" << std::endl;
- std::cout << " >::type" << std::endl;
- std::cout << " , boost::tree_node::result_of::value_at_key<";
- std::cout << std::endl << " ANode const" << std::endl;
- std::cout << " , boost::tree_node::height_key";
- std::cout << std::endl << " >::type" << std::endl;
- std::cout << " , boost::tree_node::result_of::value_at_key<";
- std::cout << std::endl << " ANode const" << std::endl;
- std::cout << " , boost::tree_node::count_key";
- std::cout << std::endl << " >::type" << std::endl;
- std::cout << "#if defined BOOST_TREE_NODE_CAN_USE_FUSION" << std::endl;
- std::cout << " , boost::tree_node::result_of::value_at_key<";
- std::cout << std::endl << " ANode const" << std::endl;
- std::cout << " , boost::tree_node::accumulation_key<>";
- std::cout << std::endl << " >::type" << std::endl;
- std::cout << " , boost::tree_node::result_of::value_at_key<";
- std::cout << std::endl << " ANode const" << std::endl;
- std::cout << " , AccuHeightKey" << std::endl;
- std::cout << " >::type" << std::endl;
- std::cout << " , boost::tree_node::result_of::value_at_key<";
- std::cout << std::endl << " ANode const" << std::endl;
- std::cout << " , AccuCountKey" << std::endl;
- std::cout << " >::type" << std::endl;
- std::cout << " , boost::tree_node::result_of::value_at_key<";
- std::cout << std::endl << " ANode const" << std::endl;
- std::cout << " , AccuAccuKey" << std::endl;
- std::cout << " >::type" << std::endl;
- std::cout << "#endif // BOOST_TREE_NODE_CAN_USE_FUSION" << std::endl;
- std::cout << " >" << std::endl << " >::type";
- std::cout << std::endl << " DFValues;" << std::endl;
- std::cout << std::endl << "int test_main(int argc, char** argv)";
- std::cout << std::endl << '{' << std::endl << " ANode a_root(5);";
- std::cout << std::endl << std::endl << " BOOST_CHECK(" << std::endl;
- std::cout << " !a_root.get_parent_ptr()" << std::endl;
- std::cout << "// , \"Parent member uninitialized.\"" << std::endl;
- std::cout << " );" << std::endl << std::endl;
- std::cout << " for (" << std::endl << (
- " boost::tree_node::breadth_first_iterator<ANode> itr(a_root);"
- ) << std::endl << " itr;" << std::endl << " ++itr";
- std::cout << std::endl << " )" << std::endl << " {" << std::endl << (
- " ANode::traits::data_type const& data = get("
- ) << std::endl << " *itr" << std::endl;
- std::cout << " , boost::tree_node::data_key()" << std::endl;
- std::cout << " );" << std::endl << std::endl;
- std::cout << " if (1 < data)" << std::endl << " {";
- std::cout << std::endl << (
- " ANode::iterator child_itr(itr->emplace_left(data - 2));"
- ) << std::endl;
- std::cout << " ANode::const_pointer const_child(&*child_itr);";
- std::cout << std::endl << std::endl << " BOOST_CHECK(";
- std::cout << std::endl << (
- " child_itr->get_parent_ptr() == &*itr"
- ) << std::endl << (
- "// , \"Ctor not linking child to parent.\""
- ) << std::endl << " );" << std::endl;
- std::cout << " BOOST_CHECK(" << std::endl << (
- " itr->get_left_child_ptr() == &*child_itr"
- ) << std::endl << (
- "// , \"Ctor not linking parent to child.\""
- ) << std::endl << " );" << std::endl;
- std::cout << " BOOST_CHECK(" << std::endl << " ";
- std::cout << (
- "child_itr->get_parent_ptr() == const_child->get_parent_ptr()"
- ) << std::endl << (
- "// , \"Why are these pointers different?\""
- ) << std::endl << " );" << std::endl;
- std::cout << " BOOST_CHECK(" << std::endl;
- std::cout << " get(" << std::endl;
- std::cout << " *child_itr" << std::endl;
- std::cout << " , boost::tree_node::position_key()";
- std::cout << std::endl << " ) == child_itr" << std::endl;
- std::cout << "// , \"Position iterator incorrect.\"";
- std::cout << std::endl << " );" << std::endl << std::endl;
- std::cout << " child_itr = itr->emplace_right(data - 1);";
- std::cout << std::endl << " const_child = &*child_itr;";
- std::cout << std::endl << std::endl << " BOOST_CHECK(";
- std::cout << std::endl << (
- " child_itr->get_parent_ptr() == &*itr"
- ) << std::endl;
- std::cout << "// , \"Ctor not linking child to parent.\"";
- std::cout << std::endl << " );" << std::endl;
- std::cout << " BOOST_CHECK(" << std::endl << (
- " itr->get_right_child_ptr() == &*child_itr"
- ) << std::endl << (
- "// , \"Ctor not linking parent to child.\""
- ) << std::endl << " );" << std::endl;
- std::cout << " BOOST_CHECK(" << std::endl << " ";
- std::cout << (
- "child_itr->get_parent_ptr() == const_child->get_parent_ptr()"
- ) << std::endl << (
- "// , \"Why are these pointers different?\""
- ) << std::endl << " );" << std::endl;
- std::cout << " BOOST_CHECK(" << std::endl;
- std::cout << " get(" << std::endl;
- std::cout << " *child_itr" << std::endl;
- std::cout << " , boost::tree_node::position_key()";
- std::cout << std::endl << " ) == child_itr" << std::endl;
- std::cout << "// , \"Position iterator incorrect.\"";
- std::cout << std::endl << " );" << std::endl << " }";
- std::cout << std::endl << " }" << std::endl << std::endl;
- std::cout << " {" << std::endl;
- std::cout << " Values bf_vals, pre_vals, post_vals, in_vals;";
- std::cout << std::endl << " DFValues df_vals;" << std::endl;
- std::cout << " Emplacer emplacer;" << std::endl;
-#if defined BOOST_TREE_NODE_CAN_USE_FUSION
- out_with_them(d_root, a_root);
-#else
- out_with_it(d_root);
-#endif
- std::cout << " test_node<a_node_case>(" << std::endl;
- std::cout << " a_root" << std::endl << " , bf_vals";
- std::cout << std::endl << " , pre_vals" << std::endl;
- std::cout << " , post_vals" << std::endl << " , in_vals";
- std::cout << std::endl << " , df_vals" << std::endl;
- std::cout << " );" << std::endl << " }" << std::endl;
-
- {
- DNode::pointer d_p(
- d_root.get_left_child_ptr()->get_right_child_ptr()
- );
- DNode::iterator d_child_itr = d_p->insert_left(d_root);
-#if defined BOOST_TREE_NODE_CAN_USE_FUSION
- ANode::pointer a_p(
- a_root.get_left_child_ptr()->get_right_child_ptr()
- );
- ANode::iterator a_child_itr = a_p->insert_left(a_root);
-#endif
-
- std::cout << std::endl << " {" << std::endl;
- std::cout << " ANode a_copy(a_root);" << std::endl << (
- " boost::tree_node::breadth_first_iterator<ANode const>"
- ) << std::endl << (
- " bf_root_itr(a_root), bf_copy_itr(a_copy);"
- ) << std::endl << " boost::tree_node::breadth_first";
- std::cout << "_descendant_iterator<ANode const>" << std::endl << (
- " bf_d_root_itr(a_root), bf_d_copy_itr(a_copy);"
- ) << std::endl << (
- " boost::tree_node::pre_order_iterator<ANode const>"
- ) << std::endl << (
- " pre_root_itr(a_root), pre_copy_itr(a_copy);"
- ) << std::endl << " boost::tree_node::pre_order";
- std::cout << "_descendant_iterator<ANode const>" << std::endl << (
- " pre_d_root_itr(a_root), pre_d_copy_itr(a_copy);"
- ) << std::endl << (
- " boost::tree_node::post_order_iterator<ANode const>"
- ) << std::endl << (
- " post_root_itr(a_root), post_copy_itr(a_copy);"
- ) << std::endl << " boost::tree_node::post_order";
- std::cout << "_descendant_iterator<ANode const>" << std::endl << (
- " post_d_root_itr(a_root), post_d_copy_itr(a_copy);"
- ) << std::endl << (
- " boost::tree_node::in_order_iterator<ANode const>"
- ) << std::endl << (
- " in_root_itr(a_root), in_copy_itr(a_copy);"
- ) << std::endl << (
- " boost::tree_node::depth_first_iterator<ANode const>"
- ) << std::endl << (
- " df_root_itr(a_root), df_copy_itr(a_copy);"
- ) << std::endl << " boost::tree_node::depth_first";
- std::cout << "_descendant_iterator<ANode const>" << std::endl << (
- " df_d_root_itr(a_root), df_d_copy_itr(a_copy);"
- ) << std::endl << std::endl << (
- " BOOST_CHECK(test_node_copies(bf_root_itr, bf_copy_itr));"
- ) << std::endl << " BOOST_CHECK(" << (
- "test_node_copies(bf_d_root_itr, bf_d_copy_itr));"
- ) << std::endl << " BOOST_CHECK(" << (
- "test_node_copies(pre_root_itr, pre_copy_itr));"
- ) << std::endl << " BOOST_CHECK(" << (
- "test_node_copies(pre_d_root_itr, pre_d_copy_itr));"
- ) << std::endl << " BOOST_CHECK(" << (
- "test_node_copies(post_root_itr, post_copy_itr));"
- ) << std::endl << " BOOST_CHECK(" << (
- "test_node_copies(post_d_root_itr, post_d_copy_itr));"
- ) << std::endl << " BOOST_CHECK(" << (
- "test_node_copies(in_root_itr, in_copy_itr));"
- ) << std::endl << (
- " BOOST_CHECK(test_node_copies(df_root_itr, df_copy_itr));"
- ) << std::endl << " BOOST_CHECK(" << (
- "test_node_copies(df_d_root_itr, df_d_copy_itr));"
- ) << std::endl << " }" << std::endl << std::endl << " {";
- std::cout << std::endl << " ANode::pointer p(" << std::endl << (
- " a_root.get_left_child_ptr()->get_right_child_ptr()"
- ) << std::endl << " );" << std::endl << (
- " ANode::iterator a_child_itr = p->insert_left(a_root);"
- ) << std::endl << (
- " Values bf_vals, pre_vals, post_vals, in_vals;"
- ) << std::endl << " DFValues df_vals;" << std::endl << (
- " Emplacer emplacer;"
- ) << std::endl;
-#if defined BOOST_TREE_NODE_CAN_USE_FUSION
- out_with_them(d_root, a_root);
-#else
- out_with_it(d_root);
-#endif
- std::cout << " test_node<a_node_case>(" << std::endl;
- std::cout << " a_root" << std::endl;
- std::cout << " , bf_vals" << std::endl;
- std::cout << " , pre_vals" << std::endl;
- std::cout << " , post_vals" << std::endl;
- std::cout << " , in_vals" << std::endl;
- std::cout << " , df_vals" << std::endl;
- std::cout << " );" << std::endl << std::endl;
-
- d_root = *d_child_itr;
-#if defined BOOST_TREE_NODE_CAN_USE_FUSION
- a_root = *a_child_itr;
-#endif
- std::cout << " a_root = *a_child_itr;" << std::endl;
- std::cout << " bf_vals.clear();" << std::endl;
- std::cout << " pre_vals.clear();" << std::endl;
- std::cout << " post_vals.clear();" << std::endl;
- std::cout << " in_vals.clear();" << std::endl;
- std::cout << " df_vals.clear();" << std::endl;
-#if defined BOOST_TREE_NODE_CAN_USE_FUSION
- out_with_them(d_root, a_root);
-#else
- out_with_it(d_root);
-#endif
- std::cout << " test_node<a_node_case>(" << std::endl;
- std::cout << " a_root" << std::endl;
- std::cout << " , bf_vals" << std::endl;
- std::cout << " , pre_vals" << std::endl;
- std::cout << " , post_vals" << std::endl;
- std::cout << " , in_vals" << std::endl;
- std::cout << " , df_vals" << std::endl;
- std::cout << " );" << std::endl << std::endl;
-
- *(d_p = d_root.get_right_child_ptr()) = d_root;
-#if defined BOOST_TREE_NODE_CAN_USE_FUSION
- *(a_p = a_root.get_right_child_ptr()) = a_root;
-#endif
- std::cout << " *(p = a_root.get_right_child_ptr()) = a_root;";
- std::cout << std::endl << " test_node<a_node_case>(";
- std::cout << std::endl << " *p" << std::endl;
- std::cout << " , bf_vals" << std::endl;
- std::cout << " , pre_vals" << std::endl;
- std::cout << " , post_vals" << std::endl;
- std::cout << " , in_vals" << std::endl;
- std::cout << " , df_vals" << std::endl;
- std::cout << " );" << std::endl << std::endl;
- std::cout << " bf_vals.clear();" << std::endl;
- std::cout << " pre_vals.clear();" << std::endl;
- std::cout << " post_vals.clear();" << std::endl;
- std::cout << " in_vals.clear();" << std::endl;
- std::cout << " df_vals.clear();" << std::endl;
-#if defined BOOST_TREE_NODE_CAN_USE_FUSION
- out_with_them(d_root, a_root);
-#else
- out_with_it(d_root);
-#endif
- std::cout << " test_node<a_node_case>(" << std::endl;
- std::cout << " a_root" << std::endl;
- std::cout << " , bf_vals" << std::endl;
- std::cout << " , pre_vals" << std::endl;
- std::cout << " , post_vals" << std::endl;
- std::cout << " , in_vals" << std::endl;
- std::cout << " , df_vals" << std::endl << " );";
- std::cout << std::endl << " }" << std::endl << std::endl;
- }
-
- d_root.get_right_child_ptr()->rotate_left();
-#if defined BOOST_TREE_NODE_CAN_USE_FUSION
- a_root.get_right_child_ptr()->rotate_left();
-#endif
- std::cout << " a_root.get_right_child_ptr()->rotate_left();";
- std::cout << std::endl << std::endl << " {" << std::endl;
- std::cout << " Values bf_vals, pre_vals, post_vals, in_vals;";
- std::cout << std::endl << " DFValues df_vals;" << std::endl;
- std::cout << " Emplacer emplacer;" << std::endl;
-#if defined BOOST_TREE_NODE_CAN_USE_FUSION
- out_with_them(d_root, a_root);
-#else
- out_with_it(d_root);
-#endif
- std::cout << " test_node<a_node_case>(" << std::endl;
- std::cout << " a_root" << std::endl << " , bf_vals";
- std::cout << std::endl << " , pre_vals" << std::endl;
- std::cout << " , post_vals" << std::endl << " , in_vals";
- std::cout << std::endl << " , df_vals" << std::endl;
- std::cout << " );" << std::endl << " }" << std::endl;
-
- {
- DNode::pointer d_p(d_root.get_right_child_ptr()->get_right_child_ptr());
- DNode::iterator d_child_itr(d_p->emplace_right());
-
- put(*d_child_itr, boost::tree_node::data_key(), 7);
-
-#if defined BOOST_TREE_NODE_CAN_USE_FUSION
- ANode::pointer a_p(a_root.get_right_child_ptr()->get_right_child_ptr());
- ANode::iterator a_child_itr(a_p->emplace_right());
-
- put(*a_child_itr, boost::tree_node::data_key(), 7);
-#endif
- std::cout << std::endl << " {" << std::endl << " ANode" << (
- "::pointer p(a_root.get_right_child_ptr()->get_right_child_ptr());"
- ) << std::endl << (
- " ANode::iterator p_child_itr(p->emplace_right());"
- ) << std::endl << (
- " Values bf_vals, pre_vals, post_vals, in_vals;"
- ) << std::endl << " DFValues df_vals;" << std::endl;
- std::cout << " Emplacer emplacer;" << std::endl << std::endl;
- std::cout << (
- " put(*p_child_itr, boost::tree_node::data_key(), 7);"
- );
-#if defined BOOST_TREE_NODE_CAN_USE_FUSION
- out_with_them(d_root, a_root);
-#else
- out_with_it(d_root);
-#endif
- std::cout << " test_node<a_node_case>(" << std::endl;
- std::cout << " a_root" << std::endl;
- std::cout << " , bf_vals" << std::endl;
- std::cout << " , pre_vals" << std::endl;
- std::cout << " , post_vals" << std::endl;
- std::cout << " , in_vals" << std::endl;
- std::cout << " , df_vals" << std::endl << " );";
- std::cout << std::endl << " }" << std::endl << std::endl;
- }
-
- d_root.get_left_child_ptr()->rotate_right();
-#if defined BOOST_TREE_NODE_CAN_USE_FUSION
- a_root.get_left_child_ptr()->rotate_right();
-#endif
- std::cout << " a_root.get_left_child_ptr()->rotate_right();";
- std::cout << std::endl << std::endl << " {" << std::endl;
- std::cout << " Values bf_vals, pre_vals, post_vals, in_vals;";
- std::cout << std::endl << " DFValues df_vals;" << std::endl;
- std::cout << " Emplacer emplacer;" << std::endl;
-#if defined BOOST_TREE_NODE_CAN_USE_FUSION
- out_with_them(d_root, a_root);
-#else
- out_with_it(d_root);
-#endif
- std::cout << " test_node<a_node_case>(" << std::endl;
- std::cout << " a_root" << std::endl << " , bf_vals";
- std::cout << std::endl << " , pre_vals" << std::endl;
- std::cout << " , post_vals" << std::endl << " , in_vals";
- std::cout << std::endl << " , df_vals" << std::endl;
- std::cout << " );" << std::endl;
- std::cout << " }" << std::endl << std::endl;
-
- d_root.get_left_child_ptr()->rotate_left();
-#if defined BOOST_TREE_NODE_CAN_USE_FUSION
- a_root.get_left_child_ptr()->rotate_left();
-#endif
- std::cout << " a_root.get_left_child_ptr()->rotate_left();";
- std::cout << std::endl << std::endl << " {" << std::endl;
- std::cout << " Values bf_vals, pre_vals, post_vals, in_vals;";
- std::cout << std::endl << " DFValues df_vals;" << std::endl;
- std::cout << " Emplacer emplacer;" << std::endl;
-#if defined BOOST_TREE_NODE_CAN_USE_FUSION
- out_with_them(d_root, a_root);
-#else
- out_with_it(d_root);
-#endif
- std::cout << " test_node<a_node_case>(" << std::endl;
- std::cout << " a_root" << std::endl << " , bf_vals";
- std::cout << std::endl << " , pre_vals" << std::endl;
- std::cout << " , post_vals" << std::endl << " , in_vals";
- std::cout << std::endl << " , df_vals" << std::endl;
- std::cout << " );" << std::endl << " }" << std::endl;
-
- d_root.begin()->clear();
-#if defined BOOST_TREE_NODE_CAN_USE_FUSION
- a_root.begin()->clear();
-#endif
- std::cout << std::endl << " a_root.begin()->clear();" << std::endl;
- std::cout << std::endl << " {" << std::endl;
- std::cout << " Values bf_vals, pre_vals, post_vals, in_vals;";
- std::cout << std::endl << " DFValues df_vals;" << std::endl;
- std::cout << " Emplacer emplacer;" << std::endl;
-#if defined BOOST_TREE_NODE_CAN_USE_FUSION
- out_with_them(d_root, a_root);
-#else
- out_with_it(d_root);
-#endif
- std::cout << " test_node<a_node_case>(" << std::endl;
- std::cout << " a_root" << std::endl << " , bf_vals";
- std::cout << std::endl << " , pre_vals" << std::endl;
- std::cout << " , post_vals" << std::endl << " , in_vals";
- std::cout << std::endl << " , df_vals" << std::endl;
- std::cout << " );" << std::endl << " }" << std::endl;
-
-#if defined BOOST_TREE_NODE_CAN_USE_FUSION
- FNode f_root(
- boost::fusion::make_pair<example_keys::your_uint>(5)
- , boost::fusion::make_pair<example_keys::your_char>('5')
- );
-
- for (
- boost::tree_node::breadth_first_iterator<FNode> itr(f_root);
- itr;
- ++itr
- )
- {
- boost::tree_node::result_of::value_at_key<
- FNode const
- , example_keys::your_uint
- >::type data = boost::tree_node::get<example_keys::your_uint>(*itr);
-
- if (1 < data)
- {
- --data;
- itr->emplace_right(
- boost::fusion::make_pair<example_keys::your_uint>(data)
- , boost::fusion::make_pair<example_keys::your_char>('0' + data)
- );
- --data;
- itr->emplace_left(
- boost::fusion::make_pair<example_keys::your_uint>(data)
- , boost::fusion::make_pair<example_keys::your_char>('0' + data)
- );
- }
- }
-
- std::cout << std::endl << "#if defined BOOST_TREE_NODE_CAN_USE_FUSION";
- std::cout << std::endl << (
- " typedef boost::tree_node::with_accumulation<"
- ) << std::endl << (
- " boost::tree_node::binary_node_base_gen<>"
- ) << std::endl << " , DataMap" << std::endl;
- std::cout << " , void" << std::endl;
- std::cout << " , AccuYourUintKey" << std::endl;
- std::cout << " >" << std::endl << " FNode;";
- std::cout << std::endl << " typedef boost::container_gen<" << std::endl;
- std::cout << " boost::dequeS" << std::endl;
- std::cout << " , boost::tuples::tuple<" << std::endl << (
- " boost::tree_node::result_of::value_at_key<"
- ) << std::endl << " FNode const" << std::endl << (
- " , example_keys::your_uint"
- ) << std::endl << " >::type" << std::endl << (
- " , boost::tree_node::result_of::value_at_key<"
- ) << std::endl << " FNode const" << std::endl << (
- " , example_keys::your_char"
- ) << std::endl << " >::type" << std::endl << (
- " , boost::tree_node::result_of::value_at_key<"
- ) << std::endl << " FNode const" << std::endl << (
- " , AccuYourUintKey"
- ) << std::endl << " >::type" << std::endl;
- std::cout << " >" << std::endl << " >::type";
- std::cout << std::endl << " MoreValues;" << std::endl;
- std::cout << " typedef boost::container_gen<" << std::endl;
- std::cout << " boost::dequeS" << std::endl;
- std::cout << " , boost::tuples::tuple<" << std::endl;
- std::cout << " boost::tree_node::traversal_state";
- std::cout << std::endl << (
- " , boost::tree_node::result_of::value_at_key<"
- ) << std::endl << " FNode const" << std::endl << (
- " , example_keys::your_uint"
- ) << std::endl << " >::type" << std::endl << (
- " , boost::tree_node::result_of::value_at_key<"
- ) << std::endl << " FNode const" << std::endl << (
- " , example_keys::your_char"
- ) << std::endl << " >::type" << std::endl << (
- " , boost::tree_node::result_of::value_at_key<"
- ) << std::endl << " FNode const" << std::endl << (
- " , AccuYourUintKey"
- ) << std::endl << " >::type" << std::endl;
- std::cout << " >" << std::endl << " >::type";
- std::cout << std::endl << " DFMoreValues;" << std::endl;
- std::cout << std::endl << " FNode f_root(" << std::endl << (
- " boost::fusion::make_pair<example_keys::your_uint>(5)"
- ) << std::endl << (
- " , boost::fusion::make_pair<example_keys::your_char>(\'5\')"
- ) << std::endl << " );" << std::endl << std::endl;
- std::cout << " for (" << std::endl << (
- " boost::tree_node::breadth_first_iterator<FNode> itr(f_root);"
- ) << std::endl << " itr;" << std::endl << " ++itr";
- std::cout << std::endl << " )" << std::endl << " {" << std::endl;
- std::cout << " boost::tree_node::result_of::value_at_key<";
- std::cout << std::endl << " FNode const" << std::endl;
- std::cout << " , example_keys::your_uint" << std::endl << (
- " >::type data = boost::tree_node::get<example_keys::your_uint>"
- ) << "(*itr);" << std::endl << std::endl << " if (1 < data)";
- std::cout << std::endl << " {" << std::endl;
- std::cout << " --data;" << std::endl;
- std::cout << " itr->emplace_right(" << std::endl << " " << (
- " boost::fusion::make_pair<example_keys::your_uint>(data)"
- ) << std::endl << " , boost::fusion::make_pair<example_keys";
- std::cout << "::your_char>(\'0\' + data)" << std::endl << " );";
- std::cout << std::endl << " --data;" << std::endl;
- std::cout << " itr->emplace_left(" << std::endl << " " << (
- " boost::fusion::make_pair<example_keys::your_uint>(data)"
- ) << std::endl << " , boost::fusion::make_pair<example_keys";
- std::cout << "::your_char>(\'0\' + data)" << std::endl << " );";
- std::cout << std::endl << " }" << std::endl << " }" << std::endl;
- std::cout << std::endl << " {" << std::endl;
- std::cout << " MoreValues bf_vals, pre_vals, post_vals, in_vals;";
- std::cout << std::endl << " DFMoreValues df_vals;" << std::endl;
- std::cout << " Emplacer emplacer;" << std::endl;
- out_with_it(f_root);
- std::cout << " test_node<f_node_case>(" << std::endl;
- std::cout << " f_root" << std::endl << " , bf_vals";
- std::cout << std::endl << " , pre_vals" << std::endl;
- std::cout << " , post_vals" << std::endl << " , in_vals";
- std::cout << std::endl << " , df_vals" << std::endl;
- std::cout << " );" << std::endl << " }" << std::endl;
-
- put(
- *f_root.get_right_child_ptr()->get_left_child_ptr()
- , example_keys::your_uint()
- , 7
- );
- std::cout << std::endl << " put(" << std::endl << (
- " *f_root.get_right_child_ptr()->get_left_child_ptr()"
- ) << std::endl << " , example_keys::your_uint()" << std::endl;
- std::cout << " , 7" << std::endl << " );" << std::endl;
- std::cout << std::endl << " {" << std::endl;
- std::cout << " MoreValues bf_vals, pre_vals, post_vals, in_vals;";
- std::cout << std::endl << " DFMoreValues df_vals;" << std::endl;
- std::cout << " Emplacer emplacer;" << std::endl;
- out_with_it(f_root);
- std::cout << " test_node<f_node_case>(" << std::endl;
- std::cout << " f_root" << std::endl << " , bf_vals";
- std::cout << std::endl << " , pre_vals" << std::endl;
- std::cout << " , post_vals" << std::endl << " , in_vals";
- std::cout << std::endl << " , df_vals" << std::endl;
- std::cout << " );" << std::endl << " }" << std::endl;
- std::cout << std::endl << " //[example__gui__binary_node__types";
- std::cout << std::endl << (
- " typedef boost::tree_node::with_accumulation<"
- ) << std::endl << (
- " boost::tree_node::with_accumulation_base_gen<"
- ) << std::endl << (
- " boost::tree_node::binary_node_base_gen<>"
- ) << std::endl << " , HeightSumKey" << std::endl;
- std::cout << " >" << std::endl;
- std::cout << " , GUITable" << std::endl;
- std::cout << " , void" << std::endl;
- std::cout << " , MinPriorityKey" << std::endl;
- std::cout << " >" << std::endl << " GUINode;";
- std::cout << std::endl << " typedef boost::container_gen<";
- std::cout << std::endl << " boost::dequeS" << std::endl;
- std::cout << " , boost::tuples::tuple<" << std::endl << (
- " boost::tree_node::result_of::value_at_key<"
- ) << std::endl << " GUINode const";
- std::cout << std::endl << (
- " , example_keys::row_location"
- ) << std::endl << " >::type" << std::endl << (
- " , boost::tree_node::result_of::value_at_key<"
- ) << std::endl << " GUINode const";
- std::cout << std::endl << (
- " , example_keys::row_height"
- ) << std::endl << " >::type" << std::endl << (
- " , boost::tree_node::result_of::value_at_key<"
- ) << std::endl << " GUINode const";
- std::cout << std::endl << (
- " , example_keys::row_priority"
- ) << std::endl << " >::type" << std::endl << (
- " , boost::tree_node::result_of::value_at_key<"
- ) << std::endl << " GUINode const";
- std::cout << std::endl << (
- " , HeightSumKey"
- ) << std::endl << " >::type" << std::endl << (
- " , boost::tree_node::result_of::value_at_key<"
- ) << std::endl << " GUINode const";
- std::cout << std::endl << (
- " , MinPriorityKey"
- ) << std::endl << " >::type" << std::endl;
- std::cout << " >" << std::endl << " >::type";
- std::cout << std::endl << " GUIValues;" << std::endl;
- std::cout << " typedef boost::container_gen<" << std::endl;
- std::cout << " boost::dequeS" << std::endl;
- std::cout << " , boost::tuples::tuple<" << std::endl;
- std::cout << " boost::tree_node::traversal_state";
- std::cout << std::endl << (
- " , boost::tree_node::result_of::value_at_key<"
- ) << std::endl << " GUINode const";
- std::cout << std::endl << (
- " , example_keys::row_location"
- ) << std::endl << " >::type" << std::endl << (
- " , boost::tree_node::result_of::value_at_key<"
- ) << std::endl << " GUINode const";
- std::cout << std::endl << (
- " , example_keys::row_height"
- ) << std::endl << " >::type" << std::endl << (
- " , boost::tree_node::result_of::value_at_key<"
- ) << std::endl << " GUINode const";
- std::cout << std::endl << (
- " , example_keys::row_priority"
- ) << std::endl << " >::type" << std::endl << (
- " , boost::tree_node::result_of::value_at_key<"
- ) << std::endl << " GUINode const";
- std::cout << std::endl << (
- " , HeightSumKey"
- ) << std::endl << " >::type" << std::endl << (
- " , boost::tree_node::result_of::value_at_key<"
- ) << std::endl << " GUINode const";
- std::cout << std::endl << (
- " , MinPriorityKey"
- ) << std::endl << " >::type" << std::endl;
- std::cout << " >" << std::endl << " >::type";
- std::cout << std::endl << " DFGUIValues;" << std::endl;
- std::cout << " //]" << std::endl;
-
- GUINode gui_root(
- boost::fusion::make_pair<example_keys::row_location>(20)
- , boost::fusion::make_pair<example_keys::row_height>(12)
- , boost::fusion::make_pair<example_keys::row_priority>(64)
- );
-
- gui_root.emplace_left(
- boost::fusion::make_pair<example_keys::row_location>(0)
- , boost::fusion::make_pair<example_keys::row_height>(12)
- , boost::fusion::make_pair<example_keys::row_priority>(20)
- );
- gui_root.emplace_left(
- boost::fusion::make_pair<example_keys::row_location>(3)
- , boost::fusion::make_pair<example_keys::row_height>(4)
- , boost::fusion::make_pair<example_keys::row_priority>(88)
- )->emplace_right(
- boost::fusion::make_pair<example_keys::row_location>(4)
- , boost::fusion::make_pair<example_keys::row_height>(12)
- , boost::fusion::make_pair<example_keys::row_priority>(79)
- );
- gui_root.emplace_left(
- boost::fusion::make_pair<example_keys::row_location>(5)
- , boost::fusion::make_pair<example_keys::row_height>(4)
- , boost::fusion::make_pair<example_keys::row_priority>(36)
- )->emplace_right(
- boost::fusion::make_pair<example_keys::row_location>(10)
- , boost::fusion::make_pair<example_keys::row_height>(4)
- , boost::fusion::make_pair<example_keys::row_priority>(5)
- )->emplace_right(
- boost::fusion::make_pair<example_keys::row_location>(12)
- , boost::fusion::make_pair<example_keys::row_height>(4)
- , boost::fusion::make_pair<example_keys::row_priority>(19)
- );
- gui_root.emplace_right(
- boost::fusion::make_pair<example_keys::row_location>(59)
- , boost::fusion::make_pair<example_keys::row_height>(12)
- , boost::fusion::make_pair<example_keys::row_priority>(25)
- );
- gui_root.emplace_right(
- boost::fusion::make_pair<example_keys::row_location>(55)
- , boost::fusion::make_pair<example_keys::row_height>(12)
- , boost::fusion::make_pair<example_keys::row_priority>(91)
- )->emplace_left(
- boost::fusion::make_pair<example_keys::row_location>(51)
- , boost::fusion::make_pair<example_keys::row_height>(12)
- , boost::fusion::make_pair<example_keys::row_priority>(7)
- );
- gui_root.emplace_right(
- boost::fusion::make_pair<example_keys::row_location>(42)
- , boost::fusion::make_pair<example_keys::row_height>(12)
- , boost::fusion::make_pair<example_keys::row_priority>(19)
- )->emplace_left(
- boost::fusion::make_pair<example_keys::row_location>(22)
- , boost::fusion::make_pair<example_keys::row_height>(12)
- , boost::fusion::make_pair<example_keys::row_priority>(54)
- );
- std::cout << std::endl << " //[example__gui__binary_node__build";
- std::cout << std::endl << " GUINode gui_root("<< std::endl << (
- " boost::fusion::make_pair<example_keys::row_location>(20)"
- ) << std::endl << (
- " , boost::fusion::make_pair<example_keys::row_height>(12)"
- ) << std::endl << (
- " , boost::fusion::make_pair<example_keys::row_priority>(64)"
- ) << std::endl << " );" << std::endl;
- std::cout << " gui_root.emplace_left(" << std::endl << (
- " boost::fusion::make_pair<example_keys::row_location>(0)"
- ) << std::endl << (
- " , boost::fusion::make_pair<example_keys::row_height>(12)"
- ) << std::endl << (
- " , boost::fusion::make_pair<example_keys::row_priority>(20)"
- ) << std::endl << " );" << std::endl;
- std::cout << " gui_root.emplace_left(" << std::endl << (
- " boost::fusion::make_pair<example_keys::row_location>(3)"
- ) << std::endl << (
- " , boost::fusion::make_pair<example_keys::row_height>(4)"
- ) << std::endl << (
- " , boost::fusion::make_pair<example_keys::row_priority>(88)"
- ) << std::endl << " )->emplace_right(" << std::endl << (
- " boost::fusion::make_pair<example_keys::row_location>(4)"
- ) << std::endl << (
- " , boost::fusion::make_pair<example_keys::row_height>(12)"
- ) << std::endl << (
- " , boost::fusion::make_pair<example_keys::row_priority>(79)"
- ) << std::endl << " );" << std::endl;
- std::cout << " gui_root.emplace_left(" << std::endl << (
- " boost::fusion::make_pair<example_keys::row_location>(5)"
- ) << std::endl << (
- " , boost::fusion::make_pair<example_keys::row_height>(4)"
- ) << std::endl << (
- " , boost::fusion::make_pair<example_keys::row_priority>(36)"
- ) << std::endl << " )->emplace_right(" << std::endl << (
- " boost::fusion::make_pair<example_keys::row_location>(10)"
- ) << std::endl << (
- " , boost::fusion::make_pair<example_keys::row_height>(4)"
- ) << std::endl << (
- " , boost::fusion::make_pair<example_keys::row_priority>(5)"
- ) << std::endl << " )->emplace_right(" << std::endl << (
- " boost::fusion::make_pair<example_keys::row_location>(12)"
- ) << std::endl << (
- " , boost::fusion::make_pair<example_keys::row_height>(4)"
- ) << std::endl << (
- " , boost::fusion::make_pair<example_keys::row_priority>(19)"
- ) << std::endl << " );" << std::endl;
- std::cout << " gui_root.emplace_right(" << std::endl << (
- " boost::fusion::make_pair<example_keys::row_location>(59)"
- ) << std::endl << (
- " , boost::fusion::make_pair<example_keys::row_height>(12)"
- ) << std::endl << (
- " , boost::fusion::make_pair<example_keys::row_priority>(25)"
- ) << std::endl << " );" << std::endl;
- std::cout << " gui_root.emplace_right(" << std::endl << (
- " boost::fusion::make_pair<example_keys::row_location>(55)"
- ) << std::endl << (
- " , boost::fusion::make_pair<example_keys::row_height>(12)"
- ) << std::endl << (
- " , boost::fusion::make_pair<example_keys::row_priority>(91)"
- ) << std::endl << " )->emplace_left(" << std::endl << (
- " boost::fusion::make_pair<example_keys::row_location>(51)"
- ) << std::endl << (
- " , boost::fusion::make_pair<example_keys::row_height>(12)"
- ) << std::endl << (
- " , boost::fusion::make_pair<example_keys::row_priority>(7)"
- ) << std::endl << " );" << std::endl;
- std::cout << " gui_root.emplace_right(" << std::endl << (
- " boost::fusion::make_pair<example_keys::row_location>(42)"
- ) << std::endl << (
- " , boost::fusion::make_pair<example_keys::row_height>(12)"
- ) << std::endl << (
- " , boost::fusion::make_pair<example_keys::row_priority>(19)"
- ) << std::endl << " )->emplace_left(" << std::endl << (
- " boost::fusion::make_pair<example_keys::row_location>(22)"
- ) << std::endl << (
- " , boost::fusion::make_pair<example_keys::row_height>(12)"
- ) << std::endl << (
- " , boost::fusion::make_pair<example_keys::row_priority>(54)"
- ) << std::endl << " );" << std::endl << " //]" << std::endl;
- std::cout << std::endl << " //[example__gui__binary_node__test";
- std::cout << std::endl << " {" << std::endl;
- std::cout << " GUIValues bf_vals, pre_vals, post_vals, in_vals;";
- std::cout << std::endl << " DFGUIValues df_vals;" << std::endl;
- std::cout << " Emplacer emplacer;" << std::endl;
- out_with_it(gui_root);
- std::cout << " test_node<gui_node_case>(" << std::endl;
- std::cout << " gui_root" << std::endl << " , bf_vals";
- std::cout << std::endl << " , pre_vals" << std::endl;
- std::cout << " , post_vals" << std::endl << " , in_vals";
- std::cout << std::endl << " , df_vals" << std::endl;
- std::cout << " );" << std::endl << " }" << std::endl;
- std::cout << " //]" << std::endl;
- std::cout << "#endif // BOOST_TREE_NODE_CAN_USE_FUSION" << std::endl;
-#endif // BOOST_TREE_NODE_CAN_USE_FUSION
-
- std::cout << std::endl << " return 0;" << std::endl << '}' << std::endl;
- std::cout << std::endl << "#if defined BOOST_MSVC" << std::endl;
- std::cout << " #pragma warning (pop)" << std::endl;
- std::cout << "#endif" << std::endl << std::endl;
-
- return 0;
-}
-

Deleted: sandbox/tree_node/libs/tree_node/example/iterator_functions.hpp
==============================================================================
--- sandbox/tree_node/libs/tree_node/example/iterator_functions.hpp 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84956)
+++ /dev/null 00:00:00 1970 (deleted)
@@ -1,83 +0,0 @@
-// 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)
-
-#ifndef LIBS_TREE_NODE_EXAMPLE_ITERATOR_FUNCTIONS_HPP_INCLUDED
-#define LIBS_TREE_NODE_EXAMPLE_ITERATOR_FUNCTIONS_HPP_INCLUDED
-
-#include <iostream>
-#include <boost/tree_node/iterator/breadth_first.hpp>
-#include <boost/tree_node/iterator/breadth_first_descendant.hpp>
-#include <boost/tree_node/iterator/pre_order.hpp>
-#include <boost/tree_node/iterator/pre_order_descendant.hpp>
-#include <boost/tree_node/iterator/post_order.hpp>
-#include <boost/tree_node/iterator/post_order_descendant.hpp>
-#include <boost/tree_node/iterator/depth_first.hpp>
-#include <boost/tree_node/iterator/depth_first_descendant.hpp>
-#include <boost/tree_node/iterator/in_order.hpp>
-#include <boost/tree_node/iterator/dereference.hpp>
-
-template <typename NodeIterator, typename Function>
-void iterator_out(NodeIterator itr, Function f, unsigned int n)
-{
- for (unsigned int i = 0; itr; ++itr)
- {
- if (!i)
- {
- std::cout << std::endl << " ";
- }
-
- f(*itr);
-
- if (++i == n)
- {
- i = 0;
- }
- }
-}
-
-template <typename NodeIterator, typename Function>
-void iterator_out(NodeIterator itr, Function f, char const* text)
-{
- for (std::cout << ';' << std::endl << text; itr; ++itr)
- {
- f(
- boost::tree_node::dereference_iterator(itr)
- , boost::tree_node::traversal_state(itr)
- );
- }
-
- std::cout << ';' << std::endl;
-}
-
-template <typename Node, typename Function>
-void iterator_out_bf_pre_post(Node const& node, Function f, unsigned int n)
-{
- std::cout << std::endl << " emplacer[bf_vals]";
- iterator_out(boost::tree_node::make_breadth_first_iterator(node), f, n);
- std::cout << ';' << std::endl << " emplacer[pre_vals]";
- iterator_out(boost::tree_node::make_pre_order_iterator(node), f, n);
- std::cout << ';' << std::endl << " emplacer[post_vals]";
- iterator_out(boost::tree_node::make_post_order_iterator(node), f, n);
-}
-
-template <typename Node, typename Function>
-void iterator_out_in_order(Node const& node, Function f, unsigned int n)
-{
- std::cout << ';' << std::endl << " emplacer[in_vals]";
- iterator_out(boost::tree_node::make_in_order_iterator(node), f, n);
-}
-
-template <typename Node, typename Function>
-void iterator_out_df(Node const& node, Function f)
-{
- iterator_out(
- boost::tree_node::make_depth_first_iterator(node)
- , f
- , " emplacer[df_vals]"
- );
-}
-
-#endif // LIBS_TREE_NODE_EXAMPLE_ITERATOR_FUNCTIONS_HPP_INCLUDED
-

Deleted: sandbox/tree_node/libs/tree_node/example/match_predicate.hpp
==============================================================================
--- sandbox/tree_node/libs/tree_node/example/match_predicate.hpp 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84956)
+++ /dev/null 00:00:00 1970 (deleted)
@@ -1,95 +0,0 @@
-// 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)
-
-#ifndef LIBS_TREE_NODE_EXAMPLE_MATCH_PREDICATE_HPP_INCLUDED
-#define LIBS_TREE_NODE_EXAMPLE_MATCH_PREDICATE_HPP_INCLUDED
-
-#include <boost/config.hpp>
-#include <boost/mpl/bool.hpp>
-#include <boost/utility/get_iterator_second.hpp>
-#include <boost/utility/get_iterator_value_second.hpp>
-#include <boost/container_gen/is_ptr_selector.hpp>
-
-template <typename Node, typename Selector>
-class example_match_predicate
-{
- typename Node::iterator _itr;
-
- public:
- explicit example_match_predicate(typename Node::iterator itr);
-
- template <typename P>
- bool operator()(P const& p) const;
-
- private:
- template <typename P>
- bool _evaluate(P const& p, boost::mpl::true_) const;
-
- template <typename P>
- bool _evaluate(P const& p, boost::mpl::false_) const;
-};
-
-template <typename Node, typename Selector>
-example_match_predicate<Node,Selector>::example_match_predicate(
- typename Node::iterator itr
-) : _itr(itr)
-{
-}
-
-template <typename Node, typename Selector>
-template <typename P>
-inline bool
- example_match_predicate<Node,Selector>::operator()(P const& p) const
-{
- return _evaluate(p, boost::is_ptr_selector<Selector>());
-}
-
-template <typename Node, typename Selector>
-template <typename P>
-inline bool
- example_match_predicate<Node,Selector>::_evaluate(
- P const& p
- , boost::mpl::true_
- ) const
-{
-#if defined BOOST_NO_SFINAE
- return get(
- boost::get_iterator_value_second(p)
- , boost::tree_node::data_key()
- ) == get(
- boost::get_iterator_second(_itr)
- , boost::tree_node::data_key()
- );
-#else
- return boost::tree_node::get<boost::tree_node::data_key>(
- boost::get_iterator_value_second(p)
- ) == boost::tree_node::get<boost::tree_node::data_key>(
- boost::get_iterator_second(_itr)
- );
-#endif
-}
-
-template <typename Node, typename Selector>
-template <typename P>
-inline bool
- example_match_predicate<Node,Selector>::_evaluate(
- P const& p
- , boost::mpl::false_
- ) const
-{
-#if defined BOOST_NO_SFINAE
- return get(p.second, boost::tree_node::data_key()) == get(
- _itr->second
- , boost::tree_node::data_key()
- );
-#else
- return boost::tree_node::get<boost::tree_node::data_key>(
- p.second
- ) == boost::tree_node::get<boost::tree_node::data_key>(_itr->second);
-#endif
-}
-
-#endif // LIBS_TREE_NODE_EXAMPLE_MATCH_PREDICATE_HPP_INCLUDED
-

Deleted: sandbox/tree_node/libs/tree_node/example/nary_node.cpp
==============================================================================
--- sandbox/tree_node/libs/tree_node/example/nary_node.cpp 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84956)
+++ /dev/null 00:00:00 1970 (deleted)
@@ -1,703 +0,0 @@
-// 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)
-
-//#define LIBS_TREE_NODE_EXAMPLE_NARY_NODE_SPLICE_ONE_ELEMENT
-
-#include <iterator>
-#include <iostream>
-#include <boost/config.hpp>
-#include <boost/tr1/type_traits.hpp>
-#include <boost/typeof/boost/container_gen/selectors.hpp>
-#include <boost/typeof/boost/rational.hpp>
-#include <boost/typeof/boost/tree_node/nary_node.hpp>
-#include <boost/typeof/boost/tree_node/with_count.hpp>
-#include <boost/typeof/boost/tree_node/with_height.hpp>
-#include <boost/typeof/boost/tree_node/with_position.hpp>
-#include <boost/tree_node/iterator/breadth_first.hpp>
-#include <boost/tree_node/iterator/pre_order_descendant.hpp>
-#include <boost/tree_node/iterator/post_order.hpp>
-#include <boost/tree_node/preprocessor.hpp>
-
-#if defined BOOST_TREE_NODE_CAN_USE_FUSION
-#include <boost/typeof/boost/tree_node/with_accumulation.hpp>
-#endif
-
-#include "type_definitions.hpp"
-#include "output_preamble.hpp"
-#include "output_functions.hpp"
-#include "iterator_functions.hpp"
-
-template <typename Selector, typename Node>
-void initialize(Node& root)
-{
- for (boost::tree_node::breadth_first_iterator<Node> itr(root); itr; ++itr)
- {
- typename Node::traits::data_type const& data = get(
- *itr
- , boost::tree_node::data_key()
- );
-
- if (1 < data)
- {
- for (std::size_t i = 0; i < data; ++i)
- {
-#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- if (std::tr1::is_same<Selector,boost::slistS>::value)
- (*itr).emplace(data - 1 - i);
- else
-#endif
- (*itr).emplace(i);
- }
- }
- }
-}
-
-#if defined BOOST_TREE_NODE_CAN_USE_FUSION
-template <typename DNode, typename ANode>
-void out_with_them(DNode const& d_node, ANode const& a_node)
-{
- std::cout << std::endl << "#if defined BOOST_TREE_NODE_CAN_USE_FUSION";
- iterator_out_bf_pre_post(a_node, output_node<boost::mpl::true_>(), 1);
- iterator_out_df(a_node, output_tree<boost::mpl::true_>(2, 7, true));
- std::cout << "#else // !defined BOOST_TREE_NODE_CAN_USE_FUSION";
- iterator_out_bf_pre_post(d_node, output_node<boost::mpl::false_>(), 7);
- iterator_out_df(d_node, output_tree<boost::mpl::false_>(2, 7, true));
- std::cout << "#endif // BOOST_TREE_NODE_CAN_USE_FUSION" << std::endl;
-}
-
-template <typename FNode>
-void out_with_all(FNode const& f_node)
-{
- iterator_out_bf_pre_post(f_node, output_uint_char_node(), 5);
- iterator_out_df(f_node, output_uint_char_tree(2, 7, true));
-}
-#else // !defined BOOST_TREE_NODE_CAN_USE_FUSION
-template <typename DNode>
-void out_with_it(DNode const& d_node)
-{
- iterator_out_bf_pre_post(d_node, output_node<boost::mpl::false_>(), 7);
- iterator_out_df(d_node, output_tree<boost::mpl::false_>(2, 7, true));
-}
-#endif // BOOST_TREE_NODE_CAN_USE_FUSION
-
-template <typename Selector>
-void example()
-{
- typedef boost::tree_node::with_height<
- boost::tree_node::with_position_base_gen<
- boost::tree_node::with_count_base_gen<
- boost::tree_node::nary_node_base_gen<Selector>
- >
- >
- , boost::rational<long>
- >
- DNode;
-
- DNode d_root(5);
-
- initialize<Selector>(d_root);
-
-#if defined BOOST_TREE_NODE_CAN_USE_FUSION
- typedef boost::tree_node::with_accumulation<
- boost::tree_node::with_height_base_gen<
- boost::tree_node::with_accumulation_base_gen<
- boost::tree_node::with_position_base_gen<
- boost::tree_node::with_accumulation_base_gen<
- boost::tree_node::with_count_base_gen<
- boost::tree_node::with_accumulation_base_gen<
- boost::tree_node::nary_node_base_gen<Selector>
- >
- >
- , AccuAccuKey
- >
- >
- , AccuCountKey
- >
- >
- , boost::rational<long>
- , void
- , AccuHeightKey
- >
- ANode;
-
- ANode a_root(5);
-
- initialize<Selector>(a_root);
-#endif // BOOST_TREE_NODE_CAN_USE_FUSION
-
- output_copyright_and_config_preamble();
- std::cout << std::endl << "#include <iterator>";
- output_header_and_type_preamble();
- std::cout << "#include <boost/typeof/boost/tree_node/nary_node.hpp>";
- std::cout << std::endl << std::endl << "template <typename Selector>";
- std::cout << std::endl << "void test()" << std::endl << '{' << std::endl;
-#if defined BOOST_TREE_NODE_CAN_USE_FUSION
- std::cout << "#if defined BOOST_TREE_NODE_CAN_USE_FUSION" << std::endl << (
- " typedef boost::tree_node::with_accumulation<"
- ) << std::endl << " boost::tree_node::with_height_base_gen<";
- std::cout << std::endl << (
- " boost::tree_node::with_accumulation_base_gen<"
- ) << std::endl << (
- " boost::tree_node::with_position_base_gen<"
- ) << std::endl << (
- " boost::tree_node::with_accumulation_base_gen<"
- ) << std::endl << (
- " boost::tree_node::with_count_base_gen<"
- ) << std::endl << " boost";
- std::cout << "::tree_node::with_accumulation_base_gen<" << std::endl << (
- " boost::tree_node::nary_node_base_gen"
- ) << "<Selector>" << std::endl << " >" << std::endl;
- std::cout << " >" << std::endl;
- std::cout << " , AccuAccuKey" << std::endl;
- std::cout << " >" << std::endl;
- std::cout << " >" << std::endl;
- std::cout << " , AccuCountKey" << std::endl;
- std::cout << " >" << std::endl << " >";
- std::cout << std::endl << " , boost::rational<long>";
- std::cout << std::endl << " , void" << std::endl;
- std::cout << " , AccuHeightKey" << std::endl << " >";
- std::cout << std::endl << " ANode;" << std::endl << (
- "#else // !defined BOOST_TREE_NODE_CAN_USE_FUSION"
- ) << std::endl;
-#endif // BOOST_NO_SFINAE
- std::cout << " typedef boost::tree_node::with_height<" << std::endl << (
- " boost::tree_node::with_position_base_gen<"
- ) << std::endl << (
- " boost::tree_node::with_count_base_gen<"
- ) << std::endl << " " << (
- "boost::tree_node::nary_node_base_gen<Selector>"
- ) << std::endl << " >" << std::endl;
- std::cout << " >" << std::endl;
- std::cout << " , boost::rational<long>" << std::endl;
- std::cout << " >" << std::endl;
- std::cout << " ANode;" << std::endl;
-#if defined BOOST_TREE_NODE_CAN_USE_FUSION
- std::cout << "#endif // BOOST_TREE_NODE_CAN_USE_FUSION" << std::endl;
-#endif
- output_container_type_preamble();
- std::cout << std::endl << " ANode a_root(5);" << std::endl;
- std::cout << std::endl << " BOOST_CHECK(" << std::endl;
- std::cout << " !a_root.get_parent_ptr()" << std::endl;
- std::cout << "// , \"Parent member uninitialized.\"" << std::endl;
- std::cout << " );" << std::endl << std::endl;
- std::cout << " for (" << std::endl << (
- " boost::tree_node::breadth_first_iterator<ANode> itr(a_root);"
- ) << std::endl << " itr;" << std::endl << " ++itr";
- std::cout << std::endl << " )" << std::endl << " {" << std::endl << (
- " typename ANode::traits::data_type const& data = get("
- ) << std::endl << " *itr" << std::endl;
- std::cout << " , boost::tree_node::data_key()" << std::endl;
- std::cout << " );" << std::endl << std::endl;
- std::cout << " if (1 < data)";
- std::cout << std::endl << " {" << std::endl;
- std::cout << " for (std::size_t i = 0; i < data; ++i)";
- std::cout << std::endl << " {" << std::endl << (
- " typename ANode::iterator child_itr("
- ) << std::endl << "#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION";
- std::cout << std::endl << " " << (
- "(std::tr1::is_same<Selector,boost::slistS>::value) ? ("
- ) << std::endl << " (*itr).emplace(data - 1 - i)";
- std::cout << std::endl << " ) : " << std::endl;
- std::cout << "#endif" << std::endl << (
- " (*itr).emplace(i)"
- ) << std::endl << " );" << std::endl << " " << (
- " typename ANode::const_pointer const_child(&*child_itr);"
- ) << std::endl << std::endl << " BOOST_CHECK(" << std::endl;
- std::cout << " (*child_itr).get_parent_ptr() == &*itr";
- std::cout << std::endl << (
- "// , \"Ctor not linking child to parent.\""
- ) << std::endl << " );" << std::endl;
- std::cout << " BOOST_CHECK(" << std::endl;
- std::cout << " (" << std::endl << (
- " (*child_itr).get_parent_ptr()"
- ) << std::endl << (
- " ) == (*const_child).get_parent_ptr()"
- ) << std::endl;
- std::cout << "// , \"Why are these pointers different?\"";
- std::cout << std::endl << " );" << std::endl << std::endl;
- std::cout << " {" << std::endl << (
- " typename ANode::iterator c_itr = (*itr).begin();"
- ) << std::endl << std::endl << (
- "#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION"
- ) << std::endl << " " << (
- "if (!std::tr1::is_same<Selector,boost::slistS>::value)"
- ) << std::endl << "#endif" << std::endl;
- std::cout << " std::advance(c_itr, i);" << std::endl;
- std::cout << " BOOST_CHECK(" << std::endl;
- std::cout << " &*child_itr == &*c_itr" << std::endl;
- std::cout << "// " << (
- ", \"Ctor not linking parent to child.\""
- ) << std::endl << " );" << std::endl;
- std::cout << " }" << std::endl << " }";
- std::cout << std::endl << " }" << std::endl << " }";
- std::cout << std::endl << std::endl << " {" << std::endl;
- std::cout << " Values bf_vals, pre_vals, post_vals;";
- std::cout << std::endl << " DFValues df_vals;" << std::endl;
- std::cout << " Emplacer emplacer;" << std::endl;
-#if defined BOOST_TREE_NODE_CAN_USE_FUSION
- out_with_them(d_root, a_root);
-#else
- out_with_it(d_root);
-#endif
- std::cout << " test_node<a_node_case>(a_root, bf_vals, pre_vals,";
- std::cout << " post_vals, df_vals);" << std::endl;
- std::cout << " }" << std::endl << std::endl;
-
- {
- typename DNode::iterator d_child_itr(
- (*(++d_root.begin())).insert(d_root)
- );
-#if defined BOOST_TREE_NODE_CAN_USE_FUSION
- typename ANode::iterator a_child_itr(
- (*(++a_root.begin())).insert(a_root)
- );
-#endif
-
- std::cout << " {" << std::endl << " ANode a_copy(a_root);";
- std::cout << std::endl << (
- " boost::tree_node::breadth_first_iterator<ANode const>"
- ) << std::endl << (
- " bf_root_itr(a_root), bf_copy_itr(a_copy);"
- ) << std::endl << " boost::tree_node::breadth_first";
- std::cout << "_descendant_iterator<ANode const>" << std::endl << (
- " bf_d_root_itr(a_root), bf_d_copy_itr(a_copy);"
- ) << std::endl << (
- " boost::tree_node::pre_order_iterator<ANode const>"
- ) << std::endl << (
- " pre_root_itr(a_root), pre_copy_itr(a_copy);"
- ) << std::endl << " boost::tree_node::pre_order";
- std::cout << "_descendant_iterator<ANode const>" << std::endl << (
- " pre_d_root_itr(a_root), pre_d_copy_itr(a_copy);"
- ) << std::endl << (
- " boost::tree_node::post_order_iterator<ANode const>"
- ) << std::endl << (
- " post_root_itr(a_root), post_copy_itr(a_copy);"
- ) << std::endl << " boost::tree_node::post_order";
- std::cout << "_descendant_iterator<ANode const>" << std::endl << (
- " post_d_root_itr(a_root), post_d_copy_itr(a_copy);"
- ) << std::endl << (
- " boost::tree_node::depth_first_iterator<ANode const>"
- ) << std::endl << (
- " df_root_itr(a_root), df_copy_itr(a_copy);"
- ) << std::endl << " boost::tree_node::depth_first";
- std::cout << "_descendant_iterator<ANode const>" << std::endl << (
- " df_d_root_itr(a_root), df_d_copy_itr(a_copy);"
- ) << std::endl << std::endl << (
- " BOOST_CHECK(test_node_copies(bf_root_itr, bf_copy_itr));"
- ) << std::endl << " BOOST_CHECK(" << (
- "test_node_copies(bf_d_root_itr, bf_d_copy_itr));"
- ) << std::endl << " BOOST_CHECK(" << (
- "test_node_copies(pre_root_itr, pre_copy_itr));"
- ) << std::endl << " BOOST_CHECK(" << (
- "test_node_copies(pre_d_root_itr, pre_d_copy_itr));"
- ) << std::endl << " BOOST_CHECK(" << (
- "test_node_copies(post_root_itr, post_copy_itr));"
- ) << std::endl << " BOOST_CHECK(" << (
- "test_node_copies(post_d_root_itr, post_d_copy_itr));"
- ) << std::endl << (
- " BOOST_CHECK(test_node_copies(df_root_itr, df_copy_itr));"
- ) << std::endl << " BOOST_CHECK(" << (
- "test_node_copies(df_d_root_itr, df_d_copy_itr));"
- ) << std::endl << " }" << std::endl << std::endl << " {";
- std::cout << std::endl << (
- " typename ANode::iterator a_child_itr("
- ) << std::endl << " (*(++a_root.begin())).insert(a_root)";
- std::cout << std::endl << " );" << std::endl;
- std::cout << " Values bf_vals, pre_vals, post_vals;";
- std::cout << std::endl << " DFValues df_vals;" << std::endl;
- std::cout << " Emplacer emplacer;" << std::endl;
-#if defined BOOST_TREE_NODE_CAN_USE_FUSION
- out_with_them(d_root, a_root);
-#else
- out_with_it(d_root);
-#endif
- std::cout << " test_node<a_node_case>(a_root, bf_vals, pre_";
- std::cout << "vals, post_vals, df_vals);" << std::endl << std::endl;
-
- d_root = *d_child_itr;
-#if defined BOOST_TREE_NODE_CAN_USE_FUSION
- a_root = *a_child_itr;
-#endif
- std::cout << " a_root = *a_child_itr;" << std::endl;
- std::cout << " bf_vals.clear();" << std::endl;
- std::cout << " pre_vals.clear();" << std::endl;
- std::cout << " post_vals.clear();" << std::endl;
- std::cout << " df_vals.clear();" << std::endl;
-#if defined BOOST_TREE_NODE_CAN_USE_FUSION
- out_with_them(d_root, a_root);
-#else
- out_with_it(d_root);
-#endif
- std::cout << " test_node<a_node_case>(a_root, bf_vals, pre_";
- std::cout << "vals, post_vals, df_vals);" << std::endl << std::endl;
-
- d_child_itr = d_root.begin();
- std::advance(d_child_itr, 4);
- d_child_itr = (*d_child_itr).begin();
- *d_child_itr = d_root;
-#if defined BOOST_TREE_NODE_CAN_USE_FUSION
- a_child_itr = a_root.begin();
- std::advance(a_child_itr, 4);
- a_child_itr = (*a_child_itr).begin();
- *a_child_itr = a_root;
-#endif
- std::cout << " a_child_itr = a_root.begin();" << std::endl;
- std::cout << " std::advance(a_child_itr, 4);" << std::endl;
- std::cout << " a_child_itr = (*a_child_itr).begin();";
- std::cout << std::endl << " *a_child_itr = a_root;";
- std::cout << std::endl << " test_node<a_node_case>(";
- std::cout << std::endl << " *a_child_itr" << std::endl;
- std::cout << " , bf_vals" << std::endl;
- std::cout << " , pre_vals" << std::endl;
- std::cout << " , post_vals" << std::endl;
- std::cout << " , df_vals" << std::endl << " );";
- std::cout << std::endl << std::endl << " bf_vals.clear();";
- std::cout << std::endl << " pre_vals.clear();" << std::endl;
- std::cout << " post_vals.clear();" << std::endl;
- std::cout << " df_vals.clear();" << std::endl;
-#if defined BOOST_TREE_NODE_CAN_USE_FUSION
- out_with_them(d_root, a_root);
-#else
- out_with_it(d_root);
-#endif
- std::cout << " test_node<a_node_case>(a_root, bf_vals, pre_";
- std::cout << "vals, post_vals, df_vals);" << std::endl;
-
- d_child_itr = (*d_child_itr).begin();
- std::advance(d_child_itr, 2);
-
- typename DNode::iterator d_desc_itr = d_child_itr;
- typename DNode::iterator d_src_itr = (*(++d_desc_itr)).begin();
- typename DNode::iterator d_end_itr = (*d_desc_itr).end();
-
- (*d_child_itr).splice(
- ++(*d_child_itr).begin()
- , *d_desc_itr
- , ++d_src_itr
- , d_end_itr
- );
-#if defined BOOST_TREE_NODE_CAN_USE_FUSION
- a_child_itr = (*a_child_itr).begin();
- std::advance(a_child_itr, 2);
-
- typename ANode::iterator a_desc_itr = a_child_itr;
- typename ANode::iterator a_src_itr = (*(++a_desc_itr)).begin();
- typename ANode::iterator a_end_itr = (*a_desc_itr).end();
-
- (*a_child_itr).splice(
- ++(*a_child_itr).begin()
- , *a_desc_itr
- , ++a_src_itr
- , a_end_itr
- );
-#endif
- std::cout << " a_child_itr = (*a_child_itr).begin();";
- std::cout << std::endl << " std::advance(a_child_itr, 2);";
- std::cout << std::endl << std::endl << " typename ANode::";
- std::cout << "iterator a_desc_itr = a_child_itr;" << std::endl;
- std::cout << " typename ANode::iterator a_src_itr";
- std::cout << " = (*(++a_desc_itr)).begin();" << std::endl;
- std::cout << " typename ANode::iterator a_end_itr";
- std::cout << " = (*a_desc_itr).end();" << std::endl << std::endl;
- std::cout << " (*a_child_itr).splice(" << std::endl;
- std::cout << " ++(*a_child_itr).begin()" << std::endl;
- std::cout << " , *a_desc_itr" << std::endl;
- std::cout << " , ++a_src_itr" << std::endl;
- std::cout << " , a_end_itr" << std::endl << " );";
- std::cout << std::endl << " bf_vals.clear();" << std::endl;
- std::cout << " pre_vals.clear();" << std::endl;
- std::cout << " post_vals.clear();" << std::endl;
- std::cout << " df_vals.clear();" << std::endl;
-#if defined BOOST_TREE_NODE_CAN_USE_FUSION
- out_with_them(d_root, a_root);
-#else
- out_with_it(d_root);
-#endif
- std::cout << " test_node<a_node_case>(a_root, bf_vals, pre_";
- std::cout << "vals, post_vals, df_vals);" << std::endl;
-
-#if defined LIBS_TREE_NODE_EXAMPLE_NARY_NODE_SPLICE_ONE_ELEMENT
- d_child_itr = d_root.begin();
- std::advance(d_child_itr, 2);
- d_desc_itr = d_child_itr;
- d_src_itr = (*(++d_desc_itr)).begin();
-// d_end_itr = ++d_src_itr;
- (*d_child_itr).splice(
- ++(*d_child_itr).begin()
- , *d_desc_itr
- , ++d_src_itr
-// , ++++d_end_itr
- );
-#if defined BOOST_TREE_NODE_CAN_USE_FUSION
- a_child_itr = a_root.begin();
- std::advance(a_child_itr, 2);
- a_desc_itr = a_child_itr;
- a_src_itr = (*(++a_desc_itr)).begin();
-// a_end_itr = ++a_src_itr;
- (*a_child_itr).splice(
- ++(*a_child_itr).begin()
- , *a_desc_itr
- , ++a_src_itr
-// , ++++a_end_itr
- );
-#endif
- std::cout << " a_child_itr = a_root.begin();" << std::endl;
- std::cout << " std::advance(a_child_itr, 2);" << std::endl;
- std::cout << " a_desc_itr = a_child_itr;" << std::endl;
- std::cout << " a_src_itr = (*(++a_desc_itr)).begin();";
- std::cout << std::endl << "// a_end_itr = ++a_src_itr;";
- std::cout << std::endl << " (*a_child_itr).splice(";
- std::cout << std::endl << " ++(*a_child_itr).begin()";
- std::cout << std::endl << " , *a_desc_itr" << std::endl;
- std::cout << " , ++a_src_itr" << std::endl;
- std::cout << "// , ++++a_end_itr" << std::endl;
- std::cout << " );" << std::endl << " bf_vals.clear();";
- std::cout << std::endl << " pre_vals.clear();" << std::endl;
- std::cout << " post_vals.clear();" << std::endl;
- std::cout << " df_vals.clear();" << std::endl;
-#if defined BOOST_TREE_NODE_CAN_USE_FUSION
- out_with_them(d_root, a_root);
-#else
- out_with_it(d_root);
-#endif
- std::cout << " test_node<a_node_case>(a_root, bf_vals, pre_";
- std::cout << "vals, post_vals, df_vals);" << std::endl;
-#endif // LIBS_TREE_NODE_EXAMPLE_NARY_NODE_SPLICE_ONE_ELEMENT
-
- std::cout << " }" << std::endl << std::endl;
- }
-
- {
- typename DNode::iterator d_child_itr(d_root.begin());
-
- std::advance(d_child_itr, 3);
- (*d_child_itr).clear();
- }
-
-#if defined BOOST_TREE_NODE_CAN_USE_FUSION
- {
- typename ANode::iterator a_child_itr(a_root.begin());
-
- std::advance(a_child_itr, 3);
- (*a_child_itr).clear();
- }
-#endif
-
- std::cout << " {" << std::endl << (
- " typename ANode::iterator a_child_itr(a_root.begin());"
- ) << std::endl << std::endl << " std::advance(a_child_itr, 3);";
- std::cout << std::endl << " (*a_child_itr).clear();" << std::endl;
- std::cout << std::endl << " Values bf_vals, pre_vals, post_vals;";
- std::cout << std::endl << " DFValues df_vals;" << std::endl;
- std::cout << " Emplacer emplacer;" << std::endl;
-#if defined BOOST_TREE_NODE_CAN_USE_FUSION
- out_with_them(d_root, a_root);
-#else
- out_with_it(d_root);
-#endif
- std::cout << " test_node<a_node_case>(a_root, bf_vals, pre_vals,";
- std::cout << " post_vals, df_vals);" << std::endl << " }" << std::endl;
-
-#if defined BOOST_TREE_NODE_CAN_USE_FUSION
- typedef boost::tree_node::with_accumulation<
- boost::tree_node::nary_node_base_gen<Selector>
- , DataMap
- , void
- , AccuYourUintKey
- >
- FNode;
-
- FNode f_root(
- boost::fusion::make_pair<example_keys::your_uint>(5)
- , boost::fusion::make_pair<example_keys::your_char>('5')
- );
-
- for (
- boost::tree_node::breadth_first_iterator<FNode> itr(f_root);
- itr;
- ++itr
- )
- {
- typename boost::tree_node::result_of::value_at_key<
- FNode const
- , example_keys::your_uint
- >::type data = boost::tree_node::get<example_keys::your_uint>(*itr);
-
- if (1 < data)
- {
- for (unsigned int i = 0; i < data; ++i)
- {
- if (std::tr1::is_same<Selector,boost::slistS>::value)
- {
- (*itr).emplace(
- boost::fusion::make_pair<example_keys::your_uint>(
- data - 1 - i
- )
- , boost::fusion::make_pair<example_keys::your_char>(
- '0' + data - 1 - i
- )
- );
- }
- else
- {
- (*itr).emplace(
- boost::fusion::make_pair<example_keys::your_uint>(i)
- , boost::fusion::make_pair<example_keys::your_char>(
- '0' + i
- )
- );
- }
- }
- }
- }
-
- std::cout << std::endl << "#if defined BOOST_TREE_NODE_CAN_USE_FUSION";
- std::cout << std::endl << (
- " typedef boost::tree_node::with_accumulation<"
- ) << std::endl << (
- " boost::tree_node::nary_node_base_gen<Selector>"
- ) << std::endl << " , DataMap" << std::endl;
- std::cout << " , void" << std::endl;
- std::cout << " , AccuYourUintKey" << std::endl;
- std::cout << " >" << std::endl << " FNode;";
- output_container_fused_type_preamble();
- std::cout << std::endl << " FNode f_root(" << std::endl << (
- " boost::fusion::make_pair<example_keys::your_uint>(5)"
- ) << std::endl << (
- " , boost::fusion::make_pair<example_keys::your_char>(\'5\')"
- ) << std::endl << " );" << std::endl << std::endl;
- std::cout << " for (" << std::endl << (
- " boost::tree_node::breadth_first_iterator<FNode> itr(f_root);"
- ) << std::endl << " itr;" << std::endl << " ++itr";
- std::cout << std::endl << " )" << std::endl << " {" << std::endl;
- std::cout << " typename boost::tree_node::result_of::value_at_key<";
- std::cout << std::endl << " FNode const" << std::endl;
- std::cout << " , example_keys::your_uint" << std::endl << (
- " >::type data = boost::tree_node::get<example_keys::your_uint>"
- ) << "(*itr);" << std::endl << std::endl;
- std::cout << " if (1 < data)" << std::endl << " {";
- std::cout << std::endl << (
- " for (unsigned int i = 0; i < data; ++i)"
- ) << std::endl << " {" << std::endl << (
- " if (std::tr1::is_same<Selector,boost::slistS>::value)"
- ) << std::endl << " {" << std::endl;
- std::cout << " (*itr).emplace(" << std::endl << (
- " boost::fusion::make_pair<example_keys::your_"
- ) << "uint>(" << std::endl << " data - 1 - i";
- std::cout << std::endl << " )" << std::endl << (
- " , boost::fusion::make_pair<example_keys::your_"
- ) << "char>(" << std::endl << (
- " \'0\' + data - 1 - i"
- ) << std::endl << " )" << std::endl;
- std::cout << " );" << std::endl << " }";
- std::cout << std::endl << " else" << std::endl;
- std::cout << " {" << std::endl;
- std::cout << " (*itr).emplace(" << std::endl << (
- " boost::fusion::make_pair<example_keys::your_"
- ) << "uint>(i)" << std::endl << " , boost::" << (
- "fusion::make_pair<example_keys::your_char>("
- ) << std::endl << " \'0\' + i" << std::endl;
- std::cout << " )" << std::endl;
- std::cout << " );" << std::endl;
- std::cout << " }" << std::endl;
- std::cout << " }" << std::endl;
- std::cout << std::endl << " }" << std::endl << " }" << std::endl;
- std::cout << std::endl << " {" << std::endl;
- std::cout << " MoreValues bf_vals, pre_vals, post_vals;";
- std::cout << std::endl << " DFMoreValues df_vals;" << std::endl;
- std::cout << " Emplacer emplacer;" << std::endl;
- out_with_all(f_root);
- std::cout << " test_node<f_node_case>(f_root, bf_vals, pre_vals,";
- std::cout << " post_vals, df_vals);" << std::endl << std::endl << (
- " typename FNode::iterator f_child_itr(f_root.begin());"
- ) << std::endl << std::endl << " std::advance(f_child_itr, 3);";
- std::cout << std::endl << " f_child_itr = (*f_child_itr).begin();";
- std::cout << std::endl << " std::advance(f_child_itr, 2);";
- std::cout << std::endl << " " << (
- "boost::tree_node::put(*f_child_itr, example_keys::your_uint(), 7);"
- ) << std::endl << " bf_vals.clear();" << std::endl;
- std::cout << " pre_vals.clear();" << std::endl;
- std::cout << " post_vals.clear();" << std::endl;
- std::cout << " df_vals.clear();" << std::endl;
-
- {
- typename FNode::iterator f_child_itr(f_root.begin());
-
- std::advance(f_child_itr, 3);
- f_child_itr = (*f_child_itr).begin();
- std::advance(f_child_itr, 2);
- put(*f_child_itr, example_keys::your_uint(), 7);
- }
-
- out_with_all(f_root);
- std::cout << " test_node<f_node_case>(f_root, bf_vals, pre_vals,";
- std::cout << " post_vals, df_vals);" << std::endl << " }" << std::endl;
- std::cout << "#endif // BOOST_TREE_NODE_CAN_USE_FUSION" << std::endl;
-#endif // BOOST_TREE_NODE_CAN_USE_FUSION
-
- std::cout << '}' << std::endl << std::endl << "#if defined BOOST_MSVC";
- std::cout << std::endl << " #pragma warning (pop)" << std::endl;
- std::cout << "#endif" << std::endl << std::endl;
- std::cout << "#if defined BOOST_TYPEOF_EMULATION" << std::endl << (
- "#include <boost/typeof/boost/ptr_container/ptr_vector.hpp>"
- ) << std::endl << (
- "#include <boost/typeof/boost/ptr_container/ptr_deque.hpp>"
- ) << std::endl << (
- "#include <boost/typeof/boost/ptr_container/ptr_list.hpp>"
- ) << std::endl << "#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION";
- std::cout << std::endl << (
- "#include <boost/typeof/boost/container/vector.hpp>"
- ) << std::endl << (
- "#include <boost/typeof/boost/container/stable_vector.hpp>"
- ) << std::endl << "#include <boost/typeof/boost/container/deque.hpp>";
- std::cout << std::endl << (
- "#include <boost/typeof/boost/container/slist.hpp>"
- ) << std::endl << "#include <boost/typeof/boost/container/list.hpp>";
- std::cout << std::endl << (
- "#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION"
- ) << std::endl << "#endif // BOOST_TYPEOF_EMULATION" << std::endl;
- std::cout << std::endl << "int test_main(int argc, char** argv)";
- std::cout << std::endl << '{' << std::endl;
- std::cout << " test<boost::ptr_vecS>();" << std::endl;
- std::cout << " test<boost::ptr_dequeS>();" << std::endl;
- std::cout << " test<boost::ptr_listS>();" << std::endl << (
- "#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION"
- ) << std::endl << (
- " test<boost::vector_selector<boost::mpl::true_> >();"
- ) << std::endl << " test<boost::stable_vecS>();" << std::endl << (
- " test<boost::deque_selector<boost::mpl::true_> >();"
- ) << std::endl << " test<boost::slistS>();" << std::endl << (
- " test<boost::list_selector<boost::mpl::true_> >();"
- ) << std::endl << "#endif" << std::endl << std::endl;
- std::cout << " return 0;" << std::endl << '}' << std::endl << std::endl;
-}
-
-#if defined BOOST_TYPEOF_EMULATION
-#if defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-#include <boost/typeof/boost/ptr_container/ptr_vector.hpp>
-#elif defined LIBS_TREE_NODE_EXAMPLE_NARY_NODE_USE_VECTOR
-#include <boost/typeof/boost/mpl/bool.hpp>
-#include <boost/typeof/boost/container/vector.hpp>
-#elif defined LIBS_TREE_NODE_EXAMPLE_NARY_NODE_USE_STABLE_VECTOR
-#include <boost/typeof/boost/container/stable_vector.hpp>
-#else // !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-#include <boost/typeof/boost/container/slist.hpp>
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-#endif // BOOST_TYPEOF_EMULATION
-
-int main()
-{
-#if defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- example<boost::ptr_vecS>();
-#elif defined LIBS_TREE_NODE_EXAMPLE_NARY_NODE_USE_VECTOR
- example<boost::vector_selector<boost::mpl::true_> >();
-#elif defined LIBS_TREE_NODE_EXAMPLE_NARY_NODE_USE_STABLE_VECTOR
- example<boost::stable_vecS>();
-#else
- example<boost::slistS>();
-#endif
- return 0;
-}
-

Deleted: sandbox/tree_node/libs/tree_node/example/output_functions.hpp
==============================================================================
--- sandbox/tree_node/libs/tree_node/example/output_functions.hpp 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84956)
+++ /dev/null 00:00:00 1970 (deleted)
@@ -1,367 +0,0 @@
-// 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)
-
-#ifndef LIBS_TREE_NODE_EXAMPLE_OUTPUT_FUNCTIONS_HPP_INCLUDED
-#define LIBS_TREE_NODE_EXAMPLE_OUTPUT_FUNCTIONS_HPP_INCLUDED
-
-#include <iostream>
-#include <boost/mpl/bool.hpp>
-#include <boost/tree_node/traversal_state.hpp>
-#include <boost/tree_node/key/data.hpp>
-#include <boost/tree_node/key/count.hpp>
-#include <boost/tree_node/key/height.hpp>
-#include <boost/tree_node/key/position.hpp>
-
-#if defined BOOST_TREE_NODE_CAN_USE_FUSION
-#include <boost/tree_node/key/accumulation.hpp>
-#endif
-
-#include "type_definitions.hpp"
-#include "output_tabs.hpp"
-#include <boost/assert.hpp>
-
-template <typename Node>
-void output_data_height_and_count(Node const& node, bool b)
-{
- std::cout << get(node, boost::tree_node::data_key()).numerator();
- if (b) std::cout << ", "; else std::cout << ',';
- std::cout << get(node, boost::tree_node::height_key());
- if (b) std::cout << ", "; else std::cout << ',';
- std::cout << get(node, boost::tree_node::count_key());
-}
-
-#if defined BOOST_TREE_NODE_CAN_USE_FUSION
-template <typename Node>
-void output_accumulations(Node const& node, bool b)
-{
- std::cout << boost::tree_node::get<boost::tree_node::accumulation_key<> >(
- node
- ).numerator();
- if (b) std::cout << ", "; else std::cout << ',';
- std::cout << get(node, AccuHeightKey());
- if (b) std::cout << ", "; else std::cout << ',';
- std::cout << get(node, AccuCountKey()) << (
- b ? ", boost::rational<long>(" : ",boost::rational<long>("
- ) << get(node, AccuAccuKey()).numerator();
- if (b) std::cout << ", "; else std::cout << ',';
- std::cout << get(node, AccuAccuKey()).denominator() << ')';
-}
-#endif // BOOST_TREE_NODE_CAN_USE_FUSION
-
-template <typename Node>
-void output_node_contents(Node const& node, bool b, boost::mpl::false_)
-{
- output_data_height_and_count(node, b);
-}
-
-#if defined BOOST_TREE_NODE_CAN_USE_FUSION
-template <typename Node>
-void output_node_contents(Node const& node, bool b, boost::mpl::true_)
-{
- output_data_height_and_count(node, b);
- if (b) std::cout << ", "; else std::cout << ',';
- output_accumulations(node, b);
-}
-#endif
-
-template <typename IncludeAccumulations>
-struct output_node
-{
- template <typename Node>
- void operator()(Node const& node) const
- {
- std::cout << '(';
- output_node_contents(node, true, IncludeAccumulations());
- std::cout << ')';
- }
-
- template <typename Key, typename Node>
- void operator()(Key const& key, Node const& node) const
- {
- std::cout << "(\"" << key << "\", ";
- output_node_contents(node, true, IncludeAccumulations());
- std::cout << ')';
- }
-};
-
-template <typename IncludeAccumulations>
-class output_tree
-{
- unsigned int _ply_limit;
- unsigned int _tab_limit;
- bool _b;
-
- public:
- output_tree(unsigned int ply_limit, unsigned int tab_limit, bool b)
- : _ply_limit(ply_limit), _tab_limit(tab_limit), _b(b)
- {
- }
-
- template <typename Node>
- void
- operator()(
- Node const& node
- , boost::tree_node::traversal_state state
- )
- {
- std::cout << std::endl;
-
- switch (state)
- {
- case boost::tree_node::pre_order_traversal:
- {
- output_tabs(++_ply_limit, _tab_limit, _b);
- std::cout << "(boost::tree_node::pre_order_traversal,";
- if (_b) std::cout << ' ';
- this->_output_contents(node, IncludeAccumulations());
- break;
- }
-
- case boost::tree_node::post_order_traversal:
- {
- output_tabs(_ply_limit, _tab_limit, _b);
- std::cout << "(boost::tree_node::post_order_traversal,";
- if (_b) std::cout << ' ';
- this->_output_contents(node, IncludeAccumulations());
- --_ply_limit;
- break;
- }
-
- default:
- {
- BOOST_ASSERT(false);
- }
- }
-
- std::cout << ')';
- }
-
- template <typename Key, typename Node>
- void
- operator()(
- Key const& key
- , Node const& node
- , boost::tree_node::traversal_state state
- )
- {
- std::cout << std::endl;
-
- switch (state)
- {
- case boost::tree_node::pre_order_traversal:
- {
- output_tabs(++_ply_limit, _tab_limit, _b);
- std::cout << "(boost::tree_node::pre_order_traversal,";
- if (_b) std::cout << ' ';
- std::cout << '\"' << key << (_b ? "\", " : "\",");
- this->_output_contents(node, IncludeAccumulations());
- break;
- }
-
- case boost::tree_node::post_order_traversal:
- {
- output_tabs(_ply_limit, _tab_limit, _b);
- std::cout << "(boost::tree_node::post_order_traversal,";
- if (_b) std::cout << ' ';
- std::cout << '\"' << key << (_b ? "\", " : "\",");
- this->_output_contents(node, IncludeAccumulations());
- --_ply_limit;
- break;
- }
-
- default:
- {
- BOOST_ASSERT(false);
- }
- }
-
- std::cout << ')';
- }
-
- private:
- template <typename Node>
- void _output_contents(Node const& node, boost::mpl::false_)
- {
- output_data_height_and_count(node, _b);
- }
-
-#if defined BOOST_TREE_NODE_CAN_USE_FUSION
- template <typename Node>
- void _output_contents(Node const& node, boost::mpl::true_)
- {
- output_data_height_and_count(node, _b);
- std::cout << ',' << std::endl;
- output_tabs(_ply_limit, _tab_limit, _b);
- output_accumulations(node, _b);
- }
-#endif
-};
-
-#if defined BOOST_TREE_NODE_CAN_USE_FUSION
-template <typename Node>
-void output_uint_and_char(Node const& node, bool b)
-{
- std::cout << get(node, example_keys::your_uint());
- std::cout << (b ? ", \'" : ",\'");
- std::cout << static_cast<char>(get(node, example_keys::your_char()));
- std::cout << (b ? "\', " : "\',");
- std::cout << get(node, AccuYourUintKey());
-}
-
-struct output_uint_char_node
-{
- template <typename Node>
- void operator()(Node const& node) const
- {
- std::cout << '(';
- output_uint_and_char(node, true);
- std::cout << ')';
- }
-
- template <typename Key, typename Node>
- void operator()(Key const& key, Node const& node) const
- {
- std::cout << "(\"" << key << "\", ";
- output_uint_and_char(node, true);
- std::cout << ')';
- }
-};
-
-class output_uint_char_tree
-{
- unsigned int _ply_limit;
- unsigned int _tab_limit;
- bool _b;
-
- public:
- output_uint_char_tree(unsigned int p, unsigned int t, bool b)
- : _ply_limit(p), _tab_limit(t), _b(b)
- {
- }
-
- template <typename Node>
- void
- operator()(
- Node const& node
- , boost::tree_node::traversal_state state
- )
- {
- std::cout << std::endl;
- output_tabs_and_state(state, _ply_limit, _tab_limit, _b);
- output_uint_and_char(node, _b);
- std::cout << ')';
- }
-
- template <typename Key, typename Node>
- void
- operator()(
- Key const& key
- , Node const& node
- , boost::tree_node::traversal_state state
- )
- {
- std::cout << std::endl;
- output_tabs_and_state(state, _ply_limit, _tab_limit, _b);
- std::cout << '\"' << key << "\",";
- if (_b) std::cout << ' ';
- output_uint_and_char(node, _b);
- std::cout << ')';
- }
-};
-
-template <typename Node>
-void output_gui(Node const& node, bool b)
-{
- std::cout << get(node, example_keys::row_location());
- std::cout << (b ? ", " : ",");
- std::cout << get(node, example_keys::row_height());
- std::cout << (b ? ", " : ",");
- std::cout << get(node, example_keys::row_priority());
- std::cout << (b ? ", " : ",");
- std::cout << get(node, HeightSumKey());
- std::cout << (b ? ", " : ",");
- std::cout << get(node, MinPriorityKey());
-}
-
-struct output_gui_node
-{
- template <typename Node>
- void operator()(Node const& node) const
- {
- std::cout << '(';
- output_gui(node, true);
- std::cout << ')';
- }
-
- template <typename Key, typename Node>
- void operator()(Key const& key, Node const& node) const
- {
- std::cout << "(\"" << key << "\", ";
- output_gui(node, true);
- std::cout << ')';
- }
-};
-
-class output_gui_tree
-{
- unsigned int _ply_limit;
- unsigned int _tab_limit;
- bool _b;
-
- public:
- output_gui_tree(unsigned int p, unsigned int t, bool b)
- : _ply_limit(p), _tab_limit(t), _b(b)
- {
- }
-
- template <typename Node>
- void
- operator()(
- Node const& node
- , boost::tree_node::traversal_state state
- )
- {
- std::cout << std::endl;
- output_tabs_and_state(state, _ply_limit, _tab_limit, _b);
- output_gui(node, _b);
- std::cout << ')';
- }
-
- template <typename Key, typename Node>
- void
- operator()(
- Key const& key
- , Node const& node
- , boost::tree_node::traversal_state state
- )
- {
- std::cout << std::endl;
- output_tabs_and_state(state, _ply_limit, _tab_limit, _b);
- std::cout << '\"' << key << "\",";
- if (_b) std::cout << ' ';
- output_gui(node, _b);
- std::cout << ')';
- }
-};
-#endif // BOOST_TREE_NODE_CAN_USE_FUSION
-
-#if defined BOOST_TYPEOF_COMPLIANT
-
-#include <boost/typeof/typeof.hpp>
-#include BOOST_TYPEOF_INCREMENT_REGISTRATION_GROUP()
-BOOST_TYPEOF_REGISTER_TEMPLATE(output_node, 1)
-BOOST_TYPEOF_REGISTER_TEMPLATE(output_tree, 1)
-
-#if defined BOOST_TREE_NODE_CAN_USE_FUSION_WITH_TYPEOF
-BOOST_TYPEOF_REGISTER_TYPE(output_uint_char_node)
-BOOST_TYPEOF_REGISTER_TYPE(output_uint_char_tree)
-BOOST_TYPEOF_REGISTER_TYPE(output_gui_node)
-BOOST_TYPEOF_REGISTER_TYPE(output_gui_tree)
-#endif // BOOST_TREE_NODE_CAN_USE_FUSION_WITH_TYPEOF
-
-#endif // BOOST_TYPEOF_COMPLIANT
-
-#endif // LIBS_TREE_NODE_EXAMPLE_OUTPUT_FUNCTIONS_HPP_INCLUDED
-

Deleted: sandbox/tree_node/libs/tree_node/example/output_preamble.cpp
==============================================================================
--- sandbox/tree_node/libs/tree_node/example/output_preamble.cpp 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84956)
+++ /dev/null 00:00:00 1970 (deleted)
@@ -1,257 +0,0 @@
-// 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)
-
-#include <iostream>
-#include <boost/tree_node/preprocessor.hpp>
-#include "output_preamble.hpp"
-
-void output_copyright_and_config_preamble()
-{
- std::cout << "// Copyright (C) 2012-2013 Cromwell D. Enage" << std::endl;
- std::cout << (
- "// Distributed under the Boost Software License, Version 1.0."
- ) << std::endl << "// (See accompanying file LICENSE_1_0.txt or copy at";
- std::cout << std::endl << "// http://www.boost.org/LICENSE_1_0.txt)";
- std::cout << std::endl << std::endl << "#include <boost/config.hpp>";
- std::cout << std::endl << std::endl << "#if defined BOOST_MSVC";
- std::cout << std::endl << " #pragma warning (push)" << std::endl;
- std::cout << " #pragma warning (disable : 4996) // fn called w/params";
- std::cout << " that may be unsafe" << std::endl << "#endif" << std::endl;
-}
-
-void output_header_and_type_preamble()
-{
- std::cout << std::endl << "#include <boost/tuple/tuple.hpp>" << std::endl;
- std::cout << "#include <boost/typeof/boost/rational.hpp>" << std::endl;
- std::cout << "#include <boost/typeof/boost/container_gen/selectors.hpp>";
- std::cout << std::endl << (
- "#include <boost/container_gen/container_gen.hpp>"
- ) << std::endl << (
- "#include <boost/container_gen/emplace_function_gen.hpp>"
- ) << std::endl << (
-#if defined BOOST_TREE_NODE_CAN_USE_FUSION
- "#include <boost/tree_node/preprocessor.hpp>"
- ) << std::endl << (
-#endif
- "#include <boost/tree_node/intrinsic/value_at_key.hpp>"
- ) << std::endl << (
- "#include <boost/typeof/boost/tree_node/with_count.hpp>"
- ) << std::endl << (
- "#include <boost/typeof/boost/tree_node/with_height.hpp>"
- ) << std::endl << (
- "#include <boost/typeof/boost/tree_node/with_position.hpp>"
- ) << std::endl << std::endl;
- std::cout << "#if defined BOOST_TREE_NODE_CAN_USE_FUSION" << std::endl << (
- "#include <boost/typeof/boost/tree_node/with_accumulation.hpp>"
- ) << std::endl << "#endif" << std::endl << std::endl;
- std::cout << "#include \"../example/type_definitions.hpp\"" << std::endl;
- std::cout << "#include \"iterator_functions.hpp\"" << std::endl;
- std::cout << std::endl << (
- "typedef boost::emplace_function_gen<boost::dequeS>::type"
- ) << std::endl << " Emplacer;" << std::endl << std::endl;
-}
-
-void output_container_type_preamble()
-{
- std::cout << std::endl << " typedef typename boost::container_gen<";
- std::cout << std::endl << " boost::dequeS" << std::endl;
- std::cout << " , boost::tuples::tuple<" << std::endl << (
- " typename boost::tree_node::result_of::value_at_"
- ) << "key<" << std::endl;
- std::cout << " ANode const" << std::endl;
- std::cout << " , boost::tree_node::data_key";
- std::cout << std::endl << " >::type" << std::endl << (
- " , typename boost::tree_node::result_of::value_at_"
- ) << "key<" << std::endl;
- std::cout << " ANode const" << std::endl;
- std::cout << " , boost::tree_node::height_key";
- std::cout << std::endl << " >::type" << std::endl << (
- " , typename boost::tree_node::result_of::value_at_"
- ) << "key<" << std::endl;
- std::cout << " ANode const" << std::endl;
- std::cout << " , boost::tree_node::count_key";
- std::cout << std::endl << " >::type" << std::endl;
- std::cout << "#if defined BOOST_TREE_NODE_CAN_USE_FUSION" << std::endl << (
- " , typename boost::tree_node::result_of::value_at_"
- ) << "key<" << std::endl;
- std::cout << " ANode const" << std::endl << (
- " , boost::tree_node::accumulation_key<>"
- ) << std::endl << " >::type" << std::endl << (
- " , typename boost::tree_node::result_of::value_at_"
- ) << "key<" << std::endl;
- std::cout << " ANode const" << std::endl;
- std::cout << " , AccuHeightKey" << std::endl;
- std::cout << " >::type" << std::endl << (
- " , typename boost::tree_node::result_of::value_at_"
- ) << "key<" << std::endl;
- std::cout << " ANode const" << std::endl;
- std::cout << " , AccuCountKey" << std::endl;
- std::cout << " >::type" << std::endl << (
- " , typename boost::tree_node::result_of::value_at_"
- ) << "key<" << std::endl;
- std::cout << " ANode const" << std::endl;
- std::cout << " , AccuAccuKey" << std::endl;
- std::cout << " >::type" << std::endl;
- std::cout << "#endif // BOOST_TREE_NODE_CAN_USE_FUSION" << std::endl;
- std::cout << " >" << std::endl << " >::type";
- std::cout << std::endl << " Values;" << std::endl;
- std::cout << " typedef typename boost::container_gen<" << std::endl;
- std::cout << " boost::dequeS" << std::endl;
- std::cout << " , boost::tuples::tuple<" << std::endl;
- std::cout << " boost::tree_node::traversal_state";
- std::cout << std::endl << (
- " , typename boost::tree_node::result_of::value_at_"
- ) << "key<" << std::endl;
- std::cout << " ANode const" << std::endl;
- std::cout << " , boost::tree_node::data_key";
- std::cout << std::endl << " >::type" << std::endl << (
- " , typename boost::tree_node::result_of::value_at_"
- ) << "key<" << std::endl;
- std::cout << " ANode const" << std::endl;
- std::cout << " , boost::tree_node::height_key";
- std::cout << std::endl << " >::type" << std::endl << (
- " , typename boost::tree_node::result_of::value_at_"
- ) << "key<" << std::endl;
- std::cout << " ANode const" << std::endl;
- std::cout << " , boost::tree_node::count_key";
- std::cout << std::endl << " >::type" << std::endl;
- std::cout << "#if defined BOOST_TREE_NODE_CAN_USE_FUSION" << std::endl << (
- " , typename boost::tree_node::result_of::value_at_"
- ) << "key<" << std::endl;
- std::cout << " ANode const" << std::endl << (
- " , boost::tree_node::accumulation_key<>"
- ) << std::endl << " >::type" << std::endl << (
- " , typename boost::tree_node::result_of::value_at_"
- ) << "key<" << std::endl;
- std::cout << " ANode const" << std::endl;
- std::cout << " , AccuHeightKey" << std::endl;
- std::cout << " >::type" << std::endl << (
- " , typename boost::tree_node::result_of::value_at_"
- ) << "key<" << std::endl;
- std::cout << " ANode const" << std::endl;
- std::cout << " , AccuCountKey" << std::endl;
- std::cout << " >::type" << std::endl << (
- " , typename boost::tree_node::result_of::value_at_"
- ) << "key<" << std::endl;
- std::cout << " ANode const" << std::endl;
- std::cout << " , AccuAccuKey" << std::endl;
- std::cout << " >::type" << std::endl;
- std::cout << "#endif // BOOST_TREE_NODE_CAN_USE_FUSION" << std::endl;
- std::cout << " >" << std::endl << " >::type";
- std::cout << std::endl << " DFValues;" << std::endl;
-}
-
-void output_container_fused_type_preamble()
-{
- std::cout << std::endl << " typedef typename boost::container_gen<";
- std::cout << std::endl << " boost::dequeS" << std::endl;
- std::cout << " , boost::tuples::tuple<" << std::endl << (
- " typename boost::tree_node::result_of::value_at_"
- ) << "key<" << std::endl << " FNode const";
- std::cout << std::endl << (
- " , example_keys::your_uint"
- ) << std::endl << " >::type" << std::endl << (
- " , typename boost::tree_node::result_of::value_at_"
- ) << "key<" << std::endl << " FNode const";
- std::cout << std::endl << (
- " , example_keys::your_char"
- ) << std::endl << " >::type" << std::endl << (
- " , typename boost::tree_node::result_of::value_at_"
- ) << "key<" << std::endl << " FNode const";
- std::cout << std::endl << (
- " , AccuYourUintKey"
- ) << std::endl << " >::type" << std::endl;
- std::cout << " >" << std::endl << " >::type";
- std::cout << std::endl << " MoreValues;" << std::endl;
- std::cout << " typedef typename boost::container_gen<" << std::endl;
- std::cout << " boost::dequeS" << std::endl;
- std::cout << " , boost::tuples::tuple<" << std::endl;
- std::cout << " boost::tree_node::traversal_state";
- std::cout << std::endl << (
- " , typename boost::tree_node::result_of::value_at_"
- ) << "key<" << std::endl << " FNode const";
- std::cout << std::endl << (
- " , example_keys::your_uint"
- ) << std::endl << " >::type" << std::endl << (
- " , typename boost::tree_node::result_of::value_at_"
- ) << "key<" << std::endl << " FNode const";
- std::cout << std::endl << (
- " , example_keys::your_char"
- ) << std::endl << " >::type" << std::endl << (
- " , typename boost::tree_node::result_of::value_at_"
- ) << "key<" << std::endl << " FNode const";
- std::cout << std::endl << (
- " , AccuYourUintKey"
- ) << std::endl << " >::type" << std::endl;
- std::cout << " >" << std::endl << " >::type";
- std::cout << std::endl << " DFMoreValues;" << std::endl;
-}
-
-void output_container_gui_type_preamble()
-{
- std::cout << std::endl << " typedef typename boost::container_gen<";
- std::cout << std::endl << " boost::dequeS" << std::endl;
- std::cout << " , boost::tuples::tuple<" << std::endl << (
- " typename boost::tree_node::result_of::value_at_"
- ) << "key<" << std::endl << " GUINode const";
- std::cout << std::endl << (
- " , example_keys::row_location"
- ) << std::endl << " >::type" << std::endl << (
- " , typename boost::tree_node::result_of::value_at_"
- ) << "key<" << std::endl << " GUINode const";
- std::cout << std::endl << (
- " , example_keys::row_height"
- ) << std::endl << " >::type" << std::endl << (
- " , typename boost::tree_node::result_of::value_at_"
- ) << "key<" << std::endl << " GUINode const";
- std::cout << std::endl << (
- " , example_keys::row_priority"
- ) << std::endl << " >::type" << std::endl << (
- " , typename boost::tree_node::result_of::value_at_"
- ) << "key<" << std::endl << " GUINode const";
- std::cout << std::endl << (
- " , HeightSumKey"
- ) << std::endl << " >::type" << std::endl << (
- " , typename boost::tree_node::result_of::value_at_"
- ) << "key<" << std::endl << " GUINode const";
- std::cout << std::endl << (
- " , MinPriorityKey"
- ) << std::endl << " >::type" << std::endl;
- std::cout << " >" << std::endl << " >::type";
- std::cout << std::endl << " GUIValues;" << std::endl;
- std::cout << " typedef typename boost::container_gen<" << std::endl;
- std::cout << " boost::dequeS" << std::endl;
- std::cout << " , boost::tuples::tuple<" << std::endl;
- std::cout << " boost::tree_node::traversal_state";
- std::cout << std::endl << (
- " , typename boost::tree_node::result_of::value_at_"
- ) << "key<" << std::endl << " GUINode const";
- std::cout << std::endl << (
- " , example_keys::row_location"
- ) << std::endl << " >::type" << std::endl << (
- " , typename boost::tree_node::result_of::value_at_"
- ) << "key<" << std::endl << " GUINode const";
- std::cout << std::endl << (
- " , example_keys::row_height"
- ) << std::endl << " >::type" << std::endl << (
- " , typename boost::tree_node::result_of::value_at_"
- ) << "key<" << std::endl << " GUINode const";
- std::cout << std::endl << (
- " , example_keys::row_priority"
- ) << std::endl << " >::type" << std::endl << (
- " , typename boost::tree_node::result_of::value_at_"
- ) << "key<" << std::endl << " GUINode const";
- std::cout << std::endl << (
- " , HeightSumKey"
- ) << std::endl << " >::type" << std::endl << (
- " , typename boost::tree_node::result_of::value_at_"
- ) << "key<" << std::endl << " GUINode const";
- std::cout << std::endl << (
- " , MinPriorityKey"
- ) << std::endl << " >::type" << std::endl;
- std::cout << " >" << std::endl << " >::type";
- std::cout << std::endl << " DFGUIValues;" << std::endl;
-}
-

Deleted: sandbox/tree_node/libs/tree_node/example/output_preamble.hpp
==============================================================================
--- sandbox/tree_node/libs/tree_node/example/output_preamble.hpp 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84956)
+++ /dev/null 00:00:00 1970 (deleted)
@@ -1,15 +0,0 @@
-// 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)
-
-#ifndef LIBS_TREE_NODE_EXAMPLE_OUTPUT_PREAMBLE_HPP_INCLUDED
-#define LIBS_TREE_NODE_EXAMPLE_OUTPUT_PREAMBLE_HPP_INCLUDED
-
-void output_copyright_and_config_preamble();
-void output_header_and_type_preamble();
-void output_container_type_preamble();
-void output_container_fused_type_preamble();
-
-#endif // LIBS_TREE_NODE_EXAMPLE_OUTPUT_PREAMBLE_HPP_INCLUDED
-

Deleted: sandbox/tree_node/libs/tree_node/example/output_tabs.cpp
==============================================================================
--- sandbox/tree_node/libs/tree_node/example/output_tabs.cpp 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84956)
+++ /dev/null 00:00:00 1970 (deleted)
@@ -1,52 +0,0 @@
-// 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)
-
-#include <iostream>
-#include <algorithm>
-#include <boost/assert.hpp>
-#include "output_tabs.hpp"
-
-void output_tabs(unsigned int ply_limit, unsigned int tab_limit, bool b)
-{
- for (unsigned int ply = 0; ply < (std::min)(ply_limit, tab_limit); ++ply)
- {
- std::cout << (b ? " " : " ");
- }
-}
-
-void
- output_tabs_and_state(
- boost::tree_node::traversal_state state
- , unsigned int& ply_limit
- , unsigned int tab_limit
- , bool b
- )
-{
- switch (state)
- {
- case boost::tree_node::pre_order_traversal:
- {
- output_tabs(++ply_limit, tab_limit, b);
- std::cout << "(boost::tree_node::pre_order_traversal,";
- if (b) std::cout << ' ';
- break;
- }
-
- case boost::tree_node::post_order_traversal:
- {
- output_tabs(ply_limit, tab_limit, b);
- std::cout << "(boost::tree_node::post_order_traversal,";
- if (b) std::cout << ' ';
- --ply_limit;
- break;
- }
-
- default:
- {
- BOOST_ASSERT(false);
- }
- }
-}
-

Deleted: sandbox/tree_node/libs/tree_node/example/output_tabs.hpp
==============================================================================
--- sandbox/tree_node/libs/tree_node/example/output_tabs.hpp 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84956)
+++ /dev/null 00:00:00 1970 (deleted)
@@ -1,22 +0,0 @@
-// 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)
-
-#ifndef LIBS_TREE_NODE_EXAMPLE_OUTPUT_TABS_HPP_INCLUDED
-#define LIBS_TREE_NODE_EXAMPLE_OUTPUT_TABS_HPP_INCLUDED
-
-#include <boost/tree_node/traversal_state.hpp>
-
-void output_tabs(unsigned int ply_limit, unsigned int tab_limit, bool b);
-
-void
- output_tabs_and_state(
- boost::tree_node::traversal_state state
- , unsigned int& ply_limit
- , unsigned int tab_limit
- , bool b
- );
-
-#endif // LIBS_TREE_NODE_EXAMPLE_OUTPUT_TABS_HPP_INCLUDED
-

Deleted: sandbox/tree_node/libs/tree_node/example/type_definitions.hpp
==============================================================================
--- sandbox/tree_node/libs/tree_node/example/type_definitions.hpp 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84956)
+++ /dev/null 00:00:00 1970 (deleted)
@@ -1,106 +0,0 @@
-// 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)
-
-#ifndef LIBS_TREE_NODE_EXAMPLE_TYPE_DEFINITIONS_HPP_INCLUDED
-#define LIBS_TREE_NODE_EXAMPLE_TYPE_DEFINITIONS_HPP_INCLUDED
-
-#include <boost/tree_node/preprocessor.hpp>
-
-#if defined BOOST_TREE_NODE_CAN_USE_FUSION
-#include <boost/typeof/boost/mpl/bool.hpp>
-#include <boost/typeof/boost/accumulators/statistics/sum_kahan.hpp>
-#include <boost/typeof/boost/accumulators/statistics/max.hpp>
-#include <boost/typeof/boost/accumulators/statistics/mean.hpp>
-#include <boost/typeof/boost/accumulators/statistics/min.hpp>
-#include <boost/typeof/boost/tree_node/key/count.hpp>
-#include <boost/typeof/boost/tree_node/key/height.hpp>
-#include <boost/typeof/boost/tree_node/key/accumulation.hpp>
-#include <boost/fusion/container/map.hpp>
-
-typedef boost::tree_node::accumulation_key<
- boost::tree_node::count_key
- , boost::accumulators::tag::sum_kahan
- >
- AccuCountKey;
-typedef boost::tree_node::accumulation_key<
- boost::tree_node::height_key
- , boost::accumulators::tag::max
- , boost::mpl::false_
- , boost::mpl::false_
- >
- AccuHeightKey;
-typedef boost::tree_node::accumulation_key<
- boost::tree_node::accumulation_key<>
- , boost::accumulators::tag::mean
- >
- AccuAccuKey;
-
-namespace example_keys {
-
- struct your_uint
- {
- };
-
- struct your_char
- {
- };
-}
-
-typedef boost::tree_node::accumulation_key<example_keys::your_uint>
- AccuYourUintKey;
-typedef boost::fusion::map<
- boost::fusion::pair<example_keys::your_uint,unsigned int>
- , boost::fusion::pair<example_keys::your_char,char>
- >
- DataMap;
-
-//[example__gui__types
-namespace example_keys {
-
- struct row_location
- {
- };
-
- struct row_height
- {
- };
-
- struct row_priority
- {
- };
-}
-
-typedef boost::tree_node::accumulation_key<
- example_keys::row_height
- , boost::accumulators::tag::sum
- >
- HeightSumKey;
-typedef boost::tree_node::accumulation_key<
- example_keys::row_priority
- , boost::accumulators::tag::min
- >
- MinPriorityKey;
-typedef boost::fusion::map<
- boost::fusion::pair<example_keys::row_location,unsigned int>
- , boost::fusion::pair<example_keys::row_height,unsigned int>
- , boost::fusion::pair<example_keys::row_priority,unsigned int>
- >
- GUITable;
-//]
-
-#if defined BOOST_TYPEOF_COMPLIANT
-#include <boost/typeof/typeof.hpp>
-#include BOOST_TYPEOF_INCREMENT_REGISTRATION_GROUP()
-BOOST_TYPEOF_REGISTER_TYPE(example_keys::your_uint)
-BOOST_TYPEOF_REGISTER_TYPE(example_keys::your_char)
-BOOST_TYPEOF_REGISTER_TYPE(example_keys::row_location)
-BOOST_TYPEOF_REGISTER_TYPE(example_keys::row_height)
-BOOST_TYPEOF_REGISTER_TYPE(example_keys::row_priority)
-#endif
-
-#endif // BOOST_TREE_NODE_CAN_USE_FUSION
-
-#endif // LIBS_TREE_NODE_EXAMPLE_TYPE_DEFINITIONS_HPP_INCLUDED
-

Deleted: sandbox/tree_node/libs/tree_node/test/associative_node.cpp
==============================================================================
--- sandbox/tree_node/libs/tree_node/test/associative_node.cpp 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84956)
+++ /dev/null 00:00:00 1970 (deleted)
@@ -1,13326 +0,0 @@
-// 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)
-
-#include <boost/config.hpp>
-
-#if defined BOOST_MSVC
- #pragma warning (push)
- #pragma warning (disable : 4996) // fn called w/params that may be unsafe
-#endif
-
-#include <boost/tuple/tuple.hpp>
-#include <boost/typeof/boost/rational.hpp>
-#include <boost/typeof/boost/container_gen/selectors.hpp>
-#include <boost/container_gen/container_gen.hpp>
-#include <boost/container_gen/emplace_function_gen.hpp>
-#include <boost/tree_node/preprocessor.hpp>
-#include <boost/tree_node/intrinsic/value_at_key.hpp>
-#include <boost/typeof/boost/tree_node/with_count.hpp>
-#include <boost/typeof/boost/tree_node/with_height.hpp>
-#include <boost/typeof/boost/tree_node/with_position.hpp>
-
-#if defined BOOST_TREE_NODE_CAN_USE_FUSION
-#include <boost/typeof/boost/tree_node/with_accumulation.hpp>
-#endif
-
-#include "../example/type_definitions.hpp"
-#include "iterator_functions.hpp"
-
-typedef boost::emplace_function_gen<boost::dequeS>::type
- Emplacer;
-
-#include <boost/typeof/boost/tree_node/associative_node.hpp>
-#include <boost/container_gen/is_unique_assoc_selector.hpp>
-
-char const* names[] = {"able", "baker", "chuck", "dog", "easy", "fox"};
-
-template <typename Select, typename Node>
-void initialize(Node& root)
-{
- for (boost::tree_node::breadth_first_iterator<Node> itr(root); itr; ++itr)
- {
- typename Node::traits::data_type const& data = get(
- *itr
- , boost::tree_node::data_key()
- );
-
- if (1 < data)
- {
- for (std::size_t i = 0; i < data; ++i)
- {
- for (std::size_t j = 0; j + i < data; ++j)
- {
- typename Node::iterator find_itr(itr->find(names[j]));
- bool not_found = find_itr == itr->end();
- typename Node::iterator child_itr(
- itr->emplace(names[j], i)
- );
- Node& child(
- boost::tree_node::dereference_iterator(child_itr)
- );
- Node const& const_child(child);
-
- if (not_found)
- {
- typename Node::pointer child_ptr(
- child.get_parent_ptr()
- );
- BOOST_CHECK(
- child_ptr == &*itr
-// , "Ctor not linking child to parent."
- );
- BOOST_CHECK(
- child_ptr == const_child.get_parent_ptr()
-// , "Why are these pointers different?"
- );
- }
- else if (
- boost::is_unique_associative_selector<Select>::value
- )
- {
- BOOST_CHECK(
- find_itr->first == child_itr->first
-// , "Keys do not match."
- );
- BOOST_CHECK(
- get(
- boost::tree_node::dereference_iterator(
- find_itr
- )
- , boost::tree_node::data_key()
- ) == get(
- const_child
- , boost::tree_node::data_key()
- )
-// , "Ctor not linking parent to child."
- );
- }
- }
- }
- }
- }
-}
-
-template <typename Selector>
-void test_unique_associative()
-{
-#if defined BOOST_TREE_NODE_CAN_USE_FUSION
- typedef boost::tree_node::with_accumulation<
- boost::tree_node::with_height_base_gen<
- boost::tree_node::with_accumulation_base_gen<
- boost::tree_node::with_position_base_gen<
- boost::tree_node::with_accumulation_base_gen<
- boost::tree_node::with_count_base_gen<
- boost::tree_node::with_accumulation_base_gen<
- boost::tree_node::associative_node_base_gen<Selector>
- >
- >
- , AccuAccuKey
- >
- >
- , AccuCountKey
- >
- >
- , char const*
- , boost::rational<long>
- , AccuHeightKey
- >
- ANode;
-#else // !defined BOOST_TREE_NODE_CAN_USE_FUSION
- typedef boost::tree_node::with_height<
- boost::tree_node::with_position_base_gen<
- boost::tree_node::with_count_base_gen<
- boost::tree_node::associative_node_base_gen<Selector>
- >
- >
- , char const*
- , boost::rational<long>
- >
- ANode;
-#endif // BOOST_TREE_NODE_CAN_USE_FUSION
-
- typedef typename boost::container_gen<
- boost::dequeS
- , boost::tuples::tuple<
- typename boost::tree_node::result_of::value_at_key<
- ANode const
- , boost::tree_node::data_key
- >::type
- , typename boost::tree_node::result_of::value_at_key<
- ANode const
- , boost::tree_node::height_key
- >::type
- , typename boost::tree_node::result_of::value_at_key<
- ANode const
- , boost::tree_node::count_key
- >::type
-#if defined BOOST_TREE_NODE_CAN_USE_FUSION
- , typename boost::tree_node::result_of::value_at_key<
- ANode const
- , boost::tree_node::accumulation_key<>
- >::type
- , typename boost::tree_node::result_of::value_at_key<
- ANode const
- , AccuHeightKey
- >::type
- , typename boost::tree_node::result_of::value_at_key<
- ANode const
- , AccuCountKey
- >::type
- , typename boost::tree_node::result_of::value_at_key<
- ANode const
- , AccuAccuKey
- >::type
-#endif // BOOST_TREE_NODE_CAN_USE_FUSION
- >
- >::type
- Values;
- typedef typename boost::container_gen<
- boost::dequeS
- , boost::tuples::tuple<
- boost::tree_node::traversal_state
- , typename boost::tree_node::result_of::value_at_key<
- ANode const
- , boost::tree_node::data_key
- >::type
- , typename boost::tree_node::result_of::value_at_key<
- ANode const
- , boost::tree_node::height_key
- >::type
- , typename boost::tree_node::result_of::value_at_key<
- ANode const
- , boost::tree_node::count_key
- >::type
-#if defined BOOST_TREE_NODE_CAN_USE_FUSION
- , typename boost::tree_node::result_of::value_at_key<
- ANode const
- , boost::tree_node::accumulation_key<>
- >::type
- , typename boost::tree_node::result_of::value_at_key<
- ANode const
- , AccuHeightKey
- >::type
- , typename boost::tree_node::result_of::value_at_key<
- ANode const
- , AccuCountKey
- >::type
- , typename boost::tree_node::result_of::value_at_key<
- ANode const
- , AccuAccuKey
- >::type
-#endif // BOOST_TREE_NODE_CAN_USE_FUSION
- >
- >::type
- DFValues;
- typedef typename boost::container_gen<
- boost::dequeS
- , boost::tuples::tuple<
- typename ANode::traits::key_type
- , typename boost::tree_node::result_of::value_at_key<
- ANode const
- , boost::tree_node::data_key
- >::type
- , typename boost::tree_node::result_of::value_at_key<
- ANode const
- , boost::tree_node::height_key
- >::type
- , typename boost::tree_node::result_of::value_at_key<
- ANode const
- , boost::tree_node::count_key
- >::type
-#if defined BOOST_TREE_NODE_CAN_USE_FUSION
- , typename boost::tree_node::result_of::value_at_key<
- ANode const
- , boost::tree_node::accumulation_key<>
- >::type
- , typename boost::tree_node::result_of::value_at_key<
- ANode const
- , AccuHeightKey
- >::type
- , typename boost::tree_node::result_of::value_at_key<
- ANode const
- , AccuCountKey
- >::type
- , typename boost::tree_node::result_of::value_at_key<
- ANode const
- , AccuAccuKey
- >::type
-#endif // BOOST_TREE_NODE_CAN_USE_FUSION
- >
- >::type
- KeyValues;
- typedef typename boost::container_gen<
- boost::dequeS
- , boost::tuples::tuple<
- boost::tree_node::traversal_state
- , typename ANode::traits::key_type
- , typename boost::tree_node::result_of::value_at_key<
- ANode const
- , boost::tree_node::data_key
- >::type
- , typename boost::tree_node::result_of::value_at_key<
- ANode const
- , boost::tree_node::height_key
- >::type
- , typename boost::tree_node::result_of::value_at_key<
- ANode const
- , boost::tree_node::count_key
- >::type
-#if defined BOOST_TREE_NODE_CAN_USE_FUSION
- , typename boost::tree_node::result_of::value_at_key<
- ANode const
- , boost::tree_node::accumulation_key<>
- >::type
- , typename boost::tree_node::result_of::value_at_key<
- ANode const
- , AccuHeightKey
- >::type
- , typename boost::tree_node::result_of::value_at_key<
- ANode const
- , AccuCountKey
- >::type
- , typename boost::tree_node::result_of::value_at_key<
- ANode const
- , AccuAccuKey
- >::type
-#endif // BOOST_TREE_NODE_CAN_USE_FUSION
- >
- >::type
- DFKeyValues;
-
- ANode a_root(5);
-
- BOOST_CHECK(
- !a_root.get_parent_ptr()
-// , "Parent member uninitialized."
- );
-
- initialize<Selector>(a_root);
-
- {
- Values bf_vals, pre_vals, post_vals;
- KeyValues bf_d_vals, pre_d_vals, post_d_vals;
- DFValues df_vals;
- DFKeyValues df_d_vals;
- Emplacer emplacer;
-
-#if defined BOOST_TREE_NODE_CAN_USE_FUSION
- emplacer[bf_vals]
- (5, 1, 6, 5, 0, 11, boost::rational<long>(5, 6))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1));
- emplacer[pre_vals]
- (5, 1, 6, 5, 0, 11, boost::rational<long>(5, 6))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1));
- emplacer[post_vals]
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (5, 1, 6, 5, 0, 11, boost::rational<long>(5, 6));
- emplacer[bf_d_vals]
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("chuck", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("dog", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("easy", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1));
- emplacer[pre_d_vals]
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("chuck", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("dog", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("easy", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1));
- emplacer[post_d_vals]
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("chuck", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("dog", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("easy", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1));
- emplacer[df_d_vals]
- (boost::tree_node::pre_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"chuck",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"chuck",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"dog",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"dog",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"easy",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"easy",0,0,1,
- 0,0,1,boost::rational<long>(0,1));
- emplacer[df_vals]
- (boost::tree_node::pre_order_traversal,5,1,6,
- 5,0,11,boost::rational<long>(5,6))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,5,1,6,
- 5,0,11,boost::rational<long>(5,6));
-#else // !defined BOOST_TREE_NODE_CAN_USE_FUSION
- emplacer[bf_vals]
- (5, 1, 6)(0, 0, 1)(0, 0, 1)(0, 0, 1)(0, 0, 1)(0, 0, 1);
- emplacer[pre_vals]
- (5, 1, 6)(0, 0, 1)(0, 0, 1)(0, 0, 1)(0, 0, 1)(0, 0, 1);
- emplacer[post_vals]
- (0, 0, 1)(0, 0, 1)(0, 0, 1)(0, 0, 1)(0, 0, 1)(5, 1, 6);
- emplacer[bf_d_vals]
- ("able", 0, 0, 1)("baker", 0, 0, 1)("chuck", 0, 0, 1)
- ("dog", 0, 0, 1)("easy", 0, 0, 1);
- emplacer[pre_d_vals]
- ("able", 0, 0, 1)("baker", 0, 0, 1)("chuck", 0, 0, 1)
- ("dog", 0, 0, 1)("easy", 0, 0, 1);
- emplacer[post_d_vals]
- ("able", 0, 0, 1)("baker", 0, 0, 1)("chuck", 0, 0, 1)
- ("dog", 0, 0, 1)("easy", 0, 0, 1);
- emplacer[df_d_vals]
- (boost::tree_node::pre_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "chuck", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "chuck", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "dog", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "dog", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "easy", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "easy", 0, 0, 1);
- emplacer[df_vals]
- (boost::tree_node::pre_order_traversal, 5, 1, 6)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 5, 1, 6);
-#endif // BOOST_NO_SFINAE
- test_associative_node<a_node_case>(
- a_root
- , bf_vals
- , bf_d_vals
- , pre_vals
- , pre_d_vals
- , post_vals
- , post_d_vals
- , df_vals
- , df_d_vals
- );
- }
- {
- ANode a_copy(a_root);
- boost::tree_node::breadth_first_iterator<ANode const>
- bf_root_itr(a_root), bf_copy_itr(a_copy);
- boost::tree_node::breadth_first_descendant_iterator<ANode const>
- bf_d_root_itr(a_root), bf_d_copy_itr(a_copy);
- boost::tree_node::pre_order_iterator<ANode const>
- pre_root_itr(a_root), pre_copy_itr(a_copy);
- boost::tree_node::pre_order_descendant_iterator<ANode const>
- pre_d_root_itr(a_root), pre_d_copy_itr(a_copy);
- boost::tree_node::post_order_iterator<ANode const>
- post_root_itr(a_root), post_copy_itr(a_copy);
- boost::tree_node::post_order_descendant_iterator<ANode const>
- post_d_root_itr(a_root), post_d_copy_itr(a_copy);
- boost::tree_node::depth_first_iterator<ANode const>
- df_root_itr(a_root), df_copy_itr(a_copy);
- boost::tree_node::depth_first_descendant_iterator<ANode const>
- df_d_root_itr(a_root), df_d_copy_itr(a_copy);
-
- BOOST_CHECK(test_node_copies(bf_root_itr, bf_copy_itr));
- BOOST_CHECK(
- test_associative_node_copies(bf_d_root_itr, bf_d_copy_itr)
- );
- BOOST_CHECK(test_node_copies(pre_root_itr, pre_copy_itr));
- BOOST_CHECK(
- test_associative_node_copies(pre_d_root_itr, pre_d_copy_itr)
- );
- BOOST_CHECK(test_node_copies(post_root_itr, post_copy_itr));
- BOOST_CHECK(
- test_associative_node_copies(post_d_root_itr, post_d_copy_itr)
- );
- BOOST_CHECK(test_node_copies(df_root_itr, df_copy_itr));
- BOOST_CHECK(
- test_associative_node_copies(df_d_root_itr, df_d_copy_itr)
- );
- }
-
- {
- typename ANode::iterator a_child_itr(
- boost::tree_node::dereference_iterator(
- a_root.find(names[2])
- ).insert(names[5], a_root)
- );
- Values bf_vals, pre_vals, post_vals;
- KeyValues bf_d_vals, pre_d_vals, post_d_vals;
- DFValues df_vals;
- DFKeyValues df_d_vals;
- Emplacer emplacer;
-
-#if defined BOOST_TREE_NODE_CAN_USE_FUSION
- emplacer[bf_vals]
- (5, 3, 12, 10, 2, 34, boost::rational<long>(5, 3))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 2, 7, 5, 1, 18, boost::rational<long>(10, 7))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (5, 1, 6, 5, 0, 11, boost::rational<long>(5, 6))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1));
- emplacer[pre_vals]
- (5, 3, 12, 10, 2, 34, boost::rational<long>(5, 3))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 2, 7, 5, 1, 18, boost::rational<long>(10, 7))
- (5, 1, 6, 5, 0, 11, boost::rational<long>(5, 6))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1));
- emplacer[post_vals]
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (5, 1, 6, 5, 0, 11, boost::rational<long>(5, 6))
- (0, 2, 7, 5, 1, 18, boost::rational<long>(10, 7))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (5, 3, 12, 10, 2, 34, boost::rational<long>(5, 3));
- emplacer[bf_d_vals]
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("chuck", 0, 2, 7, 5, 1, 18, boost::rational<long>(10, 7))
- ("dog", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("easy", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("fox", 5, 1, 6, 5, 0, 11, boost::rational<long>(5, 6))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("chuck", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("dog", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("easy", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1));
- emplacer[pre_d_vals]
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("chuck", 0, 2, 7, 5, 1, 18, boost::rational<long>(10, 7))
- ("fox", 5, 1, 6, 5, 0, 11, boost::rational<long>(5, 6))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("chuck", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("dog", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("easy", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("dog", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("easy", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1));
- emplacer[post_d_vals]
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("chuck", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("dog", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("easy", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("fox", 5, 1, 6, 5, 0, 11, boost::rational<long>(5, 6))
- ("chuck", 0, 2, 7, 5, 1, 18, boost::rational<long>(10, 7))
- ("dog", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("easy", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1));
- emplacer[df_d_vals]
- (boost::tree_node::pre_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"chuck",0,2,7,
- 5,1,18,boost::rational<long>(10,7))
- (boost::tree_node::pre_order_traversal,"fox",5,1,6,
- 5,0,11,boost::rational<long>(5,6))
- (boost::tree_node::pre_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"chuck",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"chuck",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"dog",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"dog",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"easy",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"easy",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"fox",5,1,6,
- 5,0,11,boost::rational<long>(5,6))
- (boost::tree_node::post_order_traversal,"chuck",0,2,7,
- 5,1,18,boost::rational<long>(10,7))
- (boost::tree_node::pre_order_traversal,"dog",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"dog",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"easy",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"easy",0,0,1,
- 0,0,1,boost::rational<long>(0,1));
- emplacer[df_vals]
- (boost::tree_node::pre_order_traversal,5,3,12,
- 10,2,34,boost::rational<long>(5,3))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,0,2,7,
- 5,1,18,boost::rational<long>(10,7))
- (boost::tree_node::pre_order_traversal,5,1,6,
- 5,0,11,boost::rational<long>(5,6))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,5,1,6,
- 5,0,11,boost::rational<long>(5,6))
- (boost::tree_node::post_order_traversal,0,2,7,
- 5,1,18,boost::rational<long>(10,7))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,5,3,12,
- 10,2,34,boost::rational<long>(5,3));
-#else // !defined BOOST_TREE_NODE_CAN_USE_FUSION
- emplacer[bf_vals]
- (5, 3, 12)(0, 0, 1)(0, 0, 1)(0, 2, 7)(0, 0, 1)(0, 0, 1)
- (5, 1, 6)(0, 0, 1)(0, 0, 1)(0, 0, 1)(0, 0, 1)(0, 0, 1);
- emplacer[pre_vals]
- (5, 3, 12)(0, 0, 1)(0, 0, 1)(0, 2, 7)(5, 1, 6)(0, 0, 1)
- (0, 0, 1)(0, 0, 1)(0, 0, 1)(0, 0, 1)(0, 0, 1)(0, 0, 1);
- emplacer[post_vals]
- (0, 0, 1)(0, 0, 1)(0, 0, 1)(0, 0, 1)(0, 0, 1)(0, 0, 1)
- (0, 0, 1)(5, 1, 6)(0, 2, 7)(0, 0, 1)(0, 0, 1)(5, 3, 12);
- emplacer[bf_d_vals]
- ("able", 0, 0, 1)("baker", 0, 0, 1)("chuck", 0, 2, 7)
- ("dog", 0, 0, 1)("easy", 0, 0, 1)("fox", 5, 1, 6)
- ("able", 0, 0, 1)("baker", 0, 0, 1)("chuck", 0, 0, 1)
- ("dog", 0, 0, 1)("easy", 0, 0, 1);
- emplacer[pre_d_vals]
- ("able", 0, 0, 1)("baker", 0, 0, 1)("chuck", 0, 2, 7)
- ("fox", 5, 1, 6)("able", 0, 0, 1)("baker", 0, 0, 1)
- ("chuck", 0, 0, 1)("dog", 0, 0, 1)("easy", 0, 0, 1)
- ("dog", 0, 0, 1)("easy", 0, 0, 1);
- emplacer[post_d_vals]
- ("able", 0, 0, 1)("baker", 0, 0, 1)("able", 0, 0, 1)
- ("baker", 0, 0, 1)("chuck", 0, 0, 1)("dog", 0, 0, 1)
- ("easy", 0, 0, 1)("fox", 5, 1, 6)("chuck", 0, 2, 7)
- ("dog", 0, 0, 1)("easy", 0, 0, 1);
- emplacer[df_d_vals]
- (boost::tree_node::pre_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "chuck", 0, 2, 7)
- (boost::tree_node::pre_order_traversal, "fox", 5, 1, 6)
- (boost::tree_node::pre_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "chuck", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "chuck", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "dog", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "dog", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "easy", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "easy", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "fox", 5, 1, 6)
- (boost::tree_node::post_order_traversal, "chuck", 0, 2, 7)
- (boost::tree_node::pre_order_traversal, "dog", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "dog", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "easy", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "easy", 0, 0, 1);
- emplacer[df_vals]
- (boost::tree_node::pre_order_traversal, 5, 3, 12)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 0, 2, 7)
- (boost::tree_node::pre_order_traversal, 5, 1, 6)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 5, 1, 6)
- (boost::tree_node::post_order_traversal, 0, 2, 7)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 5, 3, 12);
-#endif // BOOST_NO_SFINAE
- test_associative_node<a_node_case>(
- a_root
- , bf_vals
- , bf_d_vals
- , pre_vals
- , pre_d_vals
- , post_vals
- , post_d_vals
- , df_vals
- , df_d_vals
- );
-
- a_root = boost::tree_node::dereference_iterator(a_child_itr);
- bf_vals.clear();
- bf_d_vals.clear();
- pre_vals.clear();
- pre_d_vals.clear();
- post_vals.clear();
- post_d_vals.clear();
- df_vals.clear();
- df_d_vals.clear();
-
-#if defined BOOST_TREE_NODE_CAN_USE_FUSION
- emplacer[bf_vals]
- (5, 1, 6, 5, 0, 11, boost::rational<long>(5, 6))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1));
- emplacer[pre_vals]
- (5, 1, 6, 5, 0, 11, boost::rational<long>(5, 6))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1));
- emplacer[post_vals]
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (5, 1, 6, 5, 0, 11, boost::rational<long>(5, 6));
- emplacer[bf_d_vals]
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("chuck", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("dog", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("easy", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1));
- emplacer[pre_d_vals]
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("chuck", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("dog", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("easy", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1));
- emplacer[post_d_vals]
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("chuck", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("dog", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("easy", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1));
- emplacer[df_d_vals]
- (boost::tree_node::pre_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"chuck",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"chuck",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"dog",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"dog",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"easy",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"easy",0,0,1,
- 0,0,1,boost::rational<long>(0,1));
- emplacer[df_vals]
- (boost::tree_node::pre_order_traversal,5,1,6,
- 5,0,11,boost::rational<long>(5,6))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,5,1,6,
- 5,0,11,boost::rational<long>(5,6));
-#else // !defined BOOST_TREE_NODE_CAN_USE_FUSION
- emplacer[bf_vals]
- (5, 1, 6)(0, 0, 1)(0, 0, 1)(0, 0, 1)(0, 0, 1)(0, 0, 1);
- emplacer[pre_vals]
- (5, 1, 6)(0, 0, 1)(0, 0, 1)(0, 0, 1)(0, 0, 1)(0, 0, 1);
- emplacer[post_vals]
- (0, 0, 1)(0, 0, 1)(0, 0, 1)(0, 0, 1)(0, 0, 1)(5, 1, 6);
- emplacer[bf_d_vals]
- ("able", 0, 0, 1)("baker", 0, 0, 1)("chuck", 0, 0, 1)
- ("dog", 0, 0, 1)("easy", 0, 0, 1);
- emplacer[pre_d_vals]
- ("able", 0, 0, 1)("baker", 0, 0, 1)("chuck", 0, 0, 1)
- ("dog", 0, 0, 1)("easy", 0, 0, 1);
- emplacer[post_d_vals]
- ("able", 0, 0, 1)("baker", 0, 0, 1)("chuck", 0, 0, 1)
- ("dog", 0, 0, 1)("easy", 0, 0, 1);
- emplacer[df_d_vals]
- (boost::tree_node::pre_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "chuck", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "chuck", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "dog", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "dog", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "easy", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "easy", 0, 0, 1);
- emplacer[df_vals]
- (boost::tree_node::pre_order_traversal, 5, 1, 6)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 5, 1, 6);
-#endif // BOOST_NO_SFINAE
- test_associative_node<a_node_case>(
- a_root
- , bf_vals
- , bf_d_vals
- , pre_vals
- , pre_d_vals
- , post_vals
- , post_d_vals
- , df_vals
- , df_d_vals
- );
-
- a_child_itr = a_root.find(names[2]);
- boost::tree_node::dereference_iterator(a_child_itr) = a_root;
- test_associative_node<a_node_case>(
- boost::tree_node::dereference_iterator(a_child_itr)
- , bf_vals
- , bf_d_vals
- , pre_vals
- , pre_d_vals
- , post_vals
- , post_d_vals
- , df_vals
- , df_d_vals
- );
-
- bf_vals.clear();
- bf_d_vals.clear();
- pre_vals.clear();
- pre_d_vals.clear();
- post_vals.clear();
- post_d_vals.clear();
- df_vals.clear();
- df_d_vals.clear();
-
-#if defined BOOST_TREE_NODE_CAN_USE_FUSION
- emplacer[bf_vals]
- (5, 2, 11, 10, 1, 26, boost::rational<long>(15, 11))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (5, 1, 6, 5, 0, 11, boost::rational<long>(5, 6))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1));
- emplacer[pre_vals]
- (5, 2, 11, 10, 1, 26, boost::rational<long>(15, 11))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (5, 1, 6, 5, 0, 11, boost::rational<long>(5, 6))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1));
- emplacer[post_vals]
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (5, 1, 6, 5, 0, 11, boost::rational<long>(5, 6))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (5, 2, 11, 10, 1, 26, boost::rational<long>(15, 11));
- emplacer[bf_d_vals]
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("chuck", 5, 1, 6, 5, 0, 11, boost::rational<long>(5, 6))
- ("dog", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("easy", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("chuck", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("dog", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("easy", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1));
- emplacer[pre_d_vals]
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("chuck", 5, 1, 6, 5, 0, 11, boost::rational<long>(5, 6))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("chuck", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("dog", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("easy", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("dog", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("easy", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1));
- emplacer[post_d_vals]
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("chuck", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("dog", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("easy", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("chuck", 5, 1, 6, 5, 0, 11, boost::rational<long>(5, 6))
- ("dog", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("easy", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1));
- emplacer[df_d_vals]
- (boost::tree_node::pre_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"chuck",5,1,6,
- 5,0,11,boost::rational<long>(5,6))
- (boost::tree_node::pre_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"chuck",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"chuck",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"dog",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"dog",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"easy",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"easy",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"chuck",5,1,6,
- 5,0,11,boost::rational<long>(5,6))
- (boost::tree_node::pre_order_traversal,"dog",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"dog",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"easy",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"easy",0,0,1,
- 0,0,1,boost::rational<long>(0,1));
- emplacer[df_vals]
- (boost::tree_node::pre_order_traversal,5,2,11,
- 10,1,26,boost::rational<long>(15,11))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,5,1,6,
- 5,0,11,boost::rational<long>(5,6))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,5,1,6,
- 5,0,11,boost::rational<long>(5,6))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,5,2,11,
- 10,1,26,boost::rational<long>(15,11));
-#else // !defined BOOST_TREE_NODE_CAN_USE_FUSION
- emplacer[bf_vals]
- (5, 2, 11)(0, 0, 1)(0, 0, 1)(5, 1, 6)(0, 0, 1)(0, 0, 1)
- (0, 0, 1)(0, 0, 1)(0, 0, 1)(0, 0, 1)(0, 0, 1);
- emplacer[pre_vals]
- (5, 2, 11)(0, 0, 1)(0, 0, 1)(5, 1, 6)(0, 0, 1)(0, 0, 1)
- (0, 0, 1)(0, 0, 1)(0, 0, 1)(0, 0, 1)(0, 0, 1);
- emplacer[post_vals]
- (0, 0, 1)(0, 0, 1)(0, 0, 1)(0, 0, 1)(0, 0, 1)(0, 0, 1)
- (0, 0, 1)(5, 1, 6)(0, 0, 1)(0, 0, 1)(5, 2, 11);
- emplacer[bf_d_vals]
- ("able", 0, 0, 1)("baker", 0, 0, 1)("chuck", 5, 1, 6)
- ("dog", 0, 0, 1)("easy", 0, 0, 1)("able", 0, 0, 1)
- ("baker", 0, 0, 1)("chuck", 0, 0, 1)("dog", 0, 0, 1)
- ("easy", 0, 0, 1);
- emplacer[pre_d_vals]
- ("able", 0, 0, 1)("baker", 0, 0, 1)("chuck", 5, 1, 6)
- ("able", 0, 0, 1)("baker", 0, 0, 1)("chuck", 0, 0, 1)
- ("dog", 0, 0, 1)("easy", 0, 0, 1)("dog", 0, 0, 1)
- ("easy", 0, 0, 1);
- emplacer[post_d_vals]
- ("able", 0, 0, 1)("baker", 0, 0, 1)("able", 0, 0, 1)
- ("baker", 0, 0, 1)("chuck", 0, 0, 1)("dog", 0, 0, 1)
- ("easy", 0, 0, 1)("chuck", 5, 1, 6)("dog", 0, 0, 1)
- ("easy", 0, 0, 1);
- emplacer[df_d_vals]
- (boost::tree_node::pre_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "chuck", 5, 1, 6)
- (boost::tree_node::pre_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "chuck", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "chuck", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "dog", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "dog", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "easy", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "easy", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "chuck", 5, 1, 6)
- (boost::tree_node::pre_order_traversal, "dog", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "dog", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "easy", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "easy", 0, 0, 1);
- emplacer[df_vals]
- (boost::tree_node::pre_order_traversal, 5, 2, 11)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 5, 1, 6)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 5, 1, 6)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 5, 2, 11);
-#endif // BOOST_NO_SFINAE
- test_associative_node<a_node_case>(
- a_root
- , bf_vals
- , bf_d_vals
- , pre_vals
- , pre_d_vals
- , post_vals
- , post_d_vals
- , df_vals
- , df_d_vals
- );
- BOOST_CHECK(
- boost::tree_node::dereference_iterator(
- a_child_itr
- ).erase(names[1]) == 1
- );
- bf_vals.clear();
- bf_d_vals.clear();
- pre_vals.clear();
- pre_d_vals.clear();
- post_vals.clear();
- post_d_vals.clear();
- df_vals.clear();
- df_d_vals.clear();
-
-#if defined BOOST_TREE_NODE_CAN_USE_FUSION
- emplacer[bf_vals]
- (5, 2, 10, 10, 1, 23, boost::rational<long>(3, 2))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (5, 1, 5, 5, 0, 9, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1));
- emplacer[pre_vals]
- (5, 2, 10, 10, 1, 23, boost::rational<long>(3, 2))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (5, 1, 5, 5, 0, 9, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1));
- emplacer[post_vals]
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (5, 1, 5, 5, 0, 9, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (5, 2, 10, 10, 1, 23, boost::rational<long>(3, 2));
- emplacer[bf_d_vals]
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("chuck", 5, 1, 5, 5, 0, 9, boost::rational<long>(1, 1))
- ("dog", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("easy", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("chuck", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("dog", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("easy", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1));
- emplacer[pre_d_vals]
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("chuck", 5, 1, 5, 5, 0, 9, boost::rational<long>(1, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("chuck", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("dog", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("easy", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("dog", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("easy", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1));
- emplacer[post_d_vals]
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("chuck", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("dog", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("easy", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("chuck", 5, 1, 5, 5, 0, 9, boost::rational<long>(1, 1))
- ("dog", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("easy", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1));
- emplacer[df_d_vals]
- (boost::tree_node::pre_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"chuck",5,1,5,
- 5,0,9,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"chuck",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"chuck",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"dog",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"dog",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"easy",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"easy",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"chuck",5,1,5,
- 5,0,9,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"dog",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"dog",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"easy",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"easy",0,0,1,
- 0,0,1,boost::rational<long>(0,1));
- emplacer[df_vals]
- (boost::tree_node::pre_order_traversal,5,2,10,
- 10,1,23,boost::rational<long>(3,2))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,5,1,5,
- 5,0,9,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,5,1,5,
- 5,0,9,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,5,2,10,
- 10,1,23,boost::rational<long>(3,2));
-#else // !defined BOOST_TREE_NODE_CAN_USE_FUSION
- emplacer[bf_vals]
- (5, 2, 10)(0, 0, 1)(0, 0, 1)(5, 1, 5)(0, 0, 1)(0, 0, 1)
- (0, 0, 1)(0, 0, 1)(0, 0, 1)(0, 0, 1);
- emplacer[pre_vals]
- (5, 2, 10)(0, 0, 1)(0, 0, 1)(5, 1, 5)(0, 0, 1)(0, 0, 1)
- (0, 0, 1)(0, 0, 1)(0, 0, 1)(0, 0, 1);
- emplacer[post_vals]
- (0, 0, 1)(0, 0, 1)(0, 0, 1)(0, 0, 1)(0, 0, 1)(0, 0, 1)
- (5, 1, 5)(0, 0, 1)(0, 0, 1)(5, 2, 10);
- emplacer[bf_d_vals]
- ("able", 0, 0, 1)("baker", 0, 0, 1)("chuck", 5, 1, 5)
- ("dog", 0, 0, 1)("easy", 0, 0, 1)("able", 0, 0, 1)
- ("chuck", 0, 0, 1)("dog", 0, 0, 1)("easy", 0, 0, 1);
- emplacer[pre_d_vals]
- ("able", 0, 0, 1)("baker", 0, 0, 1)("chuck", 5, 1, 5)
- ("able", 0, 0, 1)("chuck", 0, 0, 1)("dog", 0, 0, 1)
- ("easy", 0, 0, 1)("dog", 0, 0, 1)("easy", 0, 0, 1);
- emplacer[post_d_vals]
- ("able", 0, 0, 1)("baker", 0, 0, 1)("able", 0, 0, 1)
- ("chuck", 0, 0, 1)("dog", 0, 0, 1)("easy", 0, 0, 1)
- ("chuck", 5, 1, 5)("dog", 0, 0, 1)("easy", 0, 0, 1);
- emplacer[df_d_vals]
- (boost::tree_node::pre_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "chuck", 5, 1, 5)
- (boost::tree_node::pre_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "chuck", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "chuck", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "dog", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "dog", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "easy", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "easy", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "chuck", 5, 1, 5)
- (boost::tree_node::pre_order_traversal, "dog", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "dog", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "easy", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "easy", 0, 0, 1);
- emplacer[df_vals]
- (boost::tree_node::pre_order_traversal, 5, 2, 10)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 5, 1, 5)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 5, 1, 5)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 5, 2, 10);
-#endif // BOOST_NO_SFINAE
- test_associative_node<a_node_case>(
- a_root
- , bf_vals
- , bf_d_vals
- , pre_vals
- , pre_d_vals
- , post_vals
- , post_d_vals
- , df_vals
- , df_d_vals
- );
- }
-
-#if defined BOOST_TREE_NODE_CAN_USE_FUSION_WITH_TYPEOF
- typedef boost::tree_node::with_accumulation<
- boost::tree_node::associative_node_base_gen<Selector>
- , char const*
- , DataMap
- , AccuYourUintKey
- >
- FNode;
- typedef typename boost::container_gen<
- boost::dequeS
- , boost::tuples::tuple<
- typename boost::tree_node::result_of::value_at_key<
- FNode const
- , example_keys::your_uint
- >::type
- , typename boost::tree_node::result_of::value_at_key<
- FNode const
- , example_keys::your_char
- >::type
- , typename boost::tree_node::result_of::value_at_key<
- FNode const
- , AccuYourUintKey
- >::type
- >
- >::type
- MoreValues;
- typedef typename boost::container_gen<
- boost::dequeS
- , boost::tuples::tuple<
- boost::tree_node::traversal_state
- , typename boost::tree_node::result_of::value_at_key<
- FNode const
- , example_keys::your_uint
- >::type
- , typename boost::tree_node::result_of::value_at_key<
- FNode const
- , example_keys::your_char
- >::type
- , typename boost::tree_node::result_of::value_at_key<
- FNode const
- , AccuYourUintKey
- >::type
- >
- >::type
- DFMoreValues;
- typedef typename boost::container_gen<
- boost::dequeS
- , boost::tuples::tuple<
- typename FNode::traits::key_type
- , typename boost::tree_node::result_of::value_at_key<
- FNode const
- , example_keys::your_uint
- >::type
- , typename boost::tree_node::result_of::value_at_key<
- FNode const
- , example_keys::your_char
- >::type
- , typename boost::tree_node::result_of::value_at_key<
- FNode const
- , AccuYourUintKey
- >::type
- >
- >::type
- MoreKeyValues;
- typedef typename boost::container_gen<
- boost::dequeS
- , boost::tuples::tuple<
- boost::tree_node::traversal_state
- , typename FNode::traits::key_type
- , typename boost::tree_node::result_of::value_at_key<
- FNode const
- , example_keys::your_uint
- >::type
- , typename boost::tree_node::result_of::value_at_key<
- FNode const
- , example_keys::your_char
- >::type
- , typename boost::tree_node::result_of::value_at_key<
- FNode const
- , AccuYourUintKey
- >::type
- >
- >::type
- DFMoreKeyValues;
-
- FNode f_root(
- boost::fusion::make_pair<example_keys::your_uint>(5)
- , boost::fusion::make_pair<example_keys::your_char>('5')
- );
-
- for (
- boost::tree_node::breadth_first_iterator<FNode> itr(f_root);
- itr;
- ++itr
- )
- {
- typename boost::tree_node::result_of::value_at_key<
- FNode const
- , example_keys::your_uint
- >::type data = boost::tree_node::get<
- example_keys::your_uint
- >(boost::tree_node::dereference_iterator(itr));
-
- if (1 < data)
- {
- for (unsigned int i = 0; i < data; ++i)
- {
- for (std::size_t j = 0; j + i < data; ++j)
- {
- itr->emplace(
- names[j]
- , boost::fusion::make_pair<example_keys::your_uint>(i)
- , boost::fusion::make_pair<example_keys::your_char>(
- '0' + i
- )
- );
- }
- }
- }
- }
-
- {
- MoreValues bf_vals, pre_vals, post_vals;
- MoreKeyValues bf_d_vals, pre_d_vals, post_d_vals;
- DFMoreKeyValues df_d_vals;
- DFMoreValues df_vals;
- Emplacer emplacer;
-
- emplacer[bf_vals]
- (5, '5', 5)(0, '0', 0)(0, '0', 0)(0, '0', 0)(0, '0', 0)
- (0, '0', 0);
- emplacer[pre_vals]
- (5, '5', 5)(0, '0', 0)(0, '0', 0)(0, '0', 0)(0, '0', 0)
- (0, '0', 0);
- emplacer[post_vals]
- (0, '0', 0)(0, '0', 0)(0, '0', 0)(0, '0', 0)(0, '0', 0)
- (5, '5', 5);
- emplacer[bf_d_vals]
- ("able", 0, '0', 0)("baker", 0, '0', 0)("chuck", 0, '0', 0)
- ("dog", 0, '0', 0)("easy", 0, '0', 0);
- emplacer[pre_d_vals]
- ("able", 0, '0', 0)("baker", 0, '0', 0)("chuck", 0, '0', 0)
- ("dog", 0, '0', 0)("easy", 0, '0', 0);
- emplacer[post_d_vals]
- ("able", 0, '0', 0)("baker", 0, '0', 0)("chuck", 0, '0', 0)
- ("dog", 0, '0', 0)("easy", 0, '0', 0);
- emplacer[df_d_vals]
- (boost::tree_node::pre_order_traversal,"able",0,'0',0)
- (boost::tree_node::post_order_traversal,"able",0,'0',0)
- (boost::tree_node::pre_order_traversal,"baker",0,'0',0)
- (boost::tree_node::post_order_traversal,"baker",0,'0',0)
- (boost::tree_node::pre_order_traversal,"chuck",0,'0',0)
- (boost::tree_node::post_order_traversal,"chuck",0,'0',0)
- (boost::tree_node::pre_order_traversal,"dog",0,'0',0)
- (boost::tree_node::post_order_traversal,"dog",0,'0',0)
- (boost::tree_node::pre_order_traversal,"easy",0,'0',0)
- (boost::tree_node::post_order_traversal,"easy",0,'0',0);
- emplacer[df_vals]
- (boost::tree_node::pre_order_traversal,5,'5',5)
- (boost::tree_node::pre_order_traversal,0,'0',0)
- (boost::tree_node::post_order_traversal,0,'0',0)
- (boost::tree_node::pre_order_traversal,0,'0',0)
- (boost::tree_node::post_order_traversal,0,'0',0)
- (boost::tree_node::pre_order_traversal,0,'0',0)
- (boost::tree_node::post_order_traversal,0,'0',0)
- (boost::tree_node::pre_order_traversal,0,'0',0)
- (boost::tree_node::post_order_traversal,0,'0',0)
- (boost::tree_node::pre_order_traversal,0,'0',0)
- (boost::tree_node::post_order_traversal,0,'0',0)
- (boost::tree_node::post_order_traversal,5,'5',5);
- test_associative_node<f_node_case>(
- f_root
- , bf_vals
- , bf_d_vals
- , pre_vals
- , pre_d_vals
- , post_vals
- , post_d_vals
- , df_vals
- , df_d_vals
- );
-
- put(
- boost::tree_node::dereference_iterator(f_root.find(names[2]))
- , example_keys::your_uint()
- , 7
- );
- bf_vals.clear();
- bf_d_vals.clear();
- pre_vals.clear();
- pre_d_vals.clear();
- post_vals.clear();
- post_d_vals.clear();
- df_vals.clear();
- df_d_vals.clear();
-
- emplacer[bf_vals]
- (5, '5', 12)(0, '0', 0)(0, '0', 0)(7, '0', 7)(0, '0', 0)
- (0, '0', 0);
- emplacer[pre_vals]
- (5, '5', 12)(0, '0', 0)(0, '0', 0)(7, '0', 7)(0, '0', 0)
- (0, '0', 0);
- emplacer[post_vals]
- (0, '0', 0)(0, '0', 0)(7, '0', 7)(0, '0', 0)(0, '0', 0)
- (5, '5', 12);
- emplacer[bf_d_vals]
- ("able", 0, '0', 0)("baker", 0, '0', 0)("chuck", 7, '0', 7)
- ("dog", 0, '0', 0)("easy", 0, '0', 0);
- emplacer[pre_d_vals]
- ("able", 0, '0', 0)("baker", 0, '0', 0)("chuck", 7, '0', 7)
- ("dog", 0, '0', 0)("easy", 0, '0', 0);
- emplacer[post_d_vals]
- ("able", 0, '0', 0)("baker", 0, '0', 0)("chuck", 7, '0', 7)
- ("dog", 0, '0', 0)("easy", 0, '0', 0);
- emplacer[df_d_vals]
- (boost::tree_node::pre_order_traversal,"able",0,'0',0)
- (boost::tree_node::post_order_traversal,"able",0,'0',0)
- (boost::tree_node::pre_order_traversal,"baker",0,'0',0)
- (boost::tree_node::post_order_traversal,"baker",0,'0',0)
- (boost::tree_node::pre_order_traversal,"chuck",7,'0',7)
- (boost::tree_node::post_order_traversal,"chuck",7,'0',7)
- (boost::tree_node::pre_order_traversal,"dog",0,'0',0)
- (boost::tree_node::post_order_traversal,"dog",0,'0',0)
- (boost::tree_node::pre_order_traversal,"easy",0,'0',0)
- (boost::tree_node::post_order_traversal,"easy",0,'0',0);
- emplacer[df_vals]
- (boost::tree_node::pre_order_traversal,5,'5',12)
- (boost::tree_node::pre_order_traversal,0,'0',0)
- (boost::tree_node::post_order_traversal,0,'0',0)
- (boost::tree_node::pre_order_traversal,0,'0',0)
- (boost::tree_node::post_order_traversal,0,'0',0)
- (boost::tree_node::pre_order_traversal,7,'0',7)
- (boost::tree_node::post_order_traversal,7,'0',7)
- (boost::tree_node::pre_order_traversal,0,'0',0)
- (boost::tree_node::post_order_traversal,0,'0',0)
- (boost::tree_node::pre_order_traversal,0,'0',0)
- (boost::tree_node::post_order_traversal,0,'0',0)
- (boost::tree_node::post_order_traversal,5,'5',12);
- test_associative_node<f_node_case>(
- f_root
- , bf_vals
- , bf_d_vals
- , pre_vals
- , pre_d_vals
- , post_vals
- , post_d_vals
- , df_vals
- , df_d_vals
- );
- }
-#endif // BOOST_TREE_NODE_CAN_USE_FUSION_WITH_TYPEOF
-}
-
-template <typename Selector>
-void test_multiple_associative()
-{
-#if defined BOOST_TREE_NODE_CAN_USE_FUSION
- typedef boost::tree_node::with_accumulation<
- boost::tree_node::with_height_base_gen<
- boost::tree_node::with_accumulation_base_gen<
- boost::tree_node::with_position_base_gen<
- boost::tree_node::with_accumulation_base_gen<
- boost::tree_node::with_count_base_gen<
- boost::tree_node::with_accumulation_base_gen<
- boost::tree_node::associative_node_base_gen<Selector>
- >
- >
- , AccuAccuKey
- >
- >
- , AccuCountKey
- >
- >
- , char const*
- , boost::rational<long>
- , AccuHeightKey
- >
- ANode;
-#else // !defined BOOST_TREE_NODE_CAN_USE_FUSION
- typedef boost::tree_node::with_height<
- boost::tree_node::with_position_base_gen<
- boost::tree_node::with_count_base_gen<
- boost::tree_node::associative_node_base_gen<Selector>
- >
- >
- , char const*
- , boost::rational<long>
- >
- ANode;
-#endif // BOOST_TREE_NODE_CAN_USE_FUSION
-
- typedef typename boost::container_gen<
- boost::dequeS
- , boost::tuples::tuple<
- typename boost::tree_node::result_of::value_at_key<
- ANode const
- , boost::tree_node::data_key
- >::type
- , typename boost::tree_node::result_of::value_at_key<
- ANode const
- , boost::tree_node::height_key
- >::type
- , typename boost::tree_node::result_of::value_at_key<
- ANode const
- , boost::tree_node::count_key
- >::type
-#if defined BOOST_TREE_NODE_CAN_USE_FUSION
- , typename boost::tree_node::result_of::value_at_key<
- ANode const
- , boost::tree_node::accumulation_key<>
- >::type
- , typename boost::tree_node::result_of::value_at_key<
- ANode const
- , AccuHeightKey
- >::type
- , typename boost::tree_node::result_of::value_at_key<
- ANode const
- , AccuCountKey
- >::type
- , typename boost::tree_node::result_of::value_at_key<
- ANode const
- , AccuAccuKey
- >::type
-#endif // BOOST_TREE_NODE_CAN_USE_FUSION
- >
- >::type
- Values;
- typedef typename boost::container_gen<
- boost::dequeS
- , boost::tuples::tuple<
- boost::tree_node::traversal_state
- , typename boost::tree_node::result_of::value_at_key<
- ANode const
- , boost::tree_node::data_key
- >::type
- , typename boost::tree_node::result_of::value_at_key<
- ANode const
- , boost::tree_node::height_key
- >::type
- , typename boost::tree_node::result_of::value_at_key<
- ANode const
- , boost::tree_node::count_key
- >::type
-#if defined BOOST_TREE_NODE_CAN_USE_FUSION
- , typename boost::tree_node::result_of::value_at_key<
- ANode const
- , boost::tree_node::accumulation_key<>
- >::type
- , typename boost::tree_node::result_of::value_at_key<
- ANode const
- , AccuHeightKey
- >::type
- , typename boost::tree_node::result_of::value_at_key<
- ANode const
- , AccuCountKey
- >::type
- , typename boost::tree_node::result_of::value_at_key<
- ANode const
- , AccuAccuKey
- >::type
-#endif // BOOST_TREE_NODE_CAN_USE_FUSION
- >
- >::type
- DFValues;
- typedef typename boost::container_gen<
- boost::dequeS
- , boost::tuples::tuple<
- typename ANode::traits::key_type
- , typename boost::tree_node::result_of::value_at_key<
- ANode const
- , boost::tree_node::data_key
- >::type
- , typename boost::tree_node::result_of::value_at_key<
- ANode const
- , boost::tree_node::height_key
- >::type
- , typename boost::tree_node::result_of::value_at_key<
- ANode const
- , boost::tree_node::count_key
- >::type
-#if defined BOOST_TREE_NODE_CAN_USE_FUSION
- , typename boost::tree_node::result_of::value_at_key<
- ANode const
- , boost::tree_node::accumulation_key<>
- >::type
- , typename boost::tree_node::result_of::value_at_key<
- ANode const
- , AccuHeightKey
- >::type
- , typename boost::tree_node::result_of::value_at_key<
- ANode const
- , AccuCountKey
- >::type
- , typename boost::tree_node::result_of::value_at_key<
- ANode const
- , AccuAccuKey
- >::type
-#endif // BOOST_TREE_NODE_CAN_USE_FUSION
- >
- >::type
- KeyValues;
- typedef typename boost::container_gen<
- boost::dequeS
- , boost::tuples::tuple<
- boost::tree_node::traversal_state
- , typename ANode::traits::key_type
- , typename boost::tree_node::result_of::value_at_key<
- ANode const
- , boost::tree_node::data_key
- >::type
- , typename boost::tree_node::result_of::value_at_key<
- ANode const
- , boost::tree_node::height_key
- >::type
- , typename boost::tree_node::result_of::value_at_key<
- ANode const
- , boost::tree_node::count_key
- >::type
-#if defined BOOST_TREE_NODE_CAN_USE_FUSION
- , typename boost::tree_node::result_of::value_at_key<
- ANode const
- , boost::tree_node::accumulation_key<>
- >::type
- , typename boost::tree_node::result_of::value_at_key<
- ANode const
- , AccuHeightKey
- >::type
- , typename boost::tree_node::result_of::value_at_key<
- ANode const
- , AccuCountKey
- >::type
- , typename boost::tree_node::result_of::value_at_key<
- ANode const
- , AccuAccuKey
- >::type
-#endif // BOOST_TREE_NODE_CAN_USE_FUSION
- >
- >::type
- DFKeyValues;
-
- ANode a_root(5);
-
- BOOST_CHECK(
- !a_root.get_parent_ptr()
-// , "Parent member uninitialized."
- );
-
- initialize<Selector>(a_root);
-
- {
- Values bf_vals, pre_vals, post_vals;
- KeyValues bf_d_vals, pre_d_vals, post_d_vals;
- DFValues df_vals;
- DFKeyValues df_d_vals;
- Emplacer emplacer;
-
-#if defined BOOST_TREE_NODE_CAN_USE_FUSION
- emplacer[bf_vals]
- (5, 4, 68, 55, 3, 211, boost::rational<long>(145, 68))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (3, 2, 10, 8, 1, 22, boost::rational<long>(7, 5))
- (4, 3, 26, 21, 2, 69, boost::rational<long>(23, 13))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (3, 2, 10, 8, 1, 22, boost::rational<long>(7, 5))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (3, 2, 10, 8, 1, 22, boost::rational<long>(7, 5))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1));
- emplacer[pre_vals]
- (5, 4, 68, 55, 3, 211, boost::rational<long>(145, 68))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (3, 2, 10, 8, 1, 22, boost::rational<long>(7, 5))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (4, 3, 26, 21, 2, 69, boost::rational<long>(23, 13))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (3, 2, 10, 8, 1, 22, boost::rational<long>(7, 5))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (3, 2, 10, 8, 1, 22, boost::rational<long>(7, 5))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1));
- emplacer[post_vals]
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (3, 2, 10, 8, 1, 22, boost::rational<long>(7, 5))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (3, 2, 10, 8, 1, 22, boost::rational<long>(7, 5))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (4, 3, 26, 21, 2, 69, boost::rational<long>(23, 13))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (3, 2, 10, 8, 1, 22, boost::rational<long>(7, 5))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (5, 4, 68, 55, 3, 211, boost::rational<long>(145, 68));
- emplacer[bf_d_vals]
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("able", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("able", 3, 2, 10, 8, 1, 22, boost::rational<long>(7, 5))
- ("able", 4, 3, 26, 21, 2, 69, boost::rational<long>(23, 13))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("baker", 3, 2, 10, 8, 1, 22, boost::rational<long>(7, 5))
- ("chuck", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("chuck", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("chuck", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("dog", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("dog", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("easy", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("able", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("chuck", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("able", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("able", 3, 2, 10, 8, 1, 22, boost::rational<long>(7, 5))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("chuck", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("chuck", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("dog", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("able", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("chuck", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("able", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("chuck", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1));
- emplacer[pre_d_vals]
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("able", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 3, 2, 10, 8, 1, 22, boost::rational<long>(7, 5))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("able", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("chuck", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 4, 3, 26, 21, 2, 69, boost::rational<long>(23, 13))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("able", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 3, 2, 10, 8, 1, 22, boost::rational<long>(7, 5))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("able", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("chuck", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("chuck", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("chuck", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("dog", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 3, 2, 10, 8, 1, 22, boost::rational<long>(7, 5))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("able", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("chuck", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("chuck", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("chuck", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("chuck", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("dog", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("dog", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("easy", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1));
- emplacer[post_d_vals]
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("chuck", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 3, 2, 10, 8, 1, 22, boost::rational<long>(7, 5))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("chuck", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 3, 2, 10, 8, 1, 22, boost::rational<long>(7, 5))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("chuck", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("chuck", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("dog", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 4, 3, 26, 21, 2, 69, boost::rational<long>(23, 13))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("chuck", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 3, 2, 10, 8, 1, 22, boost::rational<long>(7, 5))
- ("chuck", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("chuck", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("chuck", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("dog", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("dog", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("easy", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1));
- emplacer[df_d_vals]
- (boost::tree_node::pre_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"able",2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"able",3,2,10,
- 8,1,22,boost::rational<long>(7,5))
- (boost::tree_node::pre_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"able",2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"baker",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"baker",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"chuck",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"chuck",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",3,2,10,
- 8,1,22,boost::rational<long>(7,5))
- (boost::tree_node::pre_order_traversal,"able",4,3,26,
- 21,2,69,boost::rational<long>(23,13))
- (boost::tree_node::pre_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"able",2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"able",3,2,10,
- 8,1,22,boost::rational<long>(7,5))
- (boost::tree_node::pre_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"able",2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"baker",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"baker",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"chuck",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"chuck",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",3,2,10,
- 8,1,22,boost::rational<long>(7,5))
- (boost::tree_node::pre_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"baker",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"baker",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"baker",2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"baker",2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"chuck",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"chuck",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"chuck",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"chuck",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"dog",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"dog",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",4,3,26,
- 21,2,69,boost::rational<long>(23,13))
- (boost::tree_node::pre_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"baker",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"baker",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"baker",2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"baker",2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"baker",3,2,10,
- 8,1,22,boost::rational<long>(7,5))
- (boost::tree_node::pre_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"able",2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"baker",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"baker",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"chuck",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"chuck",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"baker",3,2,10,
- 8,1,22,boost::rational<long>(7,5))
- (boost::tree_node::pre_order_traversal,"chuck",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"chuck",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"chuck",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"chuck",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"chuck",2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"chuck",2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"dog",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"dog",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"dog",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"dog",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"easy",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"easy",0,0,1,
- 0,0,1,boost::rational<long>(0,1));
- emplacer[df_vals]
- (boost::tree_node::pre_order_traversal,5,4,68,
- 55,3,211,boost::rational<long>(145,68))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,3,2,10,
- 8,1,22,boost::rational<long>(7,5))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,3,2,10,
- 8,1,22,boost::rational<long>(7,5))
- (boost::tree_node::pre_order_traversal,4,3,26,
- 21,2,69,boost::rational<long>(23,13))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,3,2,10,
- 8,1,22,boost::rational<long>(7,5))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,3,2,10,
- 8,1,22,boost::rational<long>(7,5))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,4,3,26,
- 21,2,69,boost::rational<long>(23,13))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,3,2,10,
- 8,1,22,boost::rational<long>(7,5))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,3,2,10,
- 8,1,22,boost::rational<long>(7,5))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,5,4,68,
- 55,3,211,boost::rational<long>(145,68));
-#else // !defined BOOST_TREE_NODE_CAN_USE_FUSION
- emplacer[bf_vals]
- (5, 4, 68)(0, 0, 1)(1, 0, 1)(2, 1, 4)(3, 2, 10)(4, 3, 26)
- (0, 0, 1)(1, 0, 1)(2, 1, 4)(3, 2, 10)(0, 0, 1)(1, 0, 1)
- (2, 1, 4)(0, 0, 1)(1, 0, 1)(0, 0, 1)(0, 0, 1)(1, 0, 1)
- (0, 0, 1)(0, 0, 1)(1, 0, 1)(2, 1, 4)(0, 0, 1)(1, 0, 1)
- (0, 0, 1)(0, 0, 1)(1, 0, 1)(2, 1, 4)(3, 2, 10)(0, 0, 1)
- (1, 0, 1)(2, 1, 4)(0, 0, 1)(1, 0, 1)(0, 0, 1)(0, 0, 1)
- (1, 0, 1)(0, 0, 1)(0, 0, 1)(1, 0, 1)(2, 1, 4)(0, 0, 1)
- (1, 0, 1)(0, 0, 1)(0, 0, 1)(1, 0, 1)(0, 0, 1)(0, 0, 1)
- (1, 0, 1)(0, 0, 1)(0, 0, 1)(1, 0, 1)(0, 0, 1)(0, 0, 1)
- (1, 0, 1)(2, 1, 4)(0, 0, 1)(1, 0, 1)(0, 0, 1)(0, 0, 1)
- (1, 0, 1)(0, 0, 1)(0, 0, 1)(1, 0, 1)(0, 0, 1)(0, 0, 1)
- (1, 0, 1)(0, 0, 1);
- emplacer[pre_vals]
- (5, 4, 68)(0, 0, 1)(1, 0, 1)(2, 1, 4)(0, 0, 1)(1, 0, 1)
- (0, 0, 1)(3, 2, 10)(0, 0, 1)(1, 0, 1)(2, 1, 4)(0, 0, 1)
- (1, 0, 1)(0, 0, 1)(0, 0, 1)(1, 0, 1)(0, 0, 1)(4, 3, 26)
- (0, 0, 1)(1, 0, 1)(2, 1, 4)(0, 0, 1)(1, 0, 1)(0, 0, 1)
- (3, 2, 10)(0, 0, 1)(1, 0, 1)(2, 1, 4)(0, 0, 1)(1, 0, 1)
- (0, 0, 1)(0, 0, 1)(1, 0, 1)(0, 0, 1)(0, 0, 1)(1, 0, 1)
- (2, 1, 4)(0, 0, 1)(1, 0, 1)(0, 0, 1)(0, 0, 1)(1, 0, 1)
- (0, 0, 1)(0, 0, 1)(1, 0, 1)(2, 1, 4)(0, 0, 1)(1, 0, 1)
- (0, 0, 1)(3, 2, 10)(0, 0, 1)(1, 0, 1)(2, 1, 4)(0, 0, 1)
- (1, 0, 1)(0, 0, 1)(0, 0, 1)(1, 0, 1)(0, 0, 1)(0, 0, 1)
- (1, 0, 1)(2, 1, 4)(0, 0, 1)(1, 0, 1)(0, 0, 1)(0, 0, 1)
- (1, 0, 1)(0, 0, 1);
- emplacer[post_vals]
- (0, 0, 1)(1, 0, 1)(0, 0, 1)(1, 0, 1)(0, 0, 1)(2, 1, 4)
- (0, 0, 1)(1, 0, 1)(0, 0, 1)(1, 0, 1)(0, 0, 1)(2, 1, 4)
- (0, 0, 1)(1, 0, 1)(0, 0, 1)(3, 2, 10)(0, 0, 1)(1, 0, 1)
- (0, 0, 1)(1, 0, 1)(0, 0, 1)(2, 1, 4)(0, 0, 1)(1, 0, 1)
- (0, 0, 1)(1, 0, 1)(0, 0, 1)(2, 1, 4)(0, 0, 1)(1, 0, 1)
- (0, 0, 1)(3, 2, 10)(0, 0, 1)(1, 0, 1)(0, 0, 1)(1, 0, 1)
- (0, 0, 1)(2, 1, 4)(0, 0, 1)(1, 0, 1)(0, 0, 1)(4, 3, 26)
- (0, 0, 1)(1, 0, 1)(0, 0, 1)(1, 0, 1)(0, 0, 1)(2, 1, 4)
- (0, 0, 1)(1, 0, 1)(0, 0, 1)(1, 0, 1)(0, 0, 1)(2, 1, 4)
- (0, 0, 1)(1, 0, 1)(0, 0, 1)(3, 2, 10)(0, 0, 1)(1, 0, 1)
- (0, 0, 1)(1, 0, 1)(0, 0, 1)(2, 1, 4)(0, 0, 1)(1, 0, 1)
- (0, 0, 1)(5, 4, 68);
- emplacer[bf_d_vals]
- ("able", 0, 0, 1)("able", 1, 0, 1)("able", 2, 1, 4)
- ("able", 3, 2, 10)("able", 4, 3, 26)("baker", 0, 0, 1)
- ("baker", 1, 0, 1)("baker", 2, 1, 4)("baker", 3, 2, 10)
- ("chuck", 0, 0, 1)("chuck", 1, 0, 1)("chuck", 2, 1, 4)
- ("dog", 0, 0, 1)("dog", 1, 0, 1)("easy", 0, 0, 1)
- ("able", 0, 0, 1)("able", 1, 0, 1)("baker", 0, 0, 1)
- ("able", 0, 0, 1)("able", 1, 0, 1)("able", 2, 1, 4)
- ("baker", 0, 0, 1)("baker", 1, 0, 1)("chuck", 0, 0, 1)
- ("able", 0, 0, 1)("able", 1, 0, 1)("able", 2, 1, 4)
- ("able", 3, 2, 10)("baker", 0, 0, 1)("baker", 1, 0, 1)
- ("baker", 2, 1, 4)("chuck", 0, 0, 1)("chuck", 1, 0, 1)
- ("dog", 0, 0, 1)("able", 0, 0, 1)("able", 1, 0, 1)
- ("baker", 0, 0, 1)("able", 0, 0, 1)("able", 1, 0, 1)
- ("able", 2, 1, 4)("baker", 0, 0, 1)("baker", 1, 0, 1)
- ("chuck", 0, 0, 1)("able", 0, 0, 1)("able", 1, 0, 1)
- ("baker", 0, 0, 1)("able", 0, 0, 1)("able", 1, 0, 1)
- ("baker", 0, 0, 1)("able", 0, 0, 1)("able", 1, 0, 1)
- ("baker", 0, 0, 1)("able", 0, 0, 1)("able", 1, 0, 1)
- ("able", 2, 1, 4)("baker", 0, 0, 1)("baker", 1, 0, 1)
- ("chuck", 0, 0, 1)("able", 0, 0, 1)("able", 1, 0, 1)
- ("baker", 0, 0, 1)("able", 0, 0, 1)("able", 1, 0, 1)
- ("baker", 0, 0, 1)("able", 0, 0, 1)("able", 1, 0, 1)
- ("baker", 0, 0, 1);
- emplacer[pre_d_vals]
- ("able", 0, 0, 1)("able", 1, 0, 1)("able", 2, 1, 4)
- ("able", 0, 0, 1)("able", 1, 0, 1)("baker", 0, 0, 1)
- ("able", 3, 2, 10)("able", 0, 0, 1)("able", 1, 0, 1)
- ("able", 2, 1, 4)("able", 0, 0, 1)("able", 1, 0, 1)
- ("baker", 0, 0, 1)("baker", 0, 0, 1)("baker", 1, 0, 1)
- ("chuck", 0, 0, 1)("able", 4, 3, 26)("able", 0, 0, 1)
- ("able", 1, 0, 1)("able", 2, 1, 4)("able", 0, 0, 1)
- ("able", 1, 0, 1)("baker", 0, 0, 1)("able", 3, 2, 10)
- ("able", 0, 0, 1)("able", 1, 0, 1)("able", 2, 1, 4)
- ("able", 0, 0, 1)("able", 1, 0, 1)("baker", 0, 0, 1)
- ("baker", 0, 0, 1)("baker", 1, 0, 1)("chuck", 0, 0, 1)
- ("baker", 0, 0, 1)("baker", 1, 0, 1)("baker", 2, 1, 4)
- ("able", 0, 0, 1)("able", 1, 0, 1)("baker", 0, 0, 1)
- ("chuck", 0, 0, 1)("chuck", 1, 0, 1)("dog", 0, 0, 1)
- ("baker", 0, 0, 1)("baker", 1, 0, 1)("baker", 2, 1, 4)
- ("able", 0, 0, 1)("able", 1, 0, 1)("baker", 0, 0, 1)
- ("baker", 3, 2, 10)("able", 0, 0, 1)("able", 1, 0, 1)
- ("able", 2, 1, 4)("able", 0, 0, 1)("able", 1, 0, 1)
- ("baker", 0, 0, 1)("baker", 0, 0, 1)("baker", 1, 0, 1)
- ("chuck", 0, 0, 1)("chuck", 0, 0, 1)("chuck", 1, 0, 1)
- ("chuck", 2, 1, 4)("able", 0, 0, 1)("able", 1, 0, 1)
- ("baker", 0, 0, 1)("dog", 0, 0, 1)("dog", 1, 0, 1)
- ("easy", 0, 0, 1);
- emplacer[post_d_vals]
- ("able", 0, 0, 1)("able", 1, 0, 1)("able", 0, 0, 1)
- ("able", 1, 0, 1)("baker", 0, 0, 1)("able", 2, 1, 4)
- ("able", 0, 0, 1)("able", 1, 0, 1)("able", 0, 0, 1)
- ("able", 1, 0, 1)("baker", 0, 0, 1)("able", 2, 1, 4)
- ("baker", 0, 0, 1)("baker", 1, 0, 1)("chuck", 0, 0, 1)
- ("able", 3, 2, 10)("able", 0, 0, 1)("able", 1, 0, 1)
- ("able", 0, 0, 1)("able", 1, 0, 1)("baker", 0, 0, 1)
- ("able", 2, 1, 4)("able", 0, 0, 1)("able", 1, 0, 1)
- ("able", 0, 0, 1)("able", 1, 0, 1)("baker", 0, 0, 1)
- ("able", 2, 1, 4)("baker", 0, 0, 1)("baker", 1, 0, 1)
- ("chuck", 0, 0, 1)("able", 3, 2, 10)("baker", 0, 0, 1)
- ("baker", 1, 0, 1)("able", 0, 0, 1)("able", 1, 0, 1)
- ("baker", 0, 0, 1)("baker", 2, 1, 4)("chuck", 0, 0, 1)
- ("chuck", 1, 0, 1)("dog", 0, 0, 1)("able", 4, 3, 26)
- ("baker", 0, 0, 1)("baker", 1, 0, 1)("able", 0, 0, 1)
- ("able", 1, 0, 1)("baker", 0, 0, 1)("baker", 2, 1, 4)
- ("able", 0, 0, 1)("able", 1, 0, 1)("able", 0, 0, 1)
- ("able", 1, 0, 1)("baker", 0, 0, 1)("able", 2, 1, 4)
- ("baker", 0, 0, 1)("baker", 1, 0, 1)("chuck", 0, 0, 1)
- ("baker", 3, 2, 10)("chuck", 0, 0, 1)("chuck", 1, 0, 1)
- ("able", 0, 0, 1)("able", 1, 0, 1)("baker", 0, 0, 1)
- ("chuck", 2, 1, 4)("dog", 0, 0, 1)("dog", 1, 0, 1)
- ("easy", 0, 0, 1);
- emplacer[df_d_vals]
- (boost::tree_node::pre_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "able", 2, 1, 4)
- (boost::tree_node::pre_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 2, 1, 4)
- (boost::tree_node::pre_order_traversal, "able", 3, 2, 10)
- (boost::tree_node::pre_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "able", 2, 1, 4)
- (boost::tree_node::pre_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 2, 1, 4)
- (boost::tree_node::pre_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "baker", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "chuck", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "chuck", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 3, 2, 10)
- (boost::tree_node::pre_order_traversal, "able", 4, 3, 26)
- (boost::tree_node::pre_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "able", 2, 1, 4)
- (boost::tree_node::pre_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 2, 1, 4)
- (boost::tree_node::pre_order_traversal, "able", 3, 2, 10)
- (boost::tree_node::pre_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "able", 2, 1, 4)
- (boost::tree_node::pre_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 2, 1, 4)
- (boost::tree_node::pre_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "baker", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "chuck", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "chuck", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 3, 2, 10)
- (boost::tree_node::pre_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "baker", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "baker", 2, 1, 4)
- (boost::tree_node::pre_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 2, 1, 4)
- (boost::tree_node::pre_order_traversal, "chuck", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "chuck", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "chuck", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "chuck", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "dog", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "dog", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 4, 3, 26)
- (boost::tree_node::pre_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "baker", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "baker", 2, 1, 4)
- (boost::tree_node::pre_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 2, 1, 4)
- (boost::tree_node::pre_order_traversal, "baker", 3, 2, 10)
- (boost::tree_node::pre_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "able", 2, 1, 4)
- (boost::tree_node::pre_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 2, 1, 4)
- (boost::tree_node::pre_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "baker", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "chuck", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "chuck", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 3, 2, 10)
- (boost::tree_node::pre_order_traversal, "chuck", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "chuck", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "chuck", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "chuck", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "chuck", 2, 1, 4)
- (boost::tree_node::pre_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "chuck", 2, 1, 4)
- (boost::tree_node::pre_order_traversal, "dog", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "dog", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "dog", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "dog", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "easy", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "easy", 0, 0, 1);
- emplacer[df_vals]
- (boost::tree_node::pre_order_traversal, 5, 4, 68)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 2, 1, 4)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 2, 1, 4)
- (boost::tree_node::pre_order_traversal, 3, 2, 10)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 2, 1, 4)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 2, 1, 4)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 3, 2, 10)
- (boost::tree_node::pre_order_traversal, 4, 3, 26)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 2, 1, 4)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 2, 1, 4)
- (boost::tree_node::pre_order_traversal, 3, 2, 10)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 2, 1, 4)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 2, 1, 4)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 3, 2, 10)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 2, 1, 4)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 2, 1, 4)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 4, 3, 26)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 2, 1, 4)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 2, 1, 4)
- (boost::tree_node::pre_order_traversal, 3, 2, 10)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 2, 1, 4)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 2, 1, 4)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 3, 2, 10)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 2, 1, 4)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 2, 1, 4)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 5, 4, 68);
-#endif // BOOST_NO_SFINAE
- test_associative_node<a_node_case>(
- a_root
- , bf_vals
- , bf_d_vals
- , pre_vals
- , pre_d_vals
- , post_vals
- , post_d_vals
- , df_vals
- , df_d_vals
- );
- }
- {
- ANode a_copy(a_root);
- boost::tree_node::breadth_first_iterator<ANode const>
- bf_root_itr(a_root), bf_copy_itr(a_copy);
- boost::tree_node::breadth_first_descendant_iterator<ANode const>
- bf_d_root_itr(a_root), bf_d_copy_itr(a_copy);
- boost::tree_node::pre_order_iterator<ANode const>
- pre_root_itr(a_root), pre_copy_itr(a_copy);
- boost::tree_node::pre_order_descendant_iterator<ANode const>
- pre_d_root_itr(a_root), pre_d_copy_itr(a_copy);
- boost::tree_node::post_order_iterator<ANode const>
- post_root_itr(a_root), post_copy_itr(a_copy);
- boost::tree_node::post_order_descendant_iterator<ANode const>
- post_d_root_itr(a_root), post_d_copy_itr(a_copy);
- boost::tree_node::depth_first_iterator<ANode const>
- df_root_itr(a_root), df_copy_itr(a_copy);
- boost::tree_node::depth_first_descendant_iterator<ANode const>
- df_d_root_itr(a_root), df_d_copy_itr(a_copy);
-
- BOOST_CHECK(test_node_copies(bf_root_itr, bf_copy_itr));
- BOOST_CHECK(
- test_associative_node_copies(bf_d_root_itr, bf_d_copy_itr)
- );
- BOOST_CHECK(test_node_copies(pre_root_itr, pre_copy_itr));
- BOOST_CHECK(
- test_associative_node_copies(pre_d_root_itr, pre_d_copy_itr)
- );
- BOOST_CHECK(test_node_copies(post_root_itr, post_copy_itr));
- BOOST_CHECK(
- test_associative_node_copies(post_d_root_itr, post_d_copy_itr)
- );
- BOOST_CHECK(test_node_copies(df_root_itr, df_copy_itr));
- BOOST_CHECK(
- test_associative_node_copies(df_d_root_itr, df_d_copy_itr)
- );
- }
-
- {
- typename ANode::iterator a_child_itr(
- boost::tree_node::dereference_iterator(
- a_root.find(names[2])
- ).insert(names[5], a_root)
- );
- Values bf_vals, pre_vals, post_vals;
- KeyValues bf_d_vals, pre_d_vals, post_d_vals;
- DFValues df_vals;
- DFKeyValues df_d_vals;
- Emplacer emplacer;
-
-#if defined BOOST_TREE_NODE_CAN_USE_FUSION
- emplacer[bf_vals]
- (5, 6, 136, 110, 5, 558, boost::rational<long>(50, 17))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (3, 2, 10, 8, 1, 22, boost::rational<long>(7, 5))
- (4, 3, 26, 21, 2, 69, boost::rational<long>(23, 13))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (3, 2, 10, 8, 1, 22, boost::rational<long>(7, 5))
- (0, 5, 69, 55, 4, 280, boost::rational<long>(200, 69))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (3, 2, 10, 8, 1, 22, boost::rational<long>(7, 5))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (5, 4, 68, 55, 3, 211, boost::rational<long>(145, 68))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (3, 2, 10, 8, 1, 22, boost::rational<long>(7, 5))
- (4, 3, 26, 21, 2, 69, boost::rational<long>(23, 13))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (3, 2, 10, 8, 1, 22, boost::rational<long>(7, 5))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (3, 2, 10, 8, 1, 22, boost::rational<long>(7, 5))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1));
- emplacer[pre_vals]
- (5, 6, 136, 110, 5, 558, boost::rational<long>(50, 17))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (3, 2, 10, 8, 1, 22, boost::rational<long>(7, 5))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (4, 3, 26, 21, 2, 69, boost::rational<long>(23, 13))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (3, 2, 10, 8, 1, 22, boost::rational<long>(7, 5))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (3, 2, 10, 8, 1, 22, boost::rational<long>(7, 5))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 5, 69, 55, 4, 280, boost::rational<long>(200, 69))
- (5, 4, 68, 55, 3, 211, boost::rational<long>(145, 68))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (3, 2, 10, 8, 1, 22, boost::rational<long>(7, 5))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (4, 3, 26, 21, 2, 69, boost::rational<long>(23, 13))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (3, 2, 10, 8, 1, 22, boost::rational<long>(7, 5))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (3, 2, 10, 8, 1, 22, boost::rational<long>(7, 5))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1));
- emplacer[post_vals]
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (3, 2, 10, 8, 1, 22, boost::rational<long>(7, 5))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (3, 2, 10, 8, 1, 22, boost::rational<long>(7, 5))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (4, 3, 26, 21, 2, 69, boost::rational<long>(23, 13))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (3, 2, 10, 8, 1, 22, boost::rational<long>(7, 5))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (3, 2, 10, 8, 1, 22, boost::rational<long>(7, 5))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (3, 2, 10, 8, 1, 22, boost::rational<long>(7, 5))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (4, 3, 26, 21, 2, 69, boost::rational<long>(23, 13))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (3, 2, 10, 8, 1, 22, boost::rational<long>(7, 5))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (5, 4, 68, 55, 3, 211, boost::rational<long>(145, 68))
- (0, 5, 69, 55, 4, 280, boost::rational<long>(200, 69))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (5, 6, 136, 110, 5, 558, boost::rational<long>(50, 17));
- emplacer[bf_d_vals]
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("able", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("able", 3, 2, 10, 8, 1, 22, boost::rational<long>(7, 5))
- ("able", 4, 3, 26, 21, 2, 69, boost::rational<long>(23, 13))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("baker", 3, 2, 10, 8, 1, 22, boost::rational<long>(7, 5))
- ("chuck", 0, 5, 69, 55, 4, 280, boost::rational<long>(200, 69))
- ("chuck", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("chuck", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("dog", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("dog", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("easy", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("able", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("chuck", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("able", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("able", 3, 2, 10, 8, 1, 22, boost::rational<long>(7, 5))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("chuck", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("chuck", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("dog", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("able", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("chuck", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("fox", 5, 4, 68, 55, 3, 211, boost::rational<long>(145, 68))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("able", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("chuck", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("able", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("able", 3, 2, 10, 8, 1, 22, boost::rational<long>(7, 5))
- ("able", 4, 3, 26, 21, 2, 69, boost::rational<long>(23, 13))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("baker", 3, 2, 10, 8, 1, 22, boost::rational<long>(7, 5))
- ("chuck", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("chuck", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("chuck", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("dog", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("dog", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("easy", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("able", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("chuck", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("able", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("able", 3, 2, 10, 8, 1, 22, boost::rational<long>(7, 5))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("chuck", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("chuck", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("dog", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("able", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("chuck", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("able", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("chuck", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1));
- emplacer[pre_d_vals]
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("able", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 3, 2, 10, 8, 1, 22, boost::rational<long>(7, 5))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("able", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("chuck", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 4, 3, 26, 21, 2, 69, boost::rational<long>(23, 13))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("able", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 3, 2, 10, 8, 1, 22, boost::rational<long>(7, 5))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("able", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("chuck", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("chuck", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("chuck", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("dog", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 3, 2, 10, 8, 1, 22, boost::rational<long>(7, 5))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("able", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("chuck", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("chuck", 0, 5, 69, 55, 4, 280, boost::rational<long>(200, 69))
- ("fox", 5, 4, 68, 55, 3, 211, boost::rational<long>(145, 68))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("able", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 3, 2, 10, 8, 1, 22, boost::rational<long>(7, 5))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("able", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("chuck", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 4, 3, 26, 21, 2, 69, boost::rational<long>(23, 13))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("able", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 3, 2, 10, 8, 1, 22, boost::rational<long>(7, 5))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("able", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("chuck", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("chuck", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("chuck", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("dog", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 3, 2, 10, 8, 1, 22, boost::rational<long>(7, 5))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("able", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("chuck", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("chuck", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("chuck", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("chuck", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("dog", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("dog", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("easy", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("chuck", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("chuck", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("dog", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("dog", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("easy", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1));
- emplacer[post_d_vals]
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("chuck", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 3, 2, 10, 8, 1, 22, boost::rational<long>(7, 5))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("chuck", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 3, 2, 10, 8, 1, 22, boost::rational<long>(7, 5))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("chuck", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("chuck", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("dog", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 4, 3, 26, 21, 2, 69, boost::rational<long>(23, 13))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("chuck", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 3, 2, 10, 8, 1, 22, boost::rational<long>(7, 5))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("chuck", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 3, 2, 10, 8, 1, 22, boost::rational<long>(7, 5))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("chuck", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 3, 2, 10, 8, 1, 22, boost::rational<long>(7, 5))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("chuck", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("chuck", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("dog", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 4, 3, 26, 21, 2, 69, boost::rational<long>(23, 13))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("chuck", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 3, 2, 10, 8, 1, 22, boost::rational<long>(7, 5))
- ("chuck", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("chuck", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("chuck", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("dog", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("dog", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("easy", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("fox", 5, 4, 68, 55, 3, 211, boost::rational<long>(145, 68))
- ("chuck", 0, 5, 69, 55, 4, 280, boost::rational<long>(200, 69))
- ("chuck", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("chuck", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("dog", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("dog", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("easy", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1));
- emplacer[df_d_vals]
- (boost::tree_node::pre_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"able",2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"able",3,2,10,
- 8,1,22,boost::rational<long>(7,5))
- (boost::tree_node::pre_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"able",2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"baker",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"baker",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"chuck",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"chuck",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",3,2,10,
- 8,1,22,boost::rational<long>(7,5))
- (boost::tree_node::pre_order_traversal,"able",4,3,26,
- 21,2,69,boost::rational<long>(23,13))
- (boost::tree_node::pre_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"able",2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"able",3,2,10,
- 8,1,22,boost::rational<long>(7,5))
- (boost::tree_node::pre_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"able",2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"baker",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"baker",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"chuck",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"chuck",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",3,2,10,
- 8,1,22,boost::rational<long>(7,5))
- (boost::tree_node::pre_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"baker",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"baker",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"baker",2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"baker",2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"chuck",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"chuck",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"chuck",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"chuck",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"dog",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"dog",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",4,3,26,
- 21,2,69,boost::rational<long>(23,13))
- (boost::tree_node::pre_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"baker",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"baker",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"baker",2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"baker",2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"baker",3,2,10,
- 8,1,22,boost::rational<long>(7,5))
- (boost::tree_node::pre_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"able",2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"baker",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"baker",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"chuck",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"chuck",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"baker",3,2,10,
- 8,1,22,boost::rational<long>(7,5))
- (boost::tree_node::pre_order_traversal,"chuck",0,5,69,
- 55,4,280,boost::rational<long>(200,69))
- (boost::tree_node::pre_order_traversal,"fox",5,4,68,
- 55,3,211,boost::rational<long>(145,68))
- (boost::tree_node::pre_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"able",2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"able",3,2,10,
- 8,1,22,boost::rational<long>(7,5))
- (boost::tree_node::pre_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"able",2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"baker",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"baker",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"chuck",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"chuck",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",3,2,10,
- 8,1,22,boost::rational<long>(7,5))
- (boost::tree_node::pre_order_traversal,"able",4,3,26,
- 21,2,69,boost::rational<long>(23,13))
- (boost::tree_node::pre_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"able",2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"able",3,2,10,
- 8,1,22,boost::rational<long>(7,5))
- (boost::tree_node::pre_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"able",2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"baker",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"baker",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"chuck",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"chuck",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",3,2,10,
- 8,1,22,boost::rational<long>(7,5))
- (boost::tree_node::pre_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"baker",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"baker",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"baker",2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"baker",2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"chuck",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"chuck",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"chuck",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"chuck",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"dog",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"dog",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",4,3,26,
- 21,2,69,boost::rational<long>(23,13))
- (boost::tree_node::pre_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"baker",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"baker",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"baker",2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"baker",2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"baker",3,2,10,
- 8,1,22,boost::rational<long>(7,5))
- (boost::tree_node::pre_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"able",2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"baker",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"baker",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"chuck",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"chuck",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"baker",3,2,10,
- 8,1,22,boost::rational<long>(7,5))
- (boost::tree_node::pre_order_traversal,"chuck",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"chuck",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"chuck",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"chuck",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"chuck",2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"chuck",2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"dog",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"dog",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"dog",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"dog",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"easy",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"easy",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"fox",5,4,68,
- 55,3,211,boost::rational<long>(145,68))
- (boost::tree_node::post_order_traversal,"chuck",0,5,69,
- 55,4,280,boost::rational<long>(200,69))
- (boost::tree_node::pre_order_traversal,"chuck",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"chuck",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"chuck",2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"chuck",2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"dog",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"dog",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"dog",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"dog",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"easy",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"easy",0,0,1,
- 0,0,1,boost::rational<long>(0,1));
- emplacer[df_vals]
- (boost::tree_node::pre_order_traversal,5,6,136,
- 110,5,558,boost::rational<long>(50,17))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,3,2,10,
- 8,1,22,boost::rational<long>(7,5))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,3,2,10,
- 8,1,22,boost::rational<long>(7,5))
- (boost::tree_node::pre_order_traversal,4,3,26,
- 21,2,69,boost::rational<long>(23,13))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,3,2,10,
- 8,1,22,boost::rational<long>(7,5))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,3,2,10,
- 8,1,22,boost::rational<long>(7,5))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,4,3,26,
- 21,2,69,boost::rational<long>(23,13))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,3,2,10,
- 8,1,22,boost::rational<long>(7,5))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,3,2,10,
- 8,1,22,boost::rational<long>(7,5))
- (boost::tree_node::pre_order_traversal,0,5,69,
- 55,4,280,boost::rational<long>(200,69))
- (boost::tree_node::pre_order_traversal,5,4,68,
- 55,3,211,boost::rational<long>(145,68))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,3,2,10,
- 8,1,22,boost::rational<long>(7,5))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,3,2,10,
- 8,1,22,boost::rational<long>(7,5))
- (boost::tree_node::pre_order_traversal,4,3,26,
- 21,2,69,boost::rational<long>(23,13))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,3,2,10,
- 8,1,22,boost::rational<long>(7,5))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,3,2,10,
- 8,1,22,boost::rational<long>(7,5))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,4,3,26,
- 21,2,69,boost::rational<long>(23,13))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,3,2,10,
- 8,1,22,boost::rational<long>(7,5))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,3,2,10,
- 8,1,22,boost::rational<long>(7,5))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,5,4,68,
- 55,3,211,boost::rational<long>(145,68))
- (boost::tree_node::post_order_traversal,0,5,69,
- 55,4,280,boost::rational<long>(200,69))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,5,6,136,
- 110,5,558,boost::rational<long>(50,17));
-#else // !defined BOOST_TREE_NODE_CAN_USE_FUSION
- emplacer[bf_vals]
- (5, 6, 136)(0, 0, 1)(1, 0, 1)(2, 1, 4)(3, 2, 10)(4, 3, 26)
- (0, 0, 1)(1, 0, 1)(2, 1, 4)(3, 2, 10)(0, 5, 69)(1, 0, 1)
- (2, 1, 4)(0, 0, 1)(1, 0, 1)(0, 0, 1)(0, 0, 1)(1, 0, 1)
- (0, 0, 1)(0, 0, 1)(1, 0, 1)(2, 1, 4)(0, 0, 1)(1, 0, 1)
- (0, 0, 1)(0, 0, 1)(1, 0, 1)(2, 1, 4)(3, 2, 10)(0, 0, 1)
- (1, 0, 1)(2, 1, 4)(0, 0, 1)(1, 0, 1)(0, 0, 1)(0, 0, 1)
- (1, 0, 1)(0, 0, 1)(0, 0, 1)(1, 0, 1)(2, 1, 4)(0, 0, 1)
- (1, 0, 1)(0, 0, 1)(5, 4, 68)(0, 0, 1)(1, 0, 1)(0, 0, 1)
- (0, 0, 1)(1, 0, 1)(0, 0, 1)(0, 0, 1)(1, 0, 1)(0, 0, 1)
- (0, 0, 1)(1, 0, 1)(2, 1, 4)(0, 0, 1)(1, 0, 1)(0, 0, 1)
- (0, 0, 1)(1, 0, 1)(0, 0, 1)(0, 0, 1)(1, 0, 1)(0, 0, 1)
- (0, 0, 1)(1, 0, 1)(2, 1, 4)(3, 2, 10)(4, 3, 26)(0, 0, 1)
- (1, 0, 1)(2, 1, 4)(3, 2, 10)(0, 0, 1)(1, 0, 1)(2, 1, 4)
- (0, 0, 1)(1, 0, 1)(0, 0, 1)(0, 0, 1)(1, 0, 1)(0, 0, 1)
- (0, 0, 1)(1, 0, 1)(0, 0, 1)(0, 0, 1)(1, 0, 1)(2, 1, 4)
- (0, 0, 1)(1, 0, 1)(0, 0, 1)(0, 0, 1)(1, 0, 1)(2, 1, 4)
- (3, 2, 10)(0, 0, 1)(1, 0, 1)(2, 1, 4)(0, 0, 1)(1, 0, 1)
- (0, 0, 1)(0, 0, 1)(1, 0, 1)(0, 0, 1)(0, 0, 1)(1, 0, 1)
- (2, 1, 4)(0, 0, 1)(1, 0, 1)(0, 0, 1)(0, 0, 1)(1, 0, 1)
- (0, 0, 1)(0, 0, 1)(1, 0, 1)(0, 0, 1)(0, 0, 1)(1, 0, 1)
- (0, 0, 1)(0, 0, 1)(1, 0, 1)(2, 1, 4)(0, 0, 1)(1, 0, 1)
- (0, 0, 1)(0, 0, 1)(1, 0, 1)(0, 0, 1)(0, 0, 1)(1, 0, 1)
- (0, 0, 1)(0, 0, 1)(1, 0, 1)(0, 0, 1);
- emplacer[pre_vals]
- (5, 6, 136)(0, 0, 1)(1, 0, 1)(2, 1, 4)(0, 0, 1)(1, 0, 1)
- (0, 0, 1)(3, 2, 10)(0, 0, 1)(1, 0, 1)(2, 1, 4)(0, 0, 1)
- (1, 0, 1)(0, 0, 1)(0, 0, 1)(1, 0, 1)(0, 0, 1)(4, 3, 26)
- (0, 0, 1)(1, 0, 1)(2, 1, 4)(0, 0, 1)(1, 0, 1)(0, 0, 1)
- (3, 2, 10)(0, 0, 1)(1, 0, 1)(2, 1, 4)(0, 0, 1)(1, 0, 1)
- (0, 0, 1)(0, 0, 1)(1, 0, 1)(0, 0, 1)(0, 0, 1)(1, 0, 1)
- (2, 1, 4)(0, 0, 1)(1, 0, 1)(0, 0, 1)(0, 0, 1)(1, 0, 1)
- (0, 0, 1)(0, 0, 1)(1, 0, 1)(2, 1, 4)(0, 0, 1)(1, 0, 1)
- (0, 0, 1)(3, 2, 10)(0, 0, 1)(1, 0, 1)(2, 1, 4)(0, 0, 1)
- (1, 0, 1)(0, 0, 1)(0, 0, 1)(1, 0, 1)(0, 0, 1)(0, 5, 69)
- (5, 4, 68)(0, 0, 1)(1, 0, 1)(2, 1, 4)(0, 0, 1)(1, 0, 1)
- (0, 0, 1)(3, 2, 10)(0, 0, 1)(1, 0, 1)(2, 1, 4)(0, 0, 1)
- (1, 0, 1)(0, 0, 1)(0, 0, 1)(1, 0, 1)(0, 0, 1)(4, 3, 26)
- (0, 0, 1)(1, 0, 1)(2, 1, 4)(0, 0, 1)(1, 0, 1)(0, 0, 1)
- (3, 2, 10)(0, 0, 1)(1, 0, 1)(2, 1, 4)(0, 0, 1)(1, 0, 1)
- (0, 0, 1)(0, 0, 1)(1, 0, 1)(0, 0, 1)(0, 0, 1)(1, 0, 1)
- (2, 1, 4)(0, 0, 1)(1, 0, 1)(0, 0, 1)(0, 0, 1)(1, 0, 1)
- (0, 0, 1)(0, 0, 1)(1, 0, 1)(2, 1, 4)(0, 0, 1)(1, 0, 1)
- (0, 0, 1)(3, 2, 10)(0, 0, 1)(1, 0, 1)(2, 1, 4)(0, 0, 1)
- (1, 0, 1)(0, 0, 1)(0, 0, 1)(1, 0, 1)(0, 0, 1)(0, 0, 1)
- (1, 0, 1)(2, 1, 4)(0, 0, 1)(1, 0, 1)(0, 0, 1)(0, 0, 1)
- (1, 0, 1)(0, 0, 1)(1, 0, 1)(2, 1, 4)(0, 0, 1)(1, 0, 1)
- (0, 0, 1)(0, 0, 1)(1, 0, 1)(0, 0, 1);
- emplacer[post_vals]
- (0, 0, 1)(1, 0, 1)(0, 0, 1)(1, 0, 1)(0, 0, 1)(2, 1, 4)
- (0, 0, 1)(1, 0, 1)(0, 0, 1)(1, 0, 1)(0, 0, 1)(2, 1, 4)
- (0, 0, 1)(1, 0, 1)(0, 0, 1)(3, 2, 10)(0, 0, 1)(1, 0, 1)
- (0, 0, 1)(1, 0, 1)(0, 0, 1)(2, 1, 4)(0, 0, 1)(1, 0, 1)
- (0, 0, 1)(1, 0, 1)(0, 0, 1)(2, 1, 4)(0, 0, 1)(1, 0, 1)
- (0, 0, 1)(3, 2, 10)(0, 0, 1)(1, 0, 1)(0, 0, 1)(1, 0, 1)
- (0, 0, 1)(2, 1, 4)(0, 0, 1)(1, 0, 1)(0, 0, 1)(4, 3, 26)
- (0, 0, 1)(1, 0, 1)(0, 0, 1)(1, 0, 1)(0, 0, 1)(2, 1, 4)
- (0, 0, 1)(1, 0, 1)(0, 0, 1)(1, 0, 1)(0, 0, 1)(2, 1, 4)
- (0, 0, 1)(1, 0, 1)(0, 0, 1)(3, 2, 10)(0, 0, 1)(1, 0, 1)
- (0, 0, 1)(1, 0, 1)(0, 0, 1)(2, 1, 4)(0, 0, 1)(1, 0, 1)
- (0, 0, 1)(1, 0, 1)(0, 0, 1)(2, 1, 4)(0, 0, 1)(1, 0, 1)
- (0, 0, 1)(3, 2, 10)(0, 0, 1)(1, 0, 1)(0, 0, 1)(1, 0, 1)
- (0, 0, 1)(2, 1, 4)(0, 0, 1)(1, 0, 1)(0, 0, 1)(1, 0, 1)
- (0, 0, 1)(2, 1, 4)(0, 0, 1)(1, 0, 1)(0, 0, 1)(3, 2, 10)
- (0, 0, 1)(1, 0, 1)(0, 0, 1)(1, 0, 1)(0, 0, 1)(2, 1, 4)
- (0, 0, 1)(1, 0, 1)(0, 0, 1)(4, 3, 26)(0, 0, 1)(1, 0, 1)
- (0, 0, 1)(1, 0, 1)(0, 0, 1)(2, 1, 4)(0, 0, 1)(1, 0, 1)
- (0, 0, 1)(1, 0, 1)(0, 0, 1)(2, 1, 4)(0, 0, 1)(1, 0, 1)
- (0, 0, 1)(3, 2, 10)(0, 0, 1)(1, 0, 1)(0, 0, 1)(1, 0, 1)
- (0, 0, 1)(2, 1, 4)(0, 0, 1)(1, 0, 1)(0, 0, 1)(5, 4, 68)
- (0, 5, 69)(1, 0, 1)(0, 0, 1)(1, 0, 1)(0, 0, 1)(2, 1, 4)
- (0, 0, 1)(1, 0, 1)(0, 0, 1)(5, 6, 136);
- emplacer[bf_d_vals]
- ("able", 0, 0, 1)("able", 1, 0, 1)("able", 2, 1, 4)
- ("able", 3, 2, 10)("able", 4, 3, 26)("baker", 0, 0, 1)
- ("baker", 1, 0, 1)("baker", 2, 1, 4)("baker", 3, 2, 10)
- ("chuck", 0, 5, 69)("chuck", 1, 0, 1)("chuck", 2, 1, 4)
- ("dog", 0, 0, 1)("dog", 1, 0, 1)("easy", 0, 0, 1)
- ("able", 0, 0, 1)("able", 1, 0, 1)("baker", 0, 0, 1)
- ("able", 0, 0, 1)("able", 1, 0, 1)("able", 2, 1, 4)
- ("baker", 0, 0, 1)("baker", 1, 0, 1)("chuck", 0, 0, 1)
- ("able", 0, 0, 1)("able", 1, 0, 1)("able", 2, 1, 4)
- ("able", 3, 2, 10)("baker", 0, 0, 1)("baker", 1, 0, 1)
- ("baker", 2, 1, 4)("chuck", 0, 0, 1)("chuck", 1, 0, 1)
- ("dog", 0, 0, 1)("able", 0, 0, 1)("able", 1, 0, 1)
- ("baker", 0, 0, 1)("able", 0, 0, 1)("able", 1, 0, 1)
- ("able", 2, 1, 4)("baker", 0, 0, 1)("baker", 1, 0, 1)
- ("chuck", 0, 0, 1)("fox", 5, 4, 68)("able", 0, 0, 1)
- ("able", 1, 0, 1)("baker", 0, 0, 1)("able", 0, 0, 1)
- ("able", 1, 0, 1)("baker", 0, 0, 1)("able", 0, 0, 1)
- ("able", 1, 0, 1)("baker", 0, 0, 1)("able", 0, 0, 1)
- ("able", 1, 0, 1)("able", 2, 1, 4)("baker", 0, 0, 1)
- ("baker", 1, 0, 1)("chuck", 0, 0, 1)("able", 0, 0, 1)
- ("able", 1, 0, 1)("baker", 0, 0, 1)("able", 0, 0, 1)
- ("able", 1, 0, 1)("baker", 0, 0, 1)("able", 0, 0, 1)
- ("able", 1, 0, 1)("able", 2, 1, 4)("able", 3, 2, 10)
- ("able", 4, 3, 26)("baker", 0, 0, 1)("baker", 1, 0, 1)
- ("baker", 2, 1, 4)("baker", 3, 2, 10)("chuck", 0, 0, 1)
- ("chuck", 1, 0, 1)("chuck", 2, 1, 4)("dog", 0, 0, 1)
- ("dog", 1, 0, 1)("easy", 0, 0, 1)("able", 0, 0, 1)
- ("able", 1, 0, 1)("baker", 0, 0, 1)("able", 0, 0, 1)
- ("able", 1, 0, 1)("baker", 0, 0, 1)("able", 0, 0, 1)
- ("able", 1, 0, 1)("able", 2, 1, 4)("baker", 0, 0, 1)
- ("baker", 1, 0, 1)("chuck", 0, 0, 1)("able", 0, 0, 1)
- ("able", 1, 0, 1)("able", 2, 1, 4)("able", 3, 2, 10)
- ("baker", 0, 0, 1)("baker", 1, 0, 1)("baker", 2, 1, 4)
- ("chuck", 0, 0, 1)("chuck", 1, 0, 1)("dog", 0, 0, 1)
- ("able", 0, 0, 1)("able", 1, 0, 1)("baker", 0, 0, 1)
- ("able", 0, 0, 1)("able", 1, 0, 1)("able", 2, 1, 4)
- ("baker", 0, 0, 1)("baker", 1, 0, 1)("chuck", 0, 0, 1)
- ("able", 0, 0, 1)("able", 1, 0, 1)("baker", 0, 0, 1)
- ("able", 0, 0, 1)("able", 1, 0, 1)("baker", 0, 0, 1)
- ("able", 0, 0, 1)("able", 1, 0, 1)("baker", 0, 0, 1)
- ("able", 0, 0, 1)("able", 1, 0, 1)("able", 2, 1, 4)
- ("baker", 0, 0, 1)("baker", 1, 0, 1)("chuck", 0, 0, 1)
- ("able", 0, 0, 1)("able", 1, 0, 1)("baker", 0, 0, 1)
- ("able", 0, 0, 1)("able", 1, 0, 1)("baker", 0, 0, 1)
- ("able", 0, 0, 1)("able", 1, 0, 1)("baker", 0, 0, 1);
- emplacer[pre_d_vals]
- ("able", 0, 0, 1)("able", 1, 0, 1)("able", 2, 1, 4)
- ("able", 0, 0, 1)("able", 1, 0, 1)("baker", 0, 0, 1)
- ("able", 3, 2, 10)("able", 0, 0, 1)("able", 1, 0, 1)
- ("able", 2, 1, 4)("able", 0, 0, 1)("able", 1, 0, 1)
- ("baker", 0, 0, 1)("baker", 0, 0, 1)("baker", 1, 0, 1)
- ("chuck", 0, 0, 1)("able", 4, 3, 26)("able", 0, 0, 1)
- ("able", 1, 0, 1)("able", 2, 1, 4)("able", 0, 0, 1)
- ("able", 1, 0, 1)("baker", 0, 0, 1)("able", 3, 2, 10)
- ("able", 0, 0, 1)("able", 1, 0, 1)("able", 2, 1, 4)
- ("able", 0, 0, 1)("able", 1, 0, 1)("baker", 0, 0, 1)
- ("baker", 0, 0, 1)("baker", 1, 0, 1)("chuck", 0, 0, 1)
- ("baker", 0, 0, 1)("baker", 1, 0, 1)("baker", 2, 1, 4)
- ("able", 0, 0, 1)("able", 1, 0, 1)("baker", 0, 0, 1)
- ("chuck", 0, 0, 1)("chuck", 1, 0, 1)("dog", 0, 0, 1)
- ("baker", 0, 0, 1)("baker", 1, 0, 1)("baker", 2, 1, 4)
- ("able", 0, 0, 1)("able", 1, 0, 1)("baker", 0, 0, 1)
- ("baker", 3, 2, 10)("able", 0, 0, 1)("able", 1, 0, 1)
- ("able", 2, 1, 4)("able", 0, 0, 1)("able", 1, 0, 1)
- ("baker", 0, 0, 1)("baker", 0, 0, 1)("baker", 1, 0, 1)
- ("chuck", 0, 0, 1)("chuck", 0, 5, 69)("fox", 5, 4, 68)
- ("able", 0, 0, 1)("able", 1, 0, 1)("able", 2, 1, 4)
- ("able", 0, 0, 1)("able", 1, 0, 1)("baker", 0, 0, 1)
- ("able", 3, 2, 10)("able", 0, 0, 1)("able", 1, 0, 1)
- ("able", 2, 1, 4)("able", 0, 0, 1)("able", 1, 0, 1)
- ("baker", 0, 0, 1)("baker", 0, 0, 1)("baker", 1, 0, 1)
- ("chuck", 0, 0, 1)("able", 4, 3, 26)("able", 0, 0, 1)
- ("able", 1, 0, 1)("able", 2, 1, 4)("able", 0, 0, 1)
- ("able", 1, 0, 1)("baker", 0, 0, 1)("able", 3, 2, 10)
- ("able", 0, 0, 1)("able", 1, 0, 1)("able", 2, 1, 4)
- ("able", 0, 0, 1)("able", 1, 0, 1)("baker", 0, 0, 1)
- ("baker", 0, 0, 1)("baker", 1, 0, 1)("chuck", 0, 0, 1)
- ("baker", 0, 0, 1)("baker", 1, 0, 1)("baker", 2, 1, 4)
- ("able", 0, 0, 1)("able", 1, 0, 1)("baker", 0, 0, 1)
- ("chuck", 0, 0, 1)("chuck", 1, 0, 1)("dog", 0, 0, 1)
- ("baker", 0, 0, 1)("baker", 1, 0, 1)("baker", 2, 1, 4)
- ("able", 0, 0, 1)("able", 1, 0, 1)("baker", 0, 0, 1)
- ("baker", 3, 2, 10)("able", 0, 0, 1)("able", 1, 0, 1)
- ("able", 2, 1, 4)("able", 0, 0, 1)("able", 1, 0, 1)
- ("baker", 0, 0, 1)("baker", 0, 0, 1)("baker", 1, 0, 1)
- ("chuck", 0, 0, 1)("chuck", 0, 0, 1)("chuck", 1, 0, 1)
- ("chuck", 2, 1, 4)("able", 0, 0, 1)("able", 1, 0, 1)
- ("baker", 0, 0, 1)("dog", 0, 0, 1)("dog", 1, 0, 1)
- ("easy", 0, 0, 1)("chuck", 1, 0, 1)("chuck", 2, 1, 4)
- ("able", 0, 0, 1)("able", 1, 0, 1)("baker", 0, 0, 1)
- ("dog", 0, 0, 1)("dog", 1, 0, 1)("easy", 0, 0, 1);
- emplacer[post_d_vals]
- ("able", 0, 0, 1)("able", 1, 0, 1)("able", 0, 0, 1)
- ("able", 1, 0, 1)("baker", 0, 0, 1)("able", 2, 1, 4)
- ("able", 0, 0, 1)("able", 1, 0, 1)("able", 0, 0, 1)
- ("able", 1, 0, 1)("baker", 0, 0, 1)("able", 2, 1, 4)
- ("baker", 0, 0, 1)("baker", 1, 0, 1)("chuck", 0, 0, 1)
- ("able", 3, 2, 10)("able", 0, 0, 1)("able", 1, 0, 1)
- ("able", 0, 0, 1)("able", 1, 0, 1)("baker", 0, 0, 1)
- ("able", 2, 1, 4)("able", 0, 0, 1)("able", 1, 0, 1)
- ("able", 0, 0, 1)("able", 1, 0, 1)("baker", 0, 0, 1)
- ("able", 2, 1, 4)("baker", 0, 0, 1)("baker", 1, 0, 1)
- ("chuck", 0, 0, 1)("able", 3, 2, 10)("baker", 0, 0, 1)
- ("baker", 1, 0, 1)("able", 0, 0, 1)("able", 1, 0, 1)
- ("baker", 0, 0, 1)("baker", 2, 1, 4)("chuck", 0, 0, 1)
- ("chuck", 1, 0, 1)("dog", 0, 0, 1)("able", 4, 3, 26)
- ("baker", 0, 0, 1)("baker", 1, 0, 1)("able", 0, 0, 1)
- ("able", 1, 0, 1)("baker", 0, 0, 1)("baker", 2, 1, 4)
- ("able", 0, 0, 1)("able", 1, 0, 1)("able", 0, 0, 1)
- ("able", 1, 0, 1)("baker", 0, 0, 1)("able", 2, 1, 4)
- ("baker", 0, 0, 1)("baker", 1, 0, 1)("chuck", 0, 0, 1)
- ("baker", 3, 2, 10)("able", 0, 0, 1)("able", 1, 0, 1)
- ("able", 0, 0, 1)("able", 1, 0, 1)("baker", 0, 0, 1)
- ("able", 2, 1, 4)("able", 0, 0, 1)("able", 1, 0, 1)
- ("able", 0, 0, 1)("able", 1, 0, 1)("baker", 0, 0, 1)
- ("able", 2, 1, 4)("baker", 0, 0, 1)("baker", 1, 0, 1)
- ("chuck", 0, 0, 1)("able", 3, 2, 10)("able", 0, 0, 1)
- ("able", 1, 0, 1)("able", 0, 0, 1)("able", 1, 0, 1)
- ("baker", 0, 0, 1)("able", 2, 1, 4)("able", 0, 0, 1)
- ("able", 1, 0, 1)("able", 0, 0, 1)("able", 1, 0, 1)
- ("baker", 0, 0, 1)("able", 2, 1, 4)("baker", 0, 0, 1)
- ("baker", 1, 0, 1)("chuck", 0, 0, 1)("able", 3, 2, 10)
- ("baker", 0, 0, 1)("baker", 1, 0, 1)("able", 0, 0, 1)
- ("able", 1, 0, 1)("baker", 0, 0, 1)("baker", 2, 1, 4)
- ("chuck", 0, 0, 1)("chuck", 1, 0, 1)("dog", 0, 0, 1)
- ("able", 4, 3, 26)("baker", 0, 0, 1)("baker", 1, 0, 1)
- ("able", 0, 0, 1)("able", 1, 0, 1)("baker", 0, 0, 1)
- ("baker", 2, 1, 4)("able", 0, 0, 1)("able", 1, 0, 1)
- ("able", 0, 0, 1)("able", 1, 0, 1)("baker", 0, 0, 1)
- ("able", 2, 1, 4)("baker", 0, 0, 1)("baker", 1, 0, 1)
- ("chuck", 0, 0, 1)("baker", 3, 2, 10)("chuck", 0, 0, 1)
- ("chuck", 1, 0, 1)("able", 0, 0, 1)("able", 1, 0, 1)
- ("baker", 0, 0, 1)("chuck", 2, 1, 4)("dog", 0, 0, 1)
- ("dog", 1, 0, 1)("easy", 0, 0, 1)("fox", 5, 4, 68)
- ("chuck", 0, 5, 69)("chuck", 1, 0, 1)("able", 0, 0, 1)
- ("able", 1, 0, 1)("baker", 0, 0, 1)("chuck", 2, 1, 4)
- ("dog", 0, 0, 1)("dog", 1, 0, 1)("easy", 0, 0, 1);
- emplacer[df_d_vals]
- (boost::tree_node::pre_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "able", 2, 1, 4)
- (boost::tree_node::pre_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 2, 1, 4)
- (boost::tree_node::pre_order_traversal, "able", 3, 2, 10)
- (boost::tree_node::pre_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "able", 2, 1, 4)
- (boost::tree_node::pre_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 2, 1, 4)
- (boost::tree_node::pre_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "baker", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "chuck", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "chuck", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 3, 2, 10)
- (boost::tree_node::pre_order_traversal, "able", 4, 3, 26)
- (boost::tree_node::pre_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "able", 2, 1, 4)
- (boost::tree_node::pre_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 2, 1, 4)
- (boost::tree_node::pre_order_traversal, "able", 3, 2, 10)
- (boost::tree_node::pre_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "able", 2, 1, 4)
- (boost::tree_node::pre_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 2, 1, 4)
- (boost::tree_node::pre_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "baker", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "chuck", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "chuck", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 3, 2, 10)
- (boost::tree_node::pre_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "baker", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "baker", 2, 1, 4)
- (boost::tree_node::pre_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 2, 1, 4)
- (boost::tree_node::pre_order_traversal, "chuck", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "chuck", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "chuck", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "chuck", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "dog", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "dog", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 4, 3, 26)
- (boost::tree_node::pre_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "baker", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "baker", 2, 1, 4)
- (boost::tree_node::pre_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 2, 1, 4)
- (boost::tree_node::pre_order_traversal, "baker", 3, 2, 10)
- (boost::tree_node::pre_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "able", 2, 1, 4)
- (boost::tree_node::pre_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 2, 1, 4)
- (boost::tree_node::pre_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "baker", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "chuck", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "chuck", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 3, 2, 10)
- (boost::tree_node::pre_order_traversal, "chuck", 0, 5, 69)
- (boost::tree_node::pre_order_traversal, "fox", 5, 4, 68)
- (boost::tree_node::pre_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "able", 2, 1, 4)
- (boost::tree_node::pre_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 2, 1, 4)
- (boost::tree_node::pre_order_traversal, "able", 3, 2, 10)
- (boost::tree_node::pre_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "able", 2, 1, 4)
- (boost::tree_node::pre_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 2, 1, 4)
- (boost::tree_node::pre_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "baker", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "chuck", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "chuck", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 3, 2, 10)
- (boost::tree_node::pre_order_traversal, "able", 4, 3, 26)
- (boost::tree_node::pre_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "able", 2, 1, 4)
- (boost::tree_node::pre_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 2, 1, 4)
- (boost::tree_node::pre_order_traversal, "able", 3, 2, 10)
- (boost::tree_node::pre_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "able", 2, 1, 4)
- (boost::tree_node::pre_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 2, 1, 4)
- (boost::tree_node::pre_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "baker", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "chuck", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "chuck", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 3, 2, 10)
- (boost::tree_node::pre_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "baker", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "baker", 2, 1, 4)
- (boost::tree_node::pre_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 2, 1, 4)
- (boost::tree_node::pre_order_traversal, "chuck", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "chuck", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "chuck", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "chuck", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "dog", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "dog", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 4, 3, 26)
- (boost::tree_node::pre_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "baker", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "baker", 2, 1, 4)
- (boost::tree_node::pre_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 2, 1, 4)
- (boost::tree_node::pre_order_traversal, "baker", 3, 2, 10)
- (boost::tree_node::pre_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "able", 2, 1, 4)
- (boost::tree_node::pre_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 2, 1, 4)
- (boost::tree_node::pre_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "baker", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "chuck", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "chuck", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 3, 2, 10)
- (boost::tree_node::pre_order_traversal, "chuck", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "chuck", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "chuck", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "chuck", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "chuck", 2, 1, 4)
- (boost::tree_node::pre_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "chuck", 2, 1, 4)
- (boost::tree_node::pre_order_traversal, "dog", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "dog", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "dog", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "dog", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "easy", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "easy", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "fox", 5, 4, 68)
- (boost::tree_node::post_order_traversal, "chuck", 0, 5, 69)
- (boost::tree_node::pre_order_traversal, "chuck", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "chuck", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "chuck", 2, 1, 4)
- (boost::tree_node::pre_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "chuck", 2, 1, 4)
- (boost::tree_node::pre_order_traversal, "dog", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "dog", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "dog", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "dog", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "easy", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "easy", 0, 0, 1);
- emplacer[df_vals]
- (boost::tree_node::pre_order_traversal, 5, 6, 136)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 2, 1, 4)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 2, 1, 4)
- (boost::tree_node::pre_order_traversal, 3, 2, 10)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 2, 1, 4)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 2, 1, 4)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 3, 2, 10)
- (boost::tree_node::pre_order_traversal, 4, 3, 26)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 2, 1, 4)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 2, 1, 4)
- (boost::tree_node::pre_order_traversal, 3, 2, 10)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 2, 1, 4)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 2, 1, 4)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 3, 2, 10)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 2, 1, 4)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 2, 1, 4)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 4, 3, 26)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 2, 1, 4)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 2, 1, 4)
- (boost::tree_node::pre_order_traversal, 3, 2, 10)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 2, 1, 4)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 2, 1, 4)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 3, 2, 10)
- (boost::tree_node::pre_order_traversal, 0, 5, 69)
- (boost::tree_node::pre_order_traversal, 5, 4, 68)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 2, 1, 4)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 2, 1, 4)
- (boost::tree_node::pre_order_traversal, 3, 2, 10)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 2, 1, 4)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 2, 1, 4)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 3, 2, 10)
- (boost::tree_node::pre_order_traversal, 4, 3, 26)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 2, 1, 4)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 2, 1, 4)
- (boost::tree_node::pre_order_traversal, 3, 2, 10)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 2, 1, 4)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 2, 1, 4)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 3, 2, 10)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 2, 1, 4)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 2, 1, 4)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 4, 3, 26)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 2, 1, 4)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 2, 1, 4)
- (boost::tree_node::pre_order_traversal, 3, 2, 10)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 2, 1, 4)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 2, 1, 4)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 3, 2, 10)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 2, 1, 4)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 2, 1, 4)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 5, 4, 68)
- (boost::tree_node::post_order_traversal, 0, 5, 69)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 2, 1, 4)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 2, 1, 4)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 5, 6, 136);
-#endif // BOOST_NO_SFINAE
- test_associative_node<a_node_case>(
- a_root
- , bf_vals
- , bf_d_vals
- , pre_vals
- , pre_d_vals
- , post_vals
- , post_d_vals
- , df_vals
- , df_d_vals
- );
-
- a_root = boost::tree_node::dereference_iterator(a_child_itr);
- bf_vals.clear();
- bf_d_vals.clear();
- pre_vals.clear();
- pre_d_vals.clear();
- post_vals.clear();
- post_d_vals.clear();
- df_vals.clear();
- df_d_vals.clear();
-
-#if defined BOOST_TREE_NODE_CAN_USE_FUSION
- emplacer[bf_vals]
- (5, 4, 68, 55, 3, 211, boost::rational<long>(145, 68))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (3, 2, 10, 8, 1, 22, boost::rational<long>(7, 5))
- (4, 3, 26, 21, 2, 69, boost::rational<long>(23, 13))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (3, 2, 10, 8, 1, 22, boost::rational<long>(7, 5))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (3, 2, 10, 8, 1, 22, boost::rational<long>(7, 5))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1));
- emplacer[pre_vals]
- (5, 4, 68, 55, 3, 211, boost::rational<long>(145, 68))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (3, 2, 10, 8, 1, 22, boost::rational<long>(7, 5))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (4, 3, 26, 21, 2, 69, boost::rational<long>(23, 13))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (3, 2, 10, 8, 1, 22, boost::rational<long>(7, 5))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (3, 2, 10, 8, 1, 22, boost::rational<long>(7, 5))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1));
- emplacer[post_vals]
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (3, 2, 10, 8, 1, 22, boost::rational<long>(7, 5))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (3, 2, 10, 8, 1, 22, boost::rational<long>(7, 5))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (4, 3, 26, 21, 2, 69, boost::rational<long>(23, 13))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (3, 2, 10, 8, 1, 22, boost::rational<long>(7, 5))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (5, 4, 68, 55, 3, 211, boost::rational<long>(145, 68));
- emplacer[bf_d_vals]
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("able", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("able", 3, 2, 10, 8, 1, 22, boost::rational<long>(7, 5))
- ("able", 4, 3, 26, 21, 2, 69, boost::rational<long>(23, 13))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("baker", 3, 2, 10, 8, 1, 22, boost::rational<long>(7, 5))
- ("chuck", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("chuck", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("chuck", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("dog", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("dog", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("easy", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("able", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("chuck", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("able", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("able", 3, 2, 10, 8, 1, 22, boost::rational<long>(7, 5))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("chuck", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("chuck", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("dog", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("able", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("chuck", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("able", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("chuck", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1));
- emplacer[pre_d_vals]
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("able", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 3, 2, 10, 8, 1, 22, boost::rational<long>(7, 5))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("able", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("chuck", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 4, 3, 26, 21, 2, 69, boost::rational<long>(23, 13))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("able", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 3, 2, 10, 8, 1, 22, boost::rational<long>(7, 5))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("able", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("chuck", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("chuck", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("chuck", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("dog", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 3, 2, 10, 8, 1, 22, boost::rational<long>(7, 5))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("able", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("chuck", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("chuck", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("chuck", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("chuck", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("dog", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("dog", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("easy", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1));
- emplacer[post_d_vals]
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("chuck", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 3, 2, 10, 8, 1, 22, boost::rational<long>(7, 5))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("chuck", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 3, 2, 10, 8, 1, 22, boost::rational<long>(7, 5))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("chuck", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("chuck", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("dog", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 4, 3, 26, 21, 2, 69, boost::rational<long>(23, 13))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("chuck", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 3, 2, 10, 8, 1, 22, boost::rational<long>(7, 5))
- ("chuck", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("chuck", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("chuck", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("dog", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("dog", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("easy", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1));
- emplacer[df_d_vals]
- (boost::tree_node::pre_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"able",2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"able",3,2,10,
- 8,1,22,boost::rational<long>(7,5))
- (boost::tree_node::pre_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"able",2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"baker",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"baker",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"chuck",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"chuck",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",3,2,10,
- 8,1,22,boost::rational<long>(7,5))
- (boost::tree_node::pre_order_traversal,"able",4,3,26,
- 21,2,69,boost::rational<long>(23,13))
- (boost::tree_node::pre_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"able",2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"able",3,2,10,
- 8,1,22,boost::rational<long>(7,5))
- (boost::tree_node::pre_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"able",2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"baker",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"baker",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"chuck",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"chuck",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",3,2,10,
- 8,1,22,boost::rational<long>(7,5))
- (boost::tree_node::pre_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"baker",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"baker",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"baker",2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"baker",2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"chuck",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"chuck",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"chuck",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"chuck",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"dog",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"dog",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",4,3,26,
- 21,2,69,boost::rational<long>(23,13))
- (boost::tree_node::pre_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"baker",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"baker",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"baker",2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"baker",2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"baker",3,2,10,
- 8,1,22,boost::rational<long>(7,5))
- (boost::tree_node::pre_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"able",2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"baker",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"baker",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"chuck",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"chuck",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"baker",3,2,10,
- 8,1,22,boost::rational<long>(7,5))
- (boost::tree_node::pre_order_traversal,"chuck",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"chuck",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"chuck",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"chuck",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"chuck",2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"chuck",2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"dog",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"dog",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"dog",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"dog",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"easy",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"easy",0,0,1,
- 0,0,1,boost::rational<long>(0,1));
- emplacer[df_vals]
- (boost::tree_node::pre_order_traversal,5,4,68,
- 55,3,211,boost::rational<long>(145,68))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,3,2,10,
- 8,1,22,boost::rational<long>(7,5))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,3,2,10,
- 8,1,22,boost::rational<long>(7,5))
- (boost::tree_node::pre_order_traversal,4,3,26,
- 21,2,69,boost::rational<long>(23,13))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,3,2,10,
- 8,1,22,boost::rational<long>(7,5))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,3,2,10,
- 8,1,22,boost::rational<long>(7,5))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,4,3,26,
- 21,2,69,boost::rational<long>(23,13))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,3,2,10,
- 8,1,22,boost::rational<long>(7,5))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,3,2,10,
- 8,1,22,boost::rational<long>(7,5))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,5,4,68,
- 55,3,211,boost::rational<long>(145,68));
-#else // !defined BOOST_TREE_NODE_CAN_USE_FUSION
- emplacer[bf_vals]
- (5, 4, 68)(0, 0, 1)(1, 0, 1)(2, 1, 4)(3, 2, 10)(4, 3, 26)
- (0, 0, 1)(1, 0, 1)(2, 1, 4)(3, 2, 10)(0, 0, 1)(1, 0, 1)
- (2, 1, 4)(0, 0, 1)(1, 0, 1)(0, 0, 1)(0, 0, 1)(1, 0, 1)
- (0, 0, 1)(0, 0, 1)(1, 0, 1)(2, 1, 4)(0, 0, 1)(1, 0, 1)
- (0, 0, 1)(0, 0, 1)(1, 0, 1)(2, 1, 4)(3, 2, 10)(0, 0, 1)
- (1, 0, 1)(2, 1, 4)(0, 0, 1)(1, 0, 1)(0, 0, 1)(0, 0, 1)
- (1, 0, 1)(0, 0, 1)(0, 0, 1)(1, 0, 1)(2, 1, 4)(0, 0, 1)
- (1, 0, 1)(0, 0, 1)(0, 0, 1)(1, 0, 1)(0, 0, 1)(0, 0, 1)
- (1, 0, 1)(0, 0, 1)(0, 0, 1)(1, 0, 1)(0, 0, 1)(0, 0, 1)
- (1, 0, 1)(2, 1, 4)(0, 0, 1)(1, 0, 1)(0, 0, 1)(0, 0, 1)
- (1, 0, 1)(0, 0, 1)(0, 0, 1)(1, 0, 1)(0, 0, 1)(0, 0, 1)
- (1, 0, 1)(0, 0, 1);
- emplacer[pre_vals]
- (5, 4, 68)(0, 0, 1)(1, 0, 1)(2, 1, 4)(0, 0, 1)(1, 0, 1)
- (0, 0, 1)(3, 2, 10)(0, 0, 1)(1, 0, 1)(2, 1, 4)(0, 0, 1)
- (1, 0, 1)(0, 0, 1)(0, 0, 1)(1, 0, 1)(0, 0, 1)(4, 3, 26)
- (0, 0, 1)(1, 0, 1)(2, 1, 4)(0, 0, 1)(1, 0, 1)(0, 0, 1)
- (3, 2, 10)(0, 0, 1)(1, 0, 1)(2, 1, 4)(0, 0, 1)(1, 0, 1)
- (0, 0, 1)(0, 0, 1)(1, 0, 1)(0, 0, 1)(0, 0, 1)(1, 0, 1)
- (2, 1, 4)(0, 0, 1)(1, 0, 1)(0, 0, 1)(0, 0, 1)(1, 0, 1)
- (0, 0, 1)(0, 0, 1)(1, 0, 1)(2, 1, 4)(0, 0, 1)(1, 0, 1)
- (0, 0, 1)(3, 2, 10)(0, 0, 1)(1, 0, 1)(2, 1, 4)(0, 0, 1)
- (1, 0, 1)(0, 0, 1)(0, 0, 1)(1, 0, 1)(0, 0, 1)(0, 0, 1)
- (1, 0, 1)(2, 1, 4)(0, 0, 1)(1, 0, 1)(0, 0, 1)(0, 0, 1)
- (1, 0, 1)(0, 0, 1);
- emplacer[post_vals]
- (0, 0, 1)(1, 0, 1)(0, 0, 1)(1, 0, 1)(0, 0, 1)(2, 1, 4)
- (0, 0, 1)(1, 0, 1)(0, 0, 1)(1, 0, 1)(0, 0, 1)(2, 1, 4)
- (0, 0, 1)(1, 0, 1)(0, 0, 1)(3, 2, 10)(0, 0, 1)(1, 0, 1)
- (0, 0, 1)(1, 0, 1)(0, 0, 1)(2, 1, 4)(0, 0, 1)(1, 0, 1)
- (0, 0, 1)(1, 0, 1)(0, 0, 1)(2, 1, 4)(0, 0, 1)(1, 0, 1)
- (0, 0, 1)(3, 2, 10)(0, 0, 1)(1, 0, 1)(0, 0, 1)(1, 0, 1)
- (0, 0, 1)(2, 1, 4)(0, 0, 1)(1, 0, 1)(0, 0, 1)(4, 3, 26)
- (0, 0, 1)(1, 0, 1)(0, 0, 1)(1, 0, 1)(0, 0, 1)(2, 1, 4)
- (0, 0, 1)(1, 0, 1)(0, 0, 1)(1, 0, 1)(0, 0, 1)(2, 1, 4)
- (0, 0, 1)(1, 0, 1)(0, 0, 1)(3, 2, 10)(0, 0, 1)(1, 0, 1)
- (0, 0, 1)(1, 0, 1)(0, 0, 1)(2, 1, 4)(0, 0, 1)(1, 0, 1)
- (0, 0, 1)(5, 4, 68);
- emplacer[bf_d_vals]
- ("able", 0, 0, 1)("able", 1, 0, 1)("able", 2, 1, 4)
- ("able", 3, 2, 10)("able", 4, 3, 26)("baker", 0, 0, 1)
- ("baker", 1, 0, 1)("baker", 2, 1, 4)("baker", 3, 2, 10)
- ("chuck", 0, 0, 1)("chuck", 1, 0, 1)("chuck", 2, 1, 4)
- ("dog", 0, 0, 1)("dog", 1, 0, 1)("easy", 0, 0, 1)
- ("able", 0, 0, 1)("able", 1, 0, 1)("baker", 0, 0, 1)
- ("able", 0, 0, 1)("able", 1, 0, 1)("able", 2, 1, 4)
- ("baker", 0, 0, 1)("baker", 1, 0, 1)("chuck", 0, 0, 1)
- ("able", 0, 0, 1)("able", 1, 0, 1)("able", 2, 1, 4)
- ("able", 3, 2, 10)("baker", 0, 0, 1)("baker", 1, 0, 1)
- ("baker", 2, 1, 4)("chuck", 0, 0, 1)("chuck", 1, 0, 1)
- ("dog", 0, 0, 1)("able", 0, 0, 1)("able", 1, 0, 1)
- ("baker", 0, 0, 1)("able", 0, 0, 1)("able", 1, 0, 1)
- ("able", 2, 1, 4)("baker", 0, 0, 1)("baker", 1, 0, 1)
- ("chuck", 0, 0, 1)("able", 0, 0, 1)("able", 1, 0, 1)
- ("baker", 0, 0, 1)("able", 0, 0, 1)("able", 1, 0, 1)
- ("baker", 0, 0, 1)("able", 0, 0, 1)("able", 1, 0, 1)
- ("baker", 0, 0, 1)("able", 0, 0, 1)("able", 1, 0, 1)
- ("able", 2, 1, 4)("baker", 0, 0, 1)("baker", 1, 0, 1)
- ("chuck", 0, 0, 1)("able", 0, 0, 1)("able", 1, 0, 1)
- ("baker", 0, 0, 1)("able", 0, 0, 1)("able", 1, 0, 1)
- ("baker", 0, 0, 1)("able", 0, 0, 1)("able", 1, 0, 1)
- ("baker", 0, 0, 1);
- emplacer[pre_d_vals]
- ("able", 0, 0, 1)("able", 1, 0, 1)("able", 2, 1, 4)
- ("able", 0, 0, 1)("able", 1, 0, 1)("baker", 0, 0, 1)
- ("able", 3, 2, 10)("able", 0, 0, 1)("able", 1, 0, 1)
- ("able", 2, 1, 4)("able", 0, 0, 1)("able", 1, 0, 1)
- ("baker", 0, 0, 1)("baker", 0, 0, 1)("baker", 1, 0, 1)
- ("chuck", 0, 0, 1)("able", 4, 3, 26)("able", 0, 0, 1)
- ("able", 1, 0, 1)("able", 2, 1, 4)("able", 0, 0, 1)
- ("able", 1, 0, 1)("baker", 0, 0, 1)("able", 3, 2, 10)
- ("able", 0, 0, 1)("able", 1, 0, 1)("able", 2, 1, 4)
- ("able", 0, 0, 1)("able", 1, 0, 1)("baker", 0, 0, 1)
- ("baker", 0, 0, 1)("baker", 1, 0, 1)("chuck", 0, 0, 1)
- ("baker", 0, 0, 1)("baker", 1, 0, 1)("baker", 2, 1, 4)
- ("able", 0, 0, 1)("able", 1, 0, 1)("baker", 0, 0, 1)
- ("chuck", 0, 0, 1)("chuck", 1, 0, 1)("dog", 0, 0, 1)
- ("baker", 0, 0, 1)("baker", 1, 0, 1)("baker", 2, 1, 4)
- ("able", 0, 0, 1)("able", 1, 0, 1)("baker", 0, 0, 1)
- ("baker", 3, 2, 10)("able", 0, 0, 1)("able", 1, 0, 1)
- ("able", 2, 1, 4)("able", 0, 0, 1)("able", 1, 0, 1)
- ("baker", 0, 0, 1)("baker", 0, 0, 1)("baker", 1, 0, 1)
- ("chuck", 0, 0, 1)("chuck", 0, 0, 1)("chuck", 1, 0, 1)
- ("chuck", 2, 1, 4)("able", 0, 0, 1)("able", 1, 0, 1)
- ("baker", 0, 0, 1)("dog", 0, 0, 1)("dog", 1, 0, 1)
- ("easy", 0, 0, 1);
- emplacer[post_d_vals]
- ("able", 0, 0, 1)("able", 1, 0, 1)("able", 0, 0, 1)
- ("able", 1, 0, 1)("baker", 0, 0, 1)("able", 2, 1, 4)
- ("able", 0, 0, 1)("able", 1, 0, 1)("able", 0, 0, 1)
- ("able", 1, 0, 1)("baker", 0, 0, 1)("able", 2, 1, 4)
- ("baker", 0, 0, 1)("baker", 1, 0, 1)("chuck", 0, 0, 1)
- ("able", 3, 2, 10)("able", 0, 0, 1)("able", 1, 0, 1)
- ("able", 0, 0, 1)("able", 1, 0, 1)("baker", 0, 0, 1)
- ("able", 2, 1, 4)("able", 0, 0, 1)("able", 1, 0, 1)
- ("able", 0, 0, 1)("able", 1, 0, 1)("baker", 0, 0, 1)
- ("able", 2, 1, 4)("baker", 0, 0, 1)("baker", 1, 0, 1)
- ("chuck", 0, 0, 1)("able", 3, 2, 10)("baker", 0, 0, 1)
- ("baker", 1, 0, 1)("able", 0, 0, 1)("able", 1, 0, 1)
- ("baker", 0, 0, 1)("baker", 2, 1, 4)("chuck", 0, 0, 1)
- ("chuck", 1, 0, 1)("dog", 0, 0, 1)("able", 4, 3, 26)
- ("baker", 0, 0, 1)("baker", 1, 0, 1)("able", 0, 0, 1)
- ("able", 1, 0, 1)("baker", 0, 0, 1)("baker", 2, 1, 4)
- ("able", 0, 0, 1)("able", 1, 0, 1)("able", 0, 0, 1)
- ("able", 1, 0, 1)("baker", 0, 0, 1)("able", 2, 1, 4)
- ("baker", 0, 0, 1)("baker", 1, 0, 1)("chuck", 0, 0, 1)
- ("baker", 3, 2, 10)("chuck", 0, 0, 1)("chuck", 1, 0, 1)
- ("able", 0, 0, 1)("able", 1, 0, 1)("baker", 0, 0, 1)
- ("chuck", 2, 1, 4)("dog", 0, 0, 1)("dog", 1, 0, 1)
- ("easy", 0, 0, 1);
- emplacer[df_d_vals]
- (boost::tree_node::pre_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "able", 2, 1, 4)
- (boost::tree_node::pre_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 2, 1, 4)
- (boost::tree_node::pre_order_traversal, "able", 3, 2, 10)
- (boost::tree_node::pre_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "able", 2, 1, 4)
- (boost::tree_node::pre_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 2, 1, 4)
- (boost::tree_node::pre_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "baker", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "chuck", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "chuck", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 3, 2, 10)
- (boost::tree_node::pre_order_traversal, "able", 4, 3, 26)
- (boost::tree_node::pre_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "able", 2, 1, 4)
- (boost::tree_node::pre_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 2, 1, 4)
- (boost::tree_node::pre_order_traversal, "able", 3, 2, 10)
- (boost::tree_node::pre_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "able", 2, 1, 4)
- (boost::tree_node::pre_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 2, 1, 4)
- (boost::tree_node::pre_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "baker", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "chuck", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "chuck", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 3, 2, 10)
- (boost::tree_node::pre_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "baker", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "baker", 2, 1, 4)
- (boost::tree_node::pre_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 2, 1, 4)
- (boost::tree_node::pre_order_traversal, "chuck", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "chuck", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "chuck", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "chuck", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "dog", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "dog", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 4, 3, 26)
- (boost::tree_node::pre_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "baker", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "baker", 2, 1, 4)
- (boost::tree_node::pre_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 2, 1, 4)
- (boost::tree_node::pre_order_traversal, "baker", 3, 2, 10)
- (boost::tree_node::pre_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "able", 2, 1, 4)
- (boost::tree_node::pre_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 2, 1, 4)
- (boost::tree_node::pre_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "baker", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "chuck", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "chuck", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 3, 2, 10)
- (boost::tree_node::pre_order_traversal, "chuck", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "chuck", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "chuck", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "chuck", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "chuck", 2, 1, 4)
- (boost::tree_node::pre_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "chuck", 2, 1, 4)
- (boost::tree_node::pre_order_traversal, "dog", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "dog", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "dog", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "dog", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "easy", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "easy", 0, 0, 1);
- emplacer[df_vals]
- (boost::tree_node::pre_order_traversal, 5, 4, 68)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 2, 1, 4)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 2, 1, 4)
- (boost::tree_node::pre_order_traversal, 3, 2, 10)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 2, 1, 4)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 2, 1, 4)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 3, 2, 10)
- (boost::tree_node::pre_order_traversal, 4, 3, 26)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 2, 1, 4)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 2, 1, 4)
- (boost::tree_node::pre_order_traversal, 3, 2, 10)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 2, 1, 4)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 2, 1, 4)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 3, 2, 10)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 2, 1, 4)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 2, 1, 4)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 4, 3, 26)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 2, 1, 4)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 2, 1, 4)
- (boost::tree_node::pre_order_traversal, 3, 2, 10)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 2, 1, 4)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 2, 1, 4)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 3, 2, 10)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 2, 1, 4)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 2, 1, 4)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 5, 4, 68);
-#endif // BOOST_NO_SFINAE
- test_associative_node<a_node_case>(
- a_root
- , bf_vals
- , bf_d_vals
- , pre_vals
- , pre_d_vals
- , post_vals
- , post_d_vals
- , df_vals
- , df_d_vals
- );
-
- a_child_itr = boost::begin(a_root.equal_range(names[2]));
-
- while (boost::tree_node::dereference_iterator(a_child_itr).empty())
- {
- ++a_child_itr;
- }
-
- a_child_itr = boost::begin(
- boost::tree_node::dereference_iterator(
- a_child_itr
- ).equal_range(names[1])
- );
- boost::tree_node::dereference_iterator(a_child_itr) = a_root;
- test_associative_node<a_node_case>(
- boost::tree_node::dereference_iterator(a_child_itr)
- , bf_vals
- , bf_d_vals
- , pre_vals
- , pre_d_vals
- , post_vals
- , post_d_vals
- , df_vals
- , df_d_vals
- );
-
- bf_vals.clear();
- bf_d_vals.clear();
- pre_vals.clear();
- pre_d_vals.clear();
- post_vals.clear();
- post_d_vals.clear();
- df_vals.clear();
- df_d_vals.clear();
-
-#if defined BOOST_TREE_NODE_CAN_USE_FUSION
- emplacer[bf_vals]
- (5, 6, 135, 110, 5, 555, boost::rational<long>(80, 27))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (3, 2, 10, 8, 1, 22, boost::rational<long>(7, 5))
- (4, 3, 26, 21, 2, 69, boost::rational<long>(23, 13))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (3, 2, 10, 8, 1, 22, boost::rational<long>(7, 5))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 5, 71, 58, 4, 284, boost::rational<long>(204, 71))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (3, 2, 10, 8, 1, 22, boost::rational<long>(7, 5))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (5, 4, 68, 55, 3, 211, boost::rational<long>(145, 68))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (3, 2, 10, 8, 1, 22, boost::rational<long>(7, 5))
- (4, 3, 26, 21, 2, 69, boost::rational<long>(23, 13))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (3, 2, 10, 8, 1, 22, boost::rational<long>(7, 5))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (3, 2, 10, 8, 1, 22, boost::rational<long>(7, 5))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1));
- emplacer[pre_vals]
- (5, 6, 135, 110, 5, 555, boost::rational<long>(80, 27))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (3, 2, 10, 8, 1, 22, boost::rational<long>(7, 5))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (4, 3, 26, 21, 2, 69, boost::rational<long>(23, 13))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (3, 2, 10, 8, 1, 22, boost::rational<long>(7, 5))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (3, 2, 10, 8, 1, 22, boost::rational<long>(7, 5))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 5, 71, 58, 4, 284, boost::rational<long>(204, 71))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (5, 4, 68, 55, 3, 211, boost::rational<long>(145, 68))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (3, 2, 10, 8, 1, 22, boost::rational<long>(7, 5))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (4, 3, 26, 21, 2, 69, boost::rational<long>(23, 13))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (3, 2, 10, 8, 1, 22, boost::rational<long>(7, 5))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (3, 2, 10, 8, 1, 22, boost::rational<long>(7, 5))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1));
- emplacer[post_vals]
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (3, 2, 10, 8, 1, 22, boost::rational<long>(7, 5))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (3, 2, 10, 8, 1, 22, boost::rational<long>(7, 5))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (4, 3, 26, 21, 2, 69, boost::rational<long>(23, 13))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (3, 2, 10, 8, 1, 22, boost::rational<long>(7, 5))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (3, 2, 10, 8, 1, 22, boost::rational<long>(7, 5))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (3, 2, 10, 8, 1, 22, boost::rational<long>(7, 5))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (4, 3, 26, 21, 2, 69, boost::rational<long>(23, 13))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (3, 2, 10, 8, 1, 22, boost::rational<long>(7, 5))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (5, 4, 68, 55, 3, 211, boost::rational<long>(145, 68))
- (2, 5, 71, 58, 4, 284, boost::rational<long>(204, 71))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (5, 6, 135, 110, 5, 555, boost::rational<long>(80, 27));
- emplacer[bf_d_vals]
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("able", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("able", 3, 2, 10, 8, 1, 22, boost::rational<long>(7, 5))
- ("able", 4, 3, 26, 21, 2, 69, boost::rational<long>(23, 13))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("baker", 3, 2, 10, 8, 1, 22, boost::rational<long>(7, 5))
- ("chuck", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("chuck", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("chuck", 2, 5, 71, 58, 4, 284, boost::rational<long>(204, 71))
- ("dog", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("dog", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("easy", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("able", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("chuck", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("able", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("able", 3, 2, 10, 8, 1, 22, boost::rational<long>(7, 5))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("chuck", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("chuck", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("dog", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("able", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("chuck", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 5, 4, 68, 55, 3, 211, boost::rational<long>(145, 68))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("able", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("chuck", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("able", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("able", 3, 2, 10, 8, 1, 22, boost::rational<long>(7, 5))
- ("able", 4, 3, 26, 21, 2, 69, boost::rational<long>(23, 13))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("baker", 3, 2, 10, 8, 1, 22, boost::rational<long>(7, 5))
- ("chuck", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("chuck", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("chuck", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("dog", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("dog", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("easy", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("able", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("chuck", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("able", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("able", 3, 2, 10, 8, 1, 22, boost::rational<long>(7, 5))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("chuck", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("chuck", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("dog", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("able", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("chuck", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("able", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("chuck", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1));
- emplacer[pre_d_vals]
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("able", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 3, 2, 10, 8, 1, 22, boost::rational<long>(7, 5))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("able", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("chuck", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 4, 3, 26, 21, 2, 69, boost::rational<long>(23, 13))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("able", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 3, 2, 10, 8, 1, 22, boost::rational<long>(7, 5))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("able", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("chuck", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("chuck", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("chuck", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("dog", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 3, 2, 10, 8, 1, 22, boost::rational<long>(7, 5))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("able", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("chuck", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("chuck", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("chuck", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("chuck", 2, 5, 71, 58, 4, 284, boost::rational<long>(204, 71))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 5, 4, 68, 55, 3, 211, boost::rational<long>(145, 68))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("able", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 3, 2, 10, 8, 1, 22, boost::rational<long>(7, 5))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("able", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("chuck", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 4, 3, 26, 21, 2, 69, boost::rational<long>(23, 13))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("able", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 3, 2, 10, 8, 1, 22, boost::rational<long>(7, 5))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("able", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("chuck", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("chuck", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("chuck", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("dog", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 3, 2, 10, 8, 1, 22, boost::rational<long>(7, 5))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("able", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("chuck", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("chuck", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("chuck", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("chuck", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("dog", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("dog", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("easy", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("dog", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("dog", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("easy", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1));
- emplacer[post_d_vals]
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("chuck", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 3, 2, 10, 8, 1, 22, boost::rational<long>(7, 5))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("chuck", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 3, 2, 10, 8, 1, 22, boost::rational<long>(7, 5))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("chuck", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("chuck", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("dog", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 4, 3, 26, 21, 2, 69, boost::rational<long>(23, 13))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("chuck", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 3, 2, 10, 8, 1, 22, boost::rational<long>(7, 5))
- ("chuck", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("chuck", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("chuck", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 3, 2, 10, 8, 1, 22, boost::rational<long>(7, 5))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("chuck", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 3, 2, 10, 8, 1, 22, boost::rational<long>(7, 5))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("chuck", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("chuck", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("dog", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 4, 3, 26, 21, 2, 69, boost::rational<long>(23, 13))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("chuck", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 3, 2, 10, 8, 1, 22, boost::rational<long>(7, 5))
- ("chuck", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("chuck", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("chuck", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("dog", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("dog", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("easy", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 5, 4, 68, 55, 3, 211, boost::rational<long>(145, 68))
- ("chuck", 2, 5, 71, 58, 4, 284, boost::rational<long>(204, 71))
- ("dog", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("dog", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("easy", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1));
- emplacer[df_d_vals]
- (boost::tree_node::pre_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"able",2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"able",3,2,10,
- 8,1,22,boost::rational<long>(7,5))
- (boost::tree_node::pre_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"able",2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"baker",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"baker",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"chuck",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"chuck",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",3,2,10,
- 8,1,22,boost::rational<long>(7,5))
- (boost::tree_node::pre_order_traversal,"able",4,3,26,
- 21,2,69,boost::rational<long>(23,13))
- (boost::tree_node::pre_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"able",2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"able",3,2,10,
- 8,1,22,boost::rational<long>(7,5))
- (boost::tree_node::pre_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"able",2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"baker",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"baker",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"chuck",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"chuck",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",3,2,10,
- 8,1,22,boost::rational<long>(7,5))
- (boost::tree_node::pre_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"baker",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"baker",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"baker",2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"baker",2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"chuck",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"chuck",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"chuck",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"chuck",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"dog",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"dog",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",4,3,26,
- 21,2,69,boost::rational<long>(23,13))
- (boost::tree_node::pre_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"baker",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"baker",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"baker",2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"baker",2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"baker",3,2,10,
- 8,1,22,boost::rational<long>(7,5))
- (boost::tree_node::pre_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"able",2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"baker",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"baker",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"chuck",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"chuck",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"baker",3,2,10,
- 8,1,22,boost::rational<long>(7,5))
- (boost::tree_node::pre_order_traversal,"chuck",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"chuck",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"chuck",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"chuck",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"chuck",2,5,71,
- 58,4,284,boost::rational<long>(204,71))
- (boost::tree_node::pre_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"baker",5,4,68,
- 55,3,211,boost::rational<long>(145,68))
- (boost::tree_node::pre_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"able",2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"able",3,2,10,
- 8,1,22,boost::rational<long>(7,5))
- (boost::tree_node::pre_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"able",2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"baker",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"baker",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"chuck",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"chuck",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",3,2,10,
- 8,1,22,boost::rational<long>(7,5))
- (boost::tree_node::pre_order_traversal,"able",4,3,26,
- 21,2,69,boost::rational<long>(23,13))
- (boost::tree_node::pre_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"able",2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"able",3,2,10,
- 8,1,22,boost::rational<long>(7,5))
- (boost::tree_node::pre_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"able",2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"baker",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"baker",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"chuck",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"chuck",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",3,2,10,
- 8,1,22,boost::rational<long>(7,5))
- (boost::tree_node::pre_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"baker",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"baker",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"baker",2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"baker",2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"chuck",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"chuck",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"chuck",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"chuck",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"dog",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"dog",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",4,3,26,
- 21,2,69,boost::rational<long>(23,13))
- (boost::tree_node::pre_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"baker",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"baker",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"baker",2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"baker",2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"baker",3,2,10,
- 8,1,22,boost::rational<long>(7,5))
- (boost::tree_node::pre_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"able",2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"baker",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"baker",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"chuck",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"chuck",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"baker",3,2,10,
- 8,1,22,boost::rational<long>(7,5))
- (boost::tree_node::pre_order_traversal,"chuck",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"chuck",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"chuck",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"chuck",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"chuck",2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"chuck",2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"dog",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"dog",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"dog",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"dog",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"easy",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"easy",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"baker",5,4,68,
- 55,3,211,boost::rational<long>(145,68))
- (boost::tree_node::post_order_traversal,"chuck",2,5,71,
- 58,4,284,boost::rational<long>(204,71))
- (boost::tree_node::pre_order_traversal,"dog",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"dog",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"dog",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"dog",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"easy",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"easy",0,0,1,
- 0,0,1,boost::rational<long>(0,1));
- emplacer[df_vals]
- (boost::tree_node::pre_order_traversal,5,6,135,
- 110,5,555,boost::rational<long>(80,27))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,3,2,10,
- 8,1,22,boost::rational<long>(7,5))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,3,2,10,
- 8,1,22,boost::rational<long>(7,5))
- (boost::tree_node::pre_order_traversal,4,3,26,
- 21,2,69,boost::rational<long>(23,13))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,3,2,10,
- 8,1,22,boost::rational<long>(7,5))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,3,2,10,
- 8,1,22,boost::rational<long>(7,5))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,4,3,26,
- 21,2,69,boost::rational<long>(23,13))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,3,2,10,
- 8,1,22,boost::rational<long>(7,5))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,3,2,10,
- 8,1,22,boost::rational<long>(7,5))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,2,5,71,
- 58,4,284,boost::rational<long>(204,71))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,5,4,68,
- 55,3,211,boost::rational<long>(145,68))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,3,2,10,
- 8,1,22,boost::rational<long>(7,5))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,3,2,10,
- 8,1,22,boost::rational<long>(7,5))
- (boost::tree_node::pre_order_traversal,4,3,26,
- 21,2,69,boost::rational<long>(23,13))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,3,2,10,
- 8,1,22,boost::rational<long>(7,5))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,3,2,10,
- 8,1,22,boost::rational<long>(7,5))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,4,3,26,
- 21,2,69,boost::rational<long>(23,13))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,3,2,10,
- 8,1,22,boost::rational<long>(7,5))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,3,2,10,
- 8,1,22,boost::rational<long>(7,5))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,5,4,68,
- 55,3,211,boost::rational<long>(145,68))
- (boost::tree_node::post_order_traversal,2,5,71,
- 58,4,284,boost::rational<long>(204,71))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,5,6,135,
- 110,5,555,boost::rational<long>(80,27));
-#else // !defined BOOST_TREE_NODE_CAN_USE_FUSION
- emplacer[bf_vals]
- (5, 6, 135)(0, 0, 1)(1, 0, 1)(2, 1, 4)(3, 2, 10)(4, 3, 26)
- (0, 0, 1)(1, 0, 1)(2, 1, 4)(3, 2, 10)(0, 0, 1)(1, 0, 1)
- (2, 5, 71)(0, 0, 1)(1, 0, 1)(0, 0, 1)(0, 0, 1)(1, 0, 1)
- (0, 0, 1)(0, 0, 1)(1, 0, 1)(2, 1, 4)(0, 0, 1)(1, 0, 1)
- (0, 0, 1)(0, 0, 1)(1, 0, 1)(2, 1, 4)(3, 2, 10)(0, 0, 1)
- (1, 0, 1)(2, 1, 4)(0, 0, 1)(1, 0, 1)(0, 0, 1)(0, 0, 1)
- (1, 0, 1)(0, 0, 1)(0, 0, 1)(1, 0, 1)(2, 1, 4)(0, 0, 1)
- (1, 0, 1)(0, 0, 1)(0, 0, 1)(1, 0, 1)(5, 4, 68)(0, 0, 1)
- (1, 0, 1)(0, 0, 1)(0, 0, 1)(1, 0, 1)(0, 0, 1)(0, 0, 1)
- (1, 0, 1)(2, 1, 4)(0, 0, 1)(1, 0, 1)(0, 0, 1)(0, 0, 1)
- (1, 0, 1)(0, 0, 1)(0, 0, 1)(1, 0, 1)(0, 0, 1)(0, 0, 1)
- (1, 0, 1)(2, 1, 4)(3, 2, 10)(4, 3, 26)(0, 0, 1)(1, 0, 1)
- (2, 1, 4)(3, 2, 10)(0, 0, 1)(1, 0, 1)(2, 1, 4)(0, 0, 1)
- (1, 0, 1)(0, 0, 1)(0, 0, 1)(1, 0, 1)(0, 0, 1)(0, 0, 1)
- (1, 0, 1)(0, 0, 1)(0, 0, 1)(1, 0, 1)(2, 1, 4)(0, 0, 1)
- (1, 0, 1)(0, 0, 1)(0, 0, 1)(1, 0, 1)(2, 1, 4)(3, 2, 10)
- (0, 0, 1)(1, 0, 1)(2, 1, 4)(0, 0, 1)(1, 0, 1)(0, 0, 1)
- (0, 0, 1)(1, 0, 1)(0, 0, 1)(0, 0, 1)(1, 0, 1)(2, 1, 4)
- (0, 0, 1)(1, 0, 1)(0, 0, 1)(0, 0, 1)(1, 0, 1)(0, 0, 1)
- (0, 0, 1)(1, 0, 1)(0, 0, 1)(0, 0, 1)(1, 0, 1)(0, 0, 1)
- (0, 0, 1)(1, 0, 1)(2, 1, 4)(0, 0, 1)(1, 0, 1)(0, 0, 1)
- (0, 0, 1)(1, 0, 1)(0, 0, 1)(0, 0, 1)(1, 0, 1)(0, 0, 1)
- (0, 0, 1)(1, 0, 1)(0, 0, 1);
- emplacer[pre_vals]
- (5, 6, 135)(0, 0, 1)(1, 0, 1)(2, 1, 4)(0, 0, 1)(1, 0, 1)
- (0, 0, 1)(3, 2, 10)(0, 0, 1)(1, 0, 1)(2, 1, 4)(0, 0, 1)
- (1, 0, 1)(0, 0, 1)(0, 0, 1)(1, 0, 1)(0, 0, 1)(4, 3, 26)
- (0, 0, 1)(1, 0, 1)(2, 1, 4)(0, 0, 1)(1, 0, 1)(0, 0, 1)
- (3, 2, 10)(0, 0, 1)(1, 0, 1)(2, 1, 4)(0, 0, 1)(1, 0, 1)
- (0, 0, 1)(0, 0, 1)(1, 0, 1)(0, 0, 1)(0, 0, 1)(1, 0, 1)
- (2, 1, 4)(0, 0, 1)(1, 0, 1)(0, 0, 1)(0, 0, 1)(1, 0, 1)
- (0, 0, 1)(0, 0, 1)(1, 0, 1)(2, 1, 4)(0, 0, 1)(1, 0, 1)
- (0, 0, 1)(3, 2, 10)(0, 0, 1)(1, 0, 1)(2, 1, 4)(0, 0, 1)
- (1, 0, 1)(0, 0, 1)(0, 0, 1)(1, 0, 1)(0, 0, 1)(0, 0, 1)
- (1, 0, 1)(2, 5, 71)(0, 0, 1)(1, 0, 1)(5, 4, 68)(0, 0, 1)
- (1, 0, 1)(2, 1, 4)(0, 0, 1)(1, 0, 1)(0, 0, 1)(3, 2, 10)
- (0, 0, 1)(1, 0, 1)(2, 1, 4)(0, 0, 1)(1, 0, 1)(0, 0, 1)
- (0, 0, 1)(1, 0, 1)(0, 0, 1)(4, 3, 26)(0, 0, 1)(1, 0, 1)
- (2, 1, 4)(0, 0, 1)(1, 0, 1)(0, 0, 1)(3, 2, 10)(0, 0, 1)
- (1, 0, 1)(2, 1, 4)(0, 0, 1)(1, 0, 1)(0, 0, 1)(0, 0, 1)
- (1, 0, 1)(0, 0, 1)(0, 0, 1)(1, 0, 1)(2, 1, 4)(0, 0, 1)
- (1, 0, 1)(0, 0, 1)(0, 0, 1)(1, 0, 1)(0, 0, 1)(0, 0, 1)
- (1, 0, 1)(2, 1, 4)(0, 0, 1)(1, 0, 1)(0, 0, 1)(3, 2, 10)
- (0, 0, 1)(1, 0, 1)(2, 1, 4)(0, 0, 1)(1, 0, 1)(0, 0, 1)
- (0, 0, 1)(1, 0, 1)(0, 0, 1)(0, 0, 1)(1, 0, 1)(2, 1, 4)
- (0, 0, 1)(1, 0, 1)(0, 0, 1)(0, 0, 1)(1, 0, 1)(0, 0, 1)
- (0, 0, 1)(1, 0, 1)(0, 0, 1);
- emplacer[post_vals]
- (0, 0, 1)(1, 0, 1)(0, 0, 1)(1, 0, 1)(0, 0, 1)(2, 1, 4)
- (0, 0, 1)(1, 0, 1)(0, 0, 1)(1, 0, 1)(0, 0, 1)(2, 1, 4)
- (0, 0, 1)(1, 0, 1)(0, 0, 1)(3, 2, 10)(0, 0, 1)(1, 0, 1)
- (0, 0, 1)(1, 0, 1)(0, 0, 1)(2, 1, 4)(0, 0, 1)(1, 0, 1)
- (0, 0, 1)(1, 0, 1)(0, 0, 1)(2, 1, 4)(0, 0, 1)(1, 0, 1)
- (0, 0, 1)(3, 2, 10)(0, 0, 1)(1, 0, 1)(0, 0, 1)(1, 0, 1)
- (0, 0, 1)(2, 1, 4)(0, 0, 1)(1, 0, 1)(0, 0, 1)(4, 3, 26)
- (0, 0, 1)(1, 0, 1)(0, 0, 1)(1, 0, 1)(0, 0, 1)(2, 1, 4)
- (0, 0, 1)(1, 0, 1)(0, 0, 1)(1, 0, 1)(0, 0, 1)(2, 1, 4)
- (0, 0, 1)(1, 0, 1)(0, 0, 1)(3, 2, 10)(0, 0, 1)(1, 0, 1)
- (0, 0, 1)(1, 0, 1)(0, 0, 1)(1, 0, 1)(0, 0, 1)(1, 0, 1)
- (0, 0, 1)(2, 1, 4)(0, 0, 1)(1, 0, 1)(0, 0, 1)(1, 0, 1)
- (0, 0, 1)(2, 1, 4)(0, 0, 1)(1, 0, 1)(0, 0, 1)(3, 2, 10)
- (0, 0, 1)(1, 0, 1)(0, 0, 1)(1, 0, 1)(0, 0, 1)(2, 1, 4)
- (0, 0, 1)(1, 0, 1)(0, 0, 1)(1, 0, 1)(0, 0, 1)(2, 1, 4)
- (0, 0, 1)(1, 0, 1)(0, 0, 1)(3, 2, 10)(0, 0, 1)(1, 0, 1)
- (0, 0, 1)(1, 0, 1)(0, 0, 1)(2, 1, 4)(0, 0, 1)(1, 0, 1)
- (0, 0, 1)(4, 3, 26)(0, 0, 1)(1, 0, 1)(0, 0, 1)(1, 0, 1)
- (0, 0, 1)(2, 1, 4)(0, 0, 1)(1, 0, 1)(0, 0, 1)(1, 0, 1)
- (0, 0, 1)(2, 1, 4)(0, 0, 1)(1, 0, 1)(0, 0, 1)(3, 2, 10)
- (0, 0, 1)(1, 0, 1)(0, 0, 1)(1, 0, 1)(0, 0, 1)(2, 1, 4)
- (0, 0, 1)(1, 0, 1)(0, 0, 1)(5, 4, 68)(2, 5, 71)(0, 0, 1)
- (1, 0, 1)(0, 0, 1)(5, 6, 135);
- emplacer[bf_d_vals]
- ("able", 0, 0, 1)("able", 1, 0, 1)("able", 2, 1, 4)
- ("able", 3, 2, 10)("able", 4, 3, 26)("baker", 0, 0, 1)
- ("baker", 1, 0, 1)("baker", 2, 1, 4)("baker", 3, 2, 10)
- ("chuck", 0, 0, 1)("chuck", 1, 0, 1)("chuck", 2, 5, 71)
- ("dog", 0, 0, 1)("dog", 1, 0, 1)("easy", 0, 0, 1)
- ("able", 0, 0, 1)("able", 1, 0, 1)("baker", 0, 0, 1)
- ("able", 0, 0, 1)("able", 1, 0, 1)("able", 2, 1, 4)
- ("baker", 0, 0, 1)("baker", 1, 0, 1)("chuck", 0, 0, 1)
- ("able", 0, 0, 1)("able", 1, 0, 1)("able", 2, 1, 4)
- ("able", 3, 2, 10)("baker", 0, 0, 1)("baker", 1, 0, 1)
- ("baker", 2, 1, 4)("chuck", 0, 0, 1)("chuck", 1, 0, 1)
- ("dog", 0, 0, 1)("able", 0, 0, 1)("able", 1, 0, 1)
- ("baker", 0, 0, 1)("able", 0, 0, 1)("able", 1, 0, 1)
- ("able", 2, 1, 4)("baker", 0, 0, 1)("baker", 1, 0, 1)
- ("chuck", 0, 0, 1)("able", 0, 0, 1)("able", 1, 0, 1)
- ("baker", 5, 4, 68)("able", 0, 0, 1)("able", 1, 0, 1)
- ("baker", 0, 0, 1)("able", 0, 0, 1)("able", 1, 0, 1)
- ("baker", 0, 0, 1)("able", 0, 0, 1)("able", 1, 0, 1)
- ("able", 2, 1, 4)("baker", 0, 0, 1)("baker", 1, 0, 1)
- ("chuck", 0, 0, 1)("able", 0, 0, 1)("able", 1, 0, 1)
- ("baker", 0, 0, 1)("able", 0, 0, 1)("able", 1, 0, 1)
- ("baker", 0, 0, 1)("able", 0, 0, 1)("able", 1, 0, 1)
- ("able", 2, 1, 4)("able", 3, 2, 10)("able", 4, 3, 26)
- ("baker", 0, 0, 1)("baker", 1, 0, 1)("baker", 2, 1, 4)
- ("baker", 3, 2, 10)("chuck", 0, 0, 1)("chuck", 1, 0, 1)
- ("chuck", 2, 1, 4)("dog", 0, 0, 1)("dog", 1, 0, 1)
- ("easy", 0, 0, 1)("able", 0, 0, 1)("able", 1, 0, 1)
- ("baker", 0, 0, 1)("able", 0, 0, 1)("able", 1, 0, 1)
- ("baker", 0, 0, 1)("able", 0, 0, 1)("able", 1, 0, 1)
- ("able", 2, 1, 4)("baker", 0, 0, 1)("baker", 1, 0, 1)
- ("chuck", 0, 0, 1)("able", 0, 0, 1)("able", 1, 0, 1)
- ("able", 2, 1, 4)("able", 3, 2, 10)("baker", 0, 0, 1)
- ("baker", 1, 0, 1)("baker", 2, 1, 4)("chuck", 0, 0, 1)
- ("chuck", 1, 0, 1)("dog", 0, 0, 1)("able", 0, 0, 1)
- ("able", 1, 0, 1)("baker", 0, 0, 1)("able", 0, 0, 1)
- ("able", 1, 0, 1)("able", 2, 1, 4)("baker", 0, 0, 1)
- ("baker", 1, 0, 1)("chuck", 0, 0, 1)("able", 0, 0, 1)
- ("able", 1, 0, 1)("baker", 0, 0, 1)("able", 0, 0, 1)
- ("able", 1, 0, 1)("baker", 0, 0, 1)("able", 0, 0, 1)
- ("able", 1, 0, 1)("baker", 0, 0, 1)("able", 0, 0, 1)
- ("able", 1, 0, 1)("able", 2, 1, 4)("baker", 0, 0, 1)
- ("baker", 1, 0, 1)("chuck", 0, 0, 1)("able", 0, 0, 1)
- ("able", 1, 0, 1)("baker", 0, 0, 1)("able", 0, 0, 1)
- ("able", 1, 0, 1)("baker", 0, 0, 1)("able", 0, 0, 1)
- ("able", 1, 0, 1)("baker", 0, 0, 1);
- emplacer[pre_d_vals]
- ("able", 0, 0, 1)("able", 1, 0, 1)("able", 2, 1, 4)
- ("able", 0, 0, 1)("able", 1, 0, 1)("baker", 0, 0, 1)
- ("able", 3, 2, 10)("able", 0, 0, 1)("able", 1, 0, 1)
- ("able", 2, 1, 4)("able", 0, 0, 1)("able", 1, 0, 1)
- ("baker", 0, 0, 1)("baker", 0, 0, 1)("baker", 1, 0, 1)
- ("chuck", 0, 0, 1)("able", 4, 3, 26)("able", 0, 0, 1)
- ("able", 1, 0, 1)("able", 2, 1, 4)("able", 0, 0, 1)
- ("able", 1, 0, 1)("baker", 0, 0, 1)("able", 3, 2, 10)
- ("able", 0, 0, 1)("able", 1, 0, 1)("able", 2, 1, 4)
- ("able", 0, 0, 1)("able", 1, 0, 1)("baker", 0, 0, 1)
- ("baker", 0, 0, 1)("baker", 1, 0, 1)("chuck", 0, 0, 1)
- ("baker", 0, 0, 1)("baker", 1, 0, 1)("baker", 2, 1, 4)
- ("able", 0, 0, 1)("able", 1, 0, 1)("baker", 0, 0, 1)
- ("chuck", 0, 0, 1)("chuck", 1, 0, 1)("dog", 0, 0, 1)
- ("baker", 0, 0, 1)("baker", 1, 0, 1)("baker", 2, 1, 4)
- ("able", 0, 0, 1)("able", 1, 0, 1)("baker", 0, 0, 1)
- ("baker", 3, 2, 10)("able", 0, 0, 1)("able", 1, 0, 1)
- ("able", 2, 1, 4)("able", 0, 0, 1)("able", 1, 0, 1)
- ("baker", 0, 0, 1)("baker", 0, 0, 1)("baker", 1, 0, 1)
- ("chuck", 0, 0, 1)("chuck", 0, 0, 1)("chuck", 1, 0, 1)
- ("chuck", 2, 5, 71)("able", 0, 0, 1)("able", 1, 0, 1)
- ("baker", 5, 4, 68)("able", 0, 0, 1)("able", 1, 0, 1)
- ("able", 2, 1, 4)("able", 0, 0, 1)("able", 1, 0, 1)
- ("baker", 0, 0, 1)("able", 3, 2, 10)("able", 0, 0, 1)
- ("able", 1, 0, 1)("able", 2, 1, 4)("able", 0, 0, 1)
- ("able", 1, 0, 1)("baker", 0, 0, 1)("baker", 0, 0, 1)
- ("baker", 1, 0, 1)("chuck", 0, 0, 1)("able", 4, 3, 26)
- ("able", 0, 0, 1)("able", 1, 0, 1)("able", 2, 1, 4)
- ("able", 0, 0, 1)("able", 1, 0, 1)("baker", 0, 0, 1)
- ("able", 3, 2, 10)("able", 0, 0, 1)("able", 1, 0, 1)
- ("able", 2, 1, 4)("able", 0, 0, 1)("able", 1, 0, 1)
- ("baker", 0, 0, 1)("baker", 0, 0, 1)("baker", 1, 0, 1)
- ("chuck", 0, 0, 1)("baker", 0, 0, 1)("baker", 1, 0, 1)
- ("baker", 2, 1, 4)("able", 0, 0, 1)("able", 1, 0, 1)
- ("baker", 0, 0, 1)("chuck", 0, 0, 1)("chuck", 1, 0, 1)
- ("dog", 0, 0, 1)("baker", 0, 0, 1)("baker", 1, 0, 1)
- ("baker", 2, 1, 4)("able", 0, 0, 1)("able", 1, 0, 1)
- ("baker", 0, 0, 1)("baker", 3, 2, 10)("able", 0, 0, 1)
- ("able", 1, 0, 1)("able", 2, 1, 4)("able", 0, 0, 1)
- ("able", 1, 0, 1)("baker", 0, 0, 1)("baker", 0, 0, 1)
- ("baker", 1, 0, 1)("chuck", 0, 0, 1)("chuck", 0, 0, 1)
- ("chuck", 1, 0, 1)("chuck", 2, 1, 4)("able", 0, 0, 1)
- ("able", 1, 0, 1)("baker", 0, 0, 1)("dog", 0, 0, 1)
- ("dog", 1, 0, 1)("easy", 0, 0, 1)("dog", 0, 0, 1)
- ("dog", 1, 0, 1)("easy", 0, 0, 1);
- emplacer[post_d_vals]
- ("able", 0, 0, 1)("able", 1, 0, 1)("able", 0, 0, 1)
- ("able", 1, 0, 1)("baker", 0, 0, 1)("able", 2, 1, 4)
- ("able", 0, 0, 1)("able", 1, 0, 1)("able", 0, 0, 1)
- ("able", 1, 0, 1)("baker", 0, 0, 1)("able", 2, 1, 4)
- ("baker", 0, 0, 1)("baker", 1, 0, 1)("chuck", 0, 0, 1)
- ("able", 3, 2, 10)("able", 0, 0, 1)("able", 1, 0, 1)
- ("able", 0, 0, 1)("able", 1, 0, 1)("baker", 0, 0, 1)
- ("able", 2, 1, 4)("able", 0, 0, 1)("able", 1, 0, 1)
- ("able", 0, 0, 1)("able", 1, 0, 1)("baker", 0, 0, 1)
- ("able", 2, 1, 4)("baker", 0, 0, 1)("baker", 1, 0, 1)
- ("chuck", 0, 0, 1)("able", 3, 2, 10)("baker", 0, 0, 1)
- ("baker", 1, 0, 1)("able", 0, 0, 1)("able", 1, 0, 1)
- ("baker", 0, 0, 1)("baker", 2, 1, 4)("chuck", 0, 0, 1)
- ("chuck", 1, 0, 1)("dog", 0, 0, 1)("able", 4, 3, 26)
- ("baker", 0, 0, 1)("baker", 1, 0, 1)("able", 0, 0, 1)
- ("able", 1, 0, 1)("baker", 0, 0, 1)("baker", 2, 1, 4)
- ("able", 0, 0, 1)("able", 1, 0, 1)("able", 0, 0, 1)
- ("able", 1, 0, 1)("baker", 0, 0, 1)("able", 2, 1, 4)
- ("baker", 0, 0, 1)("baker", 1, 0, 1)("chuck", 0, 0, 1)
- ("baker", 3, 2, 10)("chuck", 0, 0, 1)("chuck", 1, 0, 1)
- ("able", 0, 0, 1)("able", 1, 0, 1)("able", 0, 0, 1)
- ("able", 1, 0, 1)("able", 0, 0, 1)("able", 1, 0, 1)
- ("baker", 0, 0, 1)("able", 2, 1, 4)("able", 0, 0, 1)
- ("able", 1, 0, 1)("able", 0, 0, 1)("able", 1, 0, 1)
- ("baker", 0, 0, 1)("able", 2, 1, 4)("baker", 0, 0, 1)
- ("baker", 1, 0, 1)("chuck", 0, 0, 1)("able", 3, 2, 10)
- ("able", 0, 0, 1)("able", 1, 0, 1)("able", 0, 0, 1)
- ("able", 1, 0, 1)("baker", 0, 0, 1)("able", 2, 1, 4)
- ("able", 0, 0, 1)("able", 1, 0, 1)("able", 0, 0, 1)
- ("able", 1, 0, 1)("baker", 0, 0, 1)("able", 2, 1, 4)
- ("baker", 0, 0, 1)("baker", 1, 0, 1)("chuck", 0, 0, 1)
- ("able", 3, 2, 10)("baker", 0, 0, 1)("baker", 1, 0, 1)
- ("able", 0, 0, 1)("able", 1, 0, 1)("baker", 0, 0, 1)
- ("baker", 2, 1, 4)("chuck", 0, 0, 1)("chuck", 1, 0, 1)
- ("dog", 0, 0, 1)("able", 4, 3, 26)("baker", 0, 0, 1)
- ("baker", 1, 0, 1)("able", 0, 0, 1)("able", 1, 0, 1)
- ("baker", 0, 0, 1)("baker", 2, 1, 4)("able", 0, 0, 1)
- ("able", 1, 0, 1)("able", 0, 0, 1)("able", 1, 0, 1)
- ("baker", 0, 0, 1)("able", 2, 1, 4)("baker", 0, 0, 1)
- ("baker", 1, 0, 1)("chuck", 0, 0, 1)("baker", 3, 2, 10)
- ("chuck", 0, 0, 1)("chuck", 1, 0, 1)("able", 0, 0, 1)
- ("able", 1, 0, 1)("baker", 0, 0, 1)("chuck", 2, 1, 4)
- ("dog", 0, 0, 1)("dog", 1, 0, 1)("easy", 0, 0, 1)
- ("baker", 5, 4, 68)("chuck", 2, 5, 71)("dog", 0, 0, 1)
- ("dog", 1, 0, 1)("easy", 0, 0, 1);
- emplacer[df_d_vals]
- (boost::tree_node::pre_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "able", 2, 1, 4)
- (boost::tree_node::pre_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 2, 1, 4)
- (boost::tree_node::pre_order_traversal, "able", 3, 2, 10)
- (boost::tree_node::pre_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "able", 2, 1, 4)
- (boost::tree_node::pre_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 2, 1, 4)
- (boost::tree_node::pre_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "baker", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "chuck", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "chuck", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 3, 2, 10)
- (boost::tree_node::pre_order_traversal, "able", 4, 3, 26)
- (boost::tree_node::pre_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "able", 2, 1, 4)
- (boost::tree_node::pre_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 2, 1, 4)
- (boost::tree_node::pre_order_traversal, "able", 3, 2, 10)
- (boost::tree_node::pre_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "able", 2, 1, 4)
- (boost::tree_node::pre_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 2, 1, 4)
- (boost::tree_node::pre_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "baker", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "chuck", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "chuck", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 3, 2, 10)
- (boost::tree_node::pre_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "baker", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "baker", 2, 1, 4)
- (boost::tree_node::pre_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 2, 1, 4)
- (boost::tree_node::pre_order_traversal, "chuck", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "chuck", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "chuck", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "chuck", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "dog", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "dog", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 4, 3, 26)
- (boost::tree_node::pre_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "baker", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "baker", 2, 1, 4)
- (boost::tree_node::pre_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 2, 1, 4)
- (boost::tree_node::pre_order_traversal, "baker", 3, 2, 10)
- (boost::tree_node::pre_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "able", 2, 1, 4)
- (boost::tree_node::pre_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 2, 1, 4)
- (boost::tree_node::pre_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "baker", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "chuck", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "chuck", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 3, 2, 10)
- (boost::tree_node::pre_order_traversal, "chuck", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "chuck", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "chuck", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "chuck", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "chuck", 2, 5, 71)
- (boost::tree_node::pre_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "baker", 5, 4, 68)
- (boost::tree_node::pre_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "able", 2, 1, 4)
- (boost::tree_node::pre_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 2, 1, 4)
- (boost::tree_node::pre_order_traversal, "able", 3, 2, 10)
- (boost::tree_node::pre_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "able", 2, 1, 4)
- (boost::tree_node::pre_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 2, 1, 4)
- (boost::tree_node::pre_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "baker", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "chuck", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "chuck", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 3, 2, 10)
- (boost::tree_node::pre_order_traversal, "able", 4, 3, 26)
- (boost::tree_node::pre_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "able", 2, 1, 4)
- (boost::tree_node::pre_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 2, 1, 4)
- (boost::tree_node::pre_order_traversal, "able", 3, 2, 10)
- (boost::tree_node::pre_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "able", 2, 1, 4)
- (boost::tree_node::pre_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 2, 1, 4)
- (boost::tree_node::pre_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "baker", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "chuck", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "chuck", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 3, 2, 10)
- (boost::tree_node::pre_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "baker", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "baker", 2, 1, 4)
- (boost::tree_node::pre_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 2, 1, 4)
- (boost::tree_node::pre_order_traversal, "chuck", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "chuck", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "chuck", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "chuck", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "dog", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "dog", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 4, 3, 26)
- (boost::tree_node::pre_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "baker", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "baker", 2, 1, 4)
- (boost::tree_node::pre_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 2, 1, 4)
- (boost::tree_node::pre_order_traversal, "baker", 3, 2, 10)
- (boost::tree_node::pre_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "able", 2, 1, 4)
- (boost::tree_node::pre_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 2, 1, 4)
- (boost::tree_node::pre_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "baker", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "chuck", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "chuck", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 3, 2, 10)
- (boost::tree_node::pre_order_traversal, "chuck", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "chuck", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "chuck", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "chuck", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "chuck", 2, 1, 4)
- (boost::tree_node::pre_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "chuck", 2, 1, 4)
- (boost::tree_node::pre_order_traversal, "dog", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "dog", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "dog", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "dog", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "easy", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "easy", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 5, 4, 68)
- (boost::tree_node::post_order_traversal, "chuck", 2, 5, 71)
- (boost::tree_node::pre_order_traversal, "dog", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "dog", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "dog", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "dog", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "easy", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "easy", 0, 0, 1);
- emplacer[df_vals]
- (boost::tree_node::pre_order_traversal, 5, 6, 135)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 2, 1, 4)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 2, 1, 4)
- (boost::tree_node::pre_order_traversal, 3, 2, 10)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 2, 1, 4)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 2, 1, 4)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 3, 2, 10)
- (boost::tree_node::pre_order_traversal, 4, 3, 26)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 2, 1, 4)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 2, 1, 4)
- (boost::tree_node::pre_order_traversal, 3, 2, 10)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 2, 1, 4)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 2, 1, 4)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 3, 2, 10)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 2, 1, 4)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 2, 1, 4)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 4, 3, 26)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 2, 1, 4)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 2, 1, 4)
- (boost::tree_node::pre_order_traversal, 3, 2, 10)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 2, 1, 4)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 2, 1, 4)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 3, 2, 10)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 2, 5, 71)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 5, 4, 68)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 2, 1, 4)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 2, 1, 4)
- (boost::tree_node::pre_order_traversal, 3, 2, 10)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 2, 1, 4)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 2, 1, 4)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 3, 2, 10)
- (boost::tree_node::pre_order_traversal, 4, 3, 26)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 2, 1, 4)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 2, 1, 4)
- (boost::tree_node::pre_order_traversal, 3, 2, 10)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 2, 1, 4)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 2, 1, 4)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 3, 2, 10)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 2, 1, 4)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 2, 1, 4)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 4, 3, 26)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 2, 1, 4)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 2, 1, 4)
- (boost::tree_node::pre_order_traversal, 3, 2, 10)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 2, 1, 4)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 2, 1, 4)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 3, 2, 10)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 2, 1, 4)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 2, 1, 4)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 5, 4, 68)
- (boost::tree_node::post_order_traversal, 2, 5, 71)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 5, 6, 135);
-#endif // BOOST_NO_SFINAE
- test_associative_node<a_node_case>(
- a_root
- , bf_vals
- , bf_d_vals
- , pre_vals
- , pre_d_vals
- , post_vals
- , post_d_vals
- , df_vals
- , df_d_vals
- );
- BOOST_CHECK(
- boost::tree_node::dereference_iterator(
- a_child_itr
- ).erase(names[1]) == 4
- );
- bf_vals.clear();
- bf_d_vals.clear();
- pre_vals.clear();
- pre_d_vals.clear();
- post_vals.clear();
- post_d_vals.clear();
- df_vals.clear();
- df_d_vals.clear();
-
-#if defined BOOST_TREE_NODE_CAN_USE_FUSION
- emplacer[bf_vals]
- (5, 6, 119, 98, 5, 476, boost::rational<long>(345, 119))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (3, 2, 10, 8, 1, 22, boost::rational<long>(7, 5))
- (4, 3, 26, 21, 2, 69, boost::rational<long>(23, 13))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (3, 2, 10, 8, 1, 22, boost::rational<long>(7, 5))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 5, 55, 46, 4, 221, boost::rational<long>(161, 55))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (3, 2, 10, 8, 1, 22, boost::rational<long>(7, 5))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (5, 4, 52, 43, 3, 164, boost::rational<long>(57, 26))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (3, 2, 10, 8, 1, 22, boost::rational<long>(7, 5))
- (4, 3, 26, 21, 2, 69, boost::rational<long>(23, 13))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (3, 2, 10, 8, 1, 22, boost::rational<long>(7, 5))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1));
- emplacer[pre_vals]
- (5, 6, 119, 98, 5, 476, boost::rational<long>(345, 119))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (3, 2, 10, 8, 1, 22, boost::rational<long>(7, 5))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (4, 3, 26, 21, 2, 69, boost::rational<long>(23, 13))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (3, 2, 10, 8, 1, 22, boost::rational<long>(7, 5))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (3, 2, 10, 8, 1, 22, boost::rational<long>(7, 5))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 5, 55, 46, 4, 221, boost::rational<long>(161, 55))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (5, 4, 52, 43, 3, 164, boost::rational<long>(57, 26))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (3, 2, 10, 8, 1, 22, boost::rational<long>(7, 5))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (4, 3, 26, 21, 2, 69, boost::rational<long>(23, 13))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (3, 2, 10, 8, 1, 22, boost::rational<long>(7, 5))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1));
- emplacer[post_vals]
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (3, 2, 10, 8, 1, 22, boost::rational<long>(7, 5))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (3, 2, 10, 8, 1, 22, boost::rational<long>(7, 5))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (4, 3, 26, 21, 2, 69, boost::rational<long>(23, 13))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (3, 2, 10, 8, 1, 22, boost::rational<long>(7, 5))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (3, 2, 10, 8, 1, 22, boost::rational<long>(7, 5))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (3, 2, 10, 8, 1, 22, boost::rational<long>(7, 5))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (4, 3, 26, 21, 2, 69, boost::rational<long>(23, 13))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (5, 4, 52, 43, 3, 164, boost::rational<long>(57, 26))
- (2, 5, 55, 46, 4, 221, boost::rational<long>(161, 55))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (5, 6, 119, 98, 5, 476, boost::rational<long>(345, 119));
- emplacer[bf_d_vals]
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("able", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("able", 3, 2, 10, 8, 1, 22, boost::rational<long>(7, 5))
- ("able", 4, 3, 26, 21, 2, 69, boost::rational<long>(23, 13))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("baker", 3, 2, 10, 8, 1, 22, boost::rational<long>(7, 5))
- ("chuck", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("chuck", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("chuck", 2, 5, 55, 46, 4, 221, boost::rational<long>(161, 55))
- ("dog", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("dog", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("easy", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("able", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("chuck", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("able", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("able", 3, 2, 10, 8, 1, 22, boost::rational<long>(7, 5))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("chuck", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("chuck", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("dog", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("able", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("chuck", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 5, 4, 52, 43, 3, 164, boost::rational<long>(57, 26))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("able", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("chuck", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("able", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("able", 3, 2, 10, 8, 1, 22, boost::rational<long>(7, 5))
- ("able", 4, 3, 26, 21, 2, 69, boost::rational<long>(23, 13))
- ("chuck", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("chuck", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("chuck", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("dog", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("dog", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("easy", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("able", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("chuck", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("able", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("able", 3, 2, 10, 8, 1, 22, boost::rational<long>(7, 5))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("chuck", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("chuck", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("dog", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("able", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("chuck", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1));
- emplacer[pre_d_vals]
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("able", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 3, 2, 10, 8, 1, 22, boost::rational<long>(7, 5))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("able", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("chuck", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 4, 3, 26, 21, 2, 69, boost::rational<long>(23, 13))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("able", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 3, 2, 10, 8, 1, 22, boost::rational<long>(7, 5))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("able", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("chuck", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("chuck", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("chuck", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("dog", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 3, 2, 10, 8, 1, 22, boost::rational<long>(7, 5))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("able", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("chuck", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("chuck", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("chuck", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("chuck", 2, 5, 55, 46, 4, 221, boost::rational<long>(161, 55))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 5, 4, 52, 43, 3, 164, boost::rational<long>(57, 26))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("able", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 3, 2, 10, 8, 1, 22, boost::rational<long>(7, 5))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("able", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("chuck", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 4, 3, 26, 21, 2, 69, boost::rational<long>(23, 13))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("able", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 3, 2, 10, 8, 1, 22, boost::rational<long>(7, 5))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("able", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("chuck", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("chuck", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("chuck", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("dog", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("chuck", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("chuck", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("chuck", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("dog", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("dog", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("easy", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("dog", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("dog", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("easy", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1));
- emplacer[post_d_vals]
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("chuck", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 3, 2, 10, 8, 1, 22, boost::rational<long>(7, 5))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("chuck", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 3, 2, 10, 8, 1, 22, boost::rational<long>(7, 5))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("chuck", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("chuck", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("dog", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 4, 3, 26, 21, 2, 69, boost::rational<long>(23, 13))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("chuck", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 3, 2, 10, 8, 1, 22, boost::rational<long>(7, 5))
- ("chuck", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("chuck", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("chuck", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 3, 2, 10, 8, 1, 22, boost::rational<long>(7, 5))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("chuck", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 3, 2, 10, 8, 1, 22, boost::rational<long>(7, 5))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("chuck", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("chuck", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("dog", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 4, 3, 26, 21, 2, 69, boost::rational<long>(23, 13))
- ("chuck", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("chuck", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("able", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("able", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("baker", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("chuck", 2, 1, 4, 3, 0, 7, boost::rational<long>(1, 1))
- ("dog", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("dog", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("easy", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("baker", 5, 4, 52, 43, 3, 164, boost::rational<long>(57, 26))
- ("chuck", 2, 5, 55, 46, 4, 221, boost::rational<long>(161, 55))
- ("dog", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- ("dog", 1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- ("easy", 0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1));
- emplacer[df_d_vals]
- (boost::tree_node::pre_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"able",2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"able",3,2,10,
- 8,1,22,boost::rational<long>(7,5))
- (boost::tree_node::pre_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"able",2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"baker",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"baker",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"chuck",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"chuck",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",3,2,10,
- 8,1,22,boost::rational<long>(7,5))
- (boost::tree_node::pre_order_traversal,"able",4,3,26,
- 21,2,69,boost::rational<long>(23,13))
- (boost::tree_node::pre_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"able",2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"able",3,2,10,
- 8,1,22,boost::rational<long>(7,5))
- (boost::tree_node::pre_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"able",2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"baker",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"baker",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"chuck",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"chuck",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",3,2,10,
- 8,1,22,boost::rational<long>(7,5))
- (boost::tree_node::pre_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"baker",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"baker",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"baker",2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"baker",2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"chuck",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"chuck",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"chuck",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"chuck",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"dog",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"dog",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",4,3,26,
- 21,2,69,boost::rational<long>(23,13))
- (boost::tree_node::pre_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"baker",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"baker",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"baker",2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"baker",2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"baker",3,2,10,
- 8,1,22,boost::rational<long>(7,5))
- (boost::tree_node::pre_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"able",2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"baker",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"baker",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"chuck",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"chuck",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"baker",3,2,10,
- 8,1,22,boost::rational<long>(7,5))
- (boost::tree_node::pre_order_traversal,"chuck",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"chuck",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"chuck",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"chuck",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"chuck",2,5,55,
- 46,4,221,boost::rational<long>(161,55))
- (boost::tree_node::pre_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"baker",5,4,52,
- 43,3,164,boost::rational<long>(57,26))
- (boost::tree_node::pre_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"able",2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"able",3,2,10,
- 8,1,22,boost::rational<long>(7,5))
- (boost::tree_node::pre_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"able",2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"baker",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"baker",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"chuck",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"chuck",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",3,2,10,
- 8,1,22,boost::rational<long>(7,5))
- (boost::tree_node::pre_order_traversal,"able",4,3,26,
- 21,2,69,boost::rational<long>(23,13))
- (boost::tree_node::pre_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"able",2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"able",3,2,10,
- 8,1,22,boost::rational<long>(7,5))
- (boost::tree_node::pre_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"able",2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"baker",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"baker",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"chuck",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"chuck",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",3,2,10,
- 8,1,22,boost::rational<long>(7,5))
- (boost::tree_node::pre_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"baker",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"baker",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"baker",2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"baker",2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"chuck",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"chuck",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"chuck",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"chuck",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"dog",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"dog",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",4,3,26,
- 21,2,69,boost::rational<long>(23,13))
- (boost::tree_node::pre_order_traversal,"chuck",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"chuck",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"chuck",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"chuck",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"chuck",2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"able",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"able",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"baker",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"chuck",2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"dog",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"dog",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"dog",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"dog",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"easy",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"easy",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"baker",5,4,52,
- 43,3,164,boost::rational<long>(57,26))
- (boost::tree_node::post_order_traversal,"chuck",2,5,55,
- 46,4,221,boost::rational<long>(161,55))
- (boost::tree_node::pre_order_traversal,"dog",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"dog",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,"dog",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,"dog",1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,"easy",0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,"easy",0,0,1,
- 0,0,1,boost::rational<long>(0,1));
- emplacer[df_vals]
- (boost::tree_node::pre_order_traversal,5,6,119,
- 98,5,476,boost::rational<long>(345,119))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,3,2,10,
- 8,1,22,boost::rational<long>(7,5))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,3,2,10,
- 8,1,22,boost::rational<long>(7,5))
- (boost::tree_node::pre_order_traversal,4,3,26,
- 21,2,69,boost::rational<long>(23,13))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,3,2,10,
- 8,1,22,boost::rational<long>(7,5))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,3,2,10,
- 8,1,22,boost::rational<long>(7,5))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,4,3,26,
- 21,2,69,boost::rational<long>(23,13))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,3,2,10,
- 8,1,22,boost::rational<long>(7,5))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,3,2,10,
- 8,1,22,boost::rational<long>(7,5))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,2,5,55,
- 46,4,221,boost::rational<long>(161,55))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,5,4,52,
- 43,3,164,boost::rational<long>(57,26))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,3,2,10,
- 8,1,22,boost::rational<long>(7,5))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,3,2,10,
- 8,1,22,boost::rational<long>(7,5))
- (boost::tree_node::pre_order_traversal,4,3,26,
- 21,2,69,boost::rational<long>(23,13))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,3,2,10,
- 8,1,22,boost::rational<long>(7,5))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,3,2,10,
- 8,1,22,boost::rational<long>(7,5))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,4,3,26,
- 21,2,69,boost::rational<long>(23,13))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,2,1,4,
- 3,0,7,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,5,4,52,
- 43,3,164,boost::rational<long>(57,26))
- (boost::tree_node::post_order_traversal,2,5,55,
- 46,4,221,boost::rational<long>(161,55))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::pre_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::post_order_traversal,1,0,1,
- 1,0,1,boost::rational<long>(1,1))
- (boost::tree_node::pre_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,0,0,1,
- 0,0,1,boost::rational<long>(0,1))
- (boost::tree_node::post_order_traversal,5,6,119,
- 98,5,476,boost::rational<long>(345,119));
-#else // !defined BOOST_TREE_NODE_CAN_USE_FUSION
- emplacer[bf_vals]
- (5, 6, 119)(0, 0, 1)(1, 0, 1)(2, 1, 4)(3, 2, 10)(4, 3, 26)
- (0, 0, 1)(1, 0, 1)(2, 1, 4)(3, 2, 10)(0, 0, 1)(1, 0, 1)
- (2, 5, 55)(0, 0, 1)(1, 0, 1)(0, 0, 1)(0, 0, 1)(1, 0, 1)
- (0, 0, 1)(0, 0, 1)(1, 0, 1)(2, 1, 4)(0, 0, 1)(1, 0, 1)
- (0, 0, 1)(0, 0, 1)(1, 0, 1)(2, 1, 4)(3, 2, 10)(0, 0, 1)
- (1, 0, 1)(2, 1, 4)(0, 0, 1)(1, 0, 1)(0, 0, 1)(0, 0, 1)
- (1, 0, 1)(0, 0, 1)(0, 0, 1)(1, 0, 1)(2, 1, 4)(0, 0, 1)
- (1, 0, 1)(0, 0, 1)(0, 0, 1)(1, 0, 1)(5, 4, 52)(0, 0, 1)
- (1, 0, 1)(0, 0, 1)(0, 0, 1)(1, 0, 1)(0, 0, 1)(0, 0, 1)
- (1, 0, 1)(2, 1, 4)(0, 0, 1)(1, 0, 1)(0, 0, 1)(0, 0, 1)
- (1, 0, 1)(0, 0, 1)(0, 0, 1)(1, 0, 1)(0, 0, 1)(0, 0, 1)
- (1, 0, 1)(2, 1, 4)(3, 2, 10)(4, 3, 26)(0, 0, 1)(1, 0, 1)
- (2, 1, 4)(0, 0, 1)(1, 0, 1)(0, 0, 1)(0, 0, 1)(1, 0, 1)
- (0, 0, 1)(0, 0, 1)(1, 0, 1)(0, 0, 1)(0, 0, 1)(1, 0, 1)
- (2, 1, 4)(0, 0, 1)(1, 0, 1)(0, 0, 1)(0, 0, 1)(1, 0, 1)
- (2, 1, 4)(3, 2, 10)(0, 0, 1)(1, 0, 1)(2, 1, 4)(0, 0, 1)
- (1, 0, 1)(0, 0, 1)(0, 0, 1)(1, 0, 1)(0, 0, 1)(0, 0, 1)
- (1, 0, 1)(0, 0, 1)(0, 0, 1)(1, 0, 1)(0, 0, 1)(0, 0, 1)
- (1, 0, 1)(2, 1, 4)(0, 0, 1)(1, 0, 1)(0, 0, 1)(0, 0, 1)
- (1, 0, 1)(0, 0, 1)(0, 0, 1)(1, 0, 1)(0, 0, 1);
- emplacer[pre_vals]
- (5, 6, 119)(0, 0, 1)(1, 0, 1)(2, 1, 4)(0, 0, 1)(1, 0, 1)
- (0, 0, 1)(3, 2, 10)(0, 0, 1)(1, 0, 1)(2, 1, 4)(0, 0, 1)
- (1, 0, 1)(0, 0, 1)(0, 0, 1)(1, 0, 1)(0, 0, 1)(4, 3, 26)
- (0, 0, 1)(1, 0, 1)(2, 1, 4)(0, 0, 1)(1, 0, 1)(0, 0, 1)
- (3, 2, 10)(0, 0, 1)(1, 0, 1)(2, 1, 4)(0, 0, 1)(1, 0, 1)
- (0, 0, 1)(0, 0, 1)(1, 0, 1)(0, 0, 1)(0, 0, 1)(1, 0, 1)
- (2, 1, 4)(0, 0, 1)(1, 0, 1)(0, 0, 1)(0, 0, 1)(1, 0, 1)
- (0, 0, 1)(0, 0, 1)(1, 0, 1)(2, 1, 4)(0, 0, 1)(1, 0, 1)
- (0, 0, 1)(3, 2, 10)(0, 0, 1)(1, 0, 1)(2, 1, 4)(0, 0, 1)
- (1, 0, 1)(0, 0, 1)(0, 0, 1)(1, 0, 1)(0, 0, 1)(0, 0, 1)
- (1, 0, 1)(2, 5, 55)(0, 0, 1)(1, 0, 1)(5, 4, 52)(0, 0, 1)
- (1, 0, 1)(2, 1, 4)(0, 0, 1)(1, 0, 1)(0, 0, 1)(3, 2, 10)
- (0, 0, 1)(1, 0, 1)(2, 1, 4)(0, 0, 1)(1, 0, 1)(0, 0, 1)
- (0, 0, 1)(1, 0, 1)(0, 0, 1)(4, 3, 26)(0, 0, 1)(1, 0, 1)
- (2, 1, 4)(0, 0, 1)(1, 0, 1)(0, 0, 1)(3, 2, 10)(0, 0, 1)
- (1, 0, 1)(2, 1, 4)(0, 0, 1)(1, 0, 1)(0, 0, 1)(0, 0, 1)
- (1, 0, 1)(0, 0, 1)(0, 0, 1)(1, 0, 1)(2, 1, 4)(0, 0, 1)
- (1, 0, 1)(0, 0, 1)(0, 0, 1)(1, 0, 1)(0, 0, 1)(0, 0, 1)
- (1, 0, 1)(2, 1, 4)(0, 0, 1)(1, 0, 1)(0, 0, 1)(0, 0, 1)
- (1, 0, 1)(0, 0, 1)(0, 0, 1)(1, 0, 1)(0, 0, 1);
- emplacer[post_vals]
- (0, 0, 1)(1, 0, 1)(0, 0, 1)(1, 0, 1)(0, 0, 1)(2, 1, 4)
- (0, 0, 1)(1, 0, 1)(0, 0, 1)(1, 0, 1)(0, 0, 1)(2, 1, 4)
- (0, 0, 1)(1, 0, 1)(0, 0, 1)(3, 2, 10)(0, 0, 1)(1, 0, 1)
- (0, 0, 1)(1, 0, 1)(0, 0, 1)(2, 1, 4)(0, 0, 1)(1, 0, 1)
- (0, 0, 1)(1, 0, 1)(0, 0, 1)(2, 1, 4)(0, 0, 1)(1, 0, 1)
- (0, 0, 1)(3, 2, 10)(0, 0, 1)(1, 0, 1)(0, 0, 1)(1, 0, 1)
- (0, 0, 1)(2, 1, 4)(0, 0, 1)(1, 0, 1)(0, 0, 1)(4, 3, 26)
- (0, 0, 1)(1, 0, 1)(0, 0, 1)(1, 0, 1)(0, 0, 1)(2, 1, 4)
- (0, 0, 1)(1, 0, 1)(0, 0, 1)(1, 0, 1)(0, 0, 1)(2, 1, 4)
- (0, 0, 1)(1, 0, 1)(0, 0, 1)(3, 2, 10)(0, 0, 1)(1, 0, 1)
- (0, 0, 1)(1, 0, 1)(0, 0, 1)(1, 0, 1)(0, 0, 1)(1, 0, 1)
- (0, 0, 1)(2, 1, 4)(0, 0, 1)(1, 0, 1)(0, 0, 1)(1, 0, 1)
- (0, 0, 1)(2, 1, 4)(0, 0, 1)(1, 0, 1)(0, 0, 1)(3, 2, 10)
- (0, 0, 1)(1, 0, 1)(0, 0, 1)(1, 0, 1)(0, 0, 1)(2, 1, 4)
- (0, 0, 1)(1, 0, 1)(0, 0, 1)(1, 0, 1)(0, 0, 1)(2, 1, 4)
- (0, 0, 1)(1, 0, 1)(0, 0, 1)(3, 2, 10)(0, 0, 1)(1, 0, 1)
- (0, 0, 1)(1, 0, 1)(0, 0, 1)(2, 1, 4)(0, 0, 1)(1, 0, 1)
- (0, 0, 1)(4, 3, 26)(0, 0, 1)(1, 0, 1)(0, 0, 1)(1, 0, 1)
- (0, 0, 1)(2, 1, 4)(0, 0, 1)(1, 0, 1)(0, 0, 1)(5, 4, 52)
- (2, 5, 55)(0, 0, 1)(1, 0, 1)(0, 0, 1)(5, 6, 119);
- emplacer[bf_d_vals]
- ("able", 0, 0, 1)("able", 1, 0, 1)("able", 2, 1, 4)
- ("able", 3, 2, 10)("able", 4, 3, 26)("baker", 0, 0, 1)
- ("baker", 1, 0, 1)("baker", 2, 1, 4)("baker", 3, 2, 10)
- ("chuck", 0, 0, 1)("chuck", 1, 0, 1)("chuck", 2, 5, 55)
- ("dog", 0, 0, 1)("dog", 1, 0, 1)("easy", 0, 0, 1)
- ("able", 0, 0, 1)("able", 1, 0, 1)("baker", 0, 0, 1)
- ("able", 0, 0, 1)("able", 1, 0, 1)("able", 2, 1, 4)
- ("baker", 0, 0, 1)("baker", 1, 0, 1)("chuck", 0, 0, 1)
- ("able", 0, 0, 1)("able", 1, 0, 1)("able", 2, 1, 4)
- ("able", 3, 2, 10)("baker", 0, 0, 1)("baker", 1, 0, 1)
- ("baker", 2, 1, 4)("chuck", 0, 0, 1)("chuck", 1, 0, 1)
- ("dog", 0, 0, 1)("able", 0, 0, 1)("able", 1, 0, 1)
- ("baker", 0, 0, 1)("able", 0, 0, 1)("able", 1, 0, 1)
- ("able", 2, 1, 4)("baker", 0, 0, 1)("baker", 1, 0, 1)
- ("chuck", 0, 0, 1)("able", 0, 0, 1)("able", 1, 0, 1)
- ("baker", 5, 4, 52)("able", 0, 0, 1)("able", 1, 0, 1)
- ("baker", 0, 0, 1)("able", 0, 0, 1)("able", 1, 0, 1)
- ("baker", 0, 0, 1)("able", 0, 0, 1)("able", 1, 0, 1)
- ("able", 2, 1, 4)("baker", 0, 0, 1)("baker", 1, 0, 1)
- ("chuck", 0, 0, 1)("able", 0, 0, 1)("able", 1, 0, 1)
- ("baker", 0, 0, 1)("able", 0, 0, 1)("able", 1, 0, 1)
- ("baker", 0, 0, 1)("able", 0, 0, 1)("able", 1, 0, 1)
- ("able", 2, 1, 4)("able", 3, 2, 10)("able", 4, 3, 26)
- ("chuck", 0, 0, 1)("chuck", 1, 0, 1)("chuck", 2, 1, 4)
- ("dog", 0, 0, 1)("dog", 1, 0, 1)("easy", 0, 0, 1)
- ("able", 0, 0, 1)("able", 1, 0, 1)("baker", 0, 0, 1)
- ("able", 0, 0, 1)("able", 1, 0, 1)("baker", 0, 0, 1)
- ("able", 0, 0, 1)("able", 1, 0, 1)("able", 2, 1, 4)
- ("baker", 0, 0, 1)("baker", 1, 0, 1)("chuck", 0, 0, 1)
- ("able", 0, 0, 1)("able", 1, 0, 1)("able", 2, 1, 4)
- ("able", 3, 2, 10)("baker", 0, 0, 1)("baker", 1, 0, 1)
- ("baker", 2, 1, 4)("chuck", 0, 0, 1)("chuck", 1, 0, 1)
- ("dog", 0, 0, 1)("able", 0, 0, 1)("able", 1, 0, 1)
- ("baker", 0, 0, 1)("able", 0, 0, 1)("able", 1, 0, 1)
- ("baker", 0, 0, 1)("able", 0, 0, 1)("able", 1, 0, 1)
- ("baker", 0, 0, 1)("able", 0, 0, 1)("able", 1, 0, 1)
- ("able", 2, 1, 4)("baker", 0, 0, 1)("baker", 1, 0, 1)
- ("chuck", 0, 0, 1)("able", 0, 0, 1)("able", 1, 0, 1)
- ("baker", 0, 0, 1)("able", 0, 0, 1)("able", 1, 0, 1)
- ("baker", 0, 0, 1);
- emplacer[pre_d_vals]
- ("able", 0, 0, 1)("able", 1, 0, 1)("able", 2, 1, 4)
- ("able", 0, 0, 1)("able", 1, 0, 1)("baker", 0, 0, 1)
- ("able", 3, 2, 10)("able", 0, 0, 1)("able", 1, 0, 1)
- ("able", 2, 1, 4)("able", 0, 0, 1)("able", 1, 0, 1)
- ("baker", 0, 0, 1)("baker", 0, 0, 1)("baker", 1, 0, 1)
- ("chuck", 0, 0, 1)("able", 4, 3, 26)("able", 0, 0, 1)
- ("able", 1, 0, 1)("able", 2, 1, 4)("able", 0, 0, 1)
- ("able", 1, 0, 1)("baker", 0, 0, 1)("able", 3, 2, 10)
- ("able", 0, 0, 1)("able", 1, 0, 1)("able", 2, 1, 4)
- ("able", 0, 0, 1)("able", 1, 0, 1)("baker", 0, 0, 1)
- ("baker", 0, 0, 1)("baker", 1, 0, 1)("chuck", 0, 0, 1)
- ("baker", 0, 0, 1)("baker", 1, 0, 1)("baker", 2, 1, 4)
- ("able", 0, 0, 1)("able", 1, 0, 1)("baker", 0, 0, 1)
- ("chuck", 0, 0, 1)("chuck", 1, 0, 1)("dog", 0, 0, 1)
- ("baker", 0, 0, 1)("baker", 1, 0, 1)("baker", 2, 1, 4)
- ("able", 0, 0, 1)("able", 1, 0, 1)("baker", 0, 0, 1)
- ("baker", 3, 2, 10)("able", 0, 0, 1)("able", 1, 0, 1)
- ("able", 2, 1, 4)("able", 0, 0, 1)("able", 1, 0, 1)
- ("baker", 0, 0, 1)("baker", 0, 0, 1)("baker", 1, 0, 1)
- ("chuck", 0, 0, 1)("chuck", 0, 0, 1)("chuck", 1, 0, 1)
- ("chuck", 2, 5, 55)("able", 0, 0, 1)("able", 1, 0, 1)
- ("baker", 5, 4, 52)("able", 0, 0, 1)("able", 1, 0, 1)
- ("able", 2, 1, 4)("able", 0, 0, 1)("able", 1, 0, 1)
- ("baker", 0, 0, 1)("able", 3, 2, 10)("able", 0, 0, 1)
- ("able", 1, 0, 1)("able", 2, 1, 4)("able", 0, 0, 1)
- ("able", 1, 0, 1)("baker", 0, 0, 1)("baker", 0, 0, 1)
- ("baker", 1, 0, 1)("chuck", 0, 0, 1)("able", 4, 3, 26)
- ("able", 0, 0, 1)("able", 1, 0, 1)("able", 2, 1, 4)
- ("able", 0, 0, 1)("able", 1, 0, 1)("baker", 0, 0, 1)
- ("able", 3, 2, 10)("able", 0, 0, 1)("able", 1, 0, 1)
- ("able", 2, 1, 4)("able", 0, 0, 1)("able", 1, 0, 1)
- ("baker", 0, 0, 1)("baker", 0, 0, 1)("baker", 1, 0, 1)
- ("chuck", 0, 0, 1)("baker", 0, 0, 1)("baker", 1, 0, 1)
- ("baker", 2, 1, 4)("able", 0, 0, 1)("able", 1, 0, 1)
- ("baker", 0, 0, 1)("chuck", 0, 0, 1)("chuck", 1, 0, 1)
- ("dog", 0, 0, 1)("chuck", 0, 0, 1)("chuck", 1, 0, 1)
- ("chuck", 2, 1, 4)("able", 0, 0, 1)("able", 1, 0, 1)
- ("baker", 0, 0, 1)("dog", 0, 0, 1)("dog", 1, 0, 1)
- ("easy", 0, 0, 1)("dog", 0, 0, 1)("dog", 1, 0, 1)
- ("easy", 0, 0, 1);
- emplacer[post_d_vals]
- ("able", 0, 0, 1)("able", 1, 0, 1)("able", 0, 0, 1)
- ("able", 1, 0, 1)("baker", 0, 0, 1)("able", 2, 1, 4)
- ("able", 0, 0, 1)("able", 1, 0, 1)("able", 0, 0, 1)
- ("able", 1, 0, 1)("baker", 0, 0, 1)("able", 2, 1, 4)
- ("baker", 0, 0, 1)("baker", 1, 0, 1)("chuck", 0, 0, 1)
- ("able", 3, 2, 10)("able", 0, 0, 1)("able", 1, 0, 1)
- ("able", 0, 0, 1)("able", 1, 0, 1)("baker", 0, 0, 1)
- ("able", 2, 1, 4)("able", 0, 0, 1)("able", 1, 0, 1)
- ("able", 0, 0, 1)("able", 1, 0, 1)("baker", 0, 0, 1)
- ("able", 2, 1, 4)("baker", 0, 0, 1)("baker", 1, 0, 1)
- ("chuck", 0, 0, 1)("able", 3, 2, 10)("baker", 0, 0, 1)
- ("baker", 1, 0, 1)("able", 0, 0, 1)("able", 1, 0, 1)
- ("baker", 0, 0, 1)("baker", 2, 1, 4)("chuck", 0, 0, 1)
- ("chuck", 1, 0, 1)("dog", 0, 0, 1)("able", 4, 3, 26)
- ("baker", 0, 0, 1)("baker", 1, 0, 1)("able", 0, 0, 1)
- ("able", 1, 0, 1)("baker", 0, 0, 1)("baker", 2, 1, 4)
- ("able", 0, 0, 1)("able", 1, 0, 1)("able", 0, 0, 1)
- ("able", 1, 0, 1)("baker", 0, 0, 1)("able", 2, 1, 4)
- ("baker", 0, 0, 1)("baker", 1, 0, 1)("chuck", 0, 0, 1)
- ("baker", 3, 2, 10)("chuck", 0, 0, 1)("chuck", 1, 0, 1)
- ("able", 0, 0, 1)("able", 1, 0, 1)("able", 0, 0, 1)
- ("able", 1, 0, 1)("able", 0, 0, 1)("able", 1, 0, 1)
- ("baker", 0, 0, 1)("able", 2, 1, 4)("able", 0, 0, 1)
- ("able", 1, 0, 1)("able", 0, 0, 1)("able", 1, 0, 1)
- ("baker", 0, 0, 1)("able", 2, 1, 4)("baker", 0, 0, 1)
- ("baker", 1, 0, 1)("chuck", 0, 0, 1)("able", 3, 2, 10)
- ("able", 0, 0, 1)("able", 1, 0, 1)("able", 0, 0, 1)
- ("able", 1, 0, 1)("baker", 0, 0, 1)("able", 2, 1, 4)
- ("able", 0, 0, 1)("able", 1, 0, 1)("able", 0, 0, 1)
- ("able", 1, 0, 1)("baker", 0, 0, 1)("able", 2, 1, 4)
- ("baker", 0, 0, 1)("baker", 1, 0, 1)("chuck", 0, 0, 1)
- ("able", 3, 2, 10)("baker", 0, 0, 1)("baker", 1, 0, 1)
- ("able", 0, 0, 1)("able", 1, 0, 1)("baker", 0, 0, 1)
- ("baker", 2, 1, 4)("chuck", 0, 0, 1)("chuck", 1, 0, 1)
- ("dog", 0, 0, 1)("able", 4, 3, 26)("chuck", 0, 0, 1)
- ("chuck", 1, 0, 1)("able", 0, 0, 1)("able", 1, 0, 1)
- ("baker", 0, 0, 1)("chuck", 2, 1, 4)("dog", 0, 0, 1)
- ("dog", 1, 0, 1)("easy", 0, 0, 1)("baker", 5, 4, 52)
- ("chuck", 2, 5, 55)("dog", 0, 0, 1)("dog", 1, 0, 1)
- ("easy", 0, 0, 1);
- emplacer[df_d_vals]
- (boost::tree_node::pre_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "able", 2, 1, 4)
- (boost::tree_node::pre_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 2, 1, 4)
- (boost::tree_node::pre_order_traversal, "able", 3, 2, 10)
- (boost::tree_node::pre_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "able", 2, 1, 4)
- (boost::tree_node::pre_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 2, 1, 4)
- (boost::tree_node::pre_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "baker", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "chuck", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "chuck", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 3, 2, 10)
- (boost::tree_node::pre_order_traversal, "able", 4, 3, 26)
- (boost::tree_node::pre_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "able", 2, 1, 4)
- (boost::tree_node::pre_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 2, 1, 4)
- (boost::tree_node::pre_order_traversal, "able", 3, 2, 10)
- (boost::tree_node::pre_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "able", 2, 1, 4)
- (boost::tree_node::pre_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 2, 1, 4)
- (boost::tree_node::pre_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "baker", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "chuck", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "chuck", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 3, 2, 10)
- (boost::tree_node::pre_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "baker", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "baker", 2, 1, 4)
- (boost::tree_node::pre_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 2, 1, 4)
- (boost::tree_node::pre_order_traversal, "chuck", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "chuck", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "chuck", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "chuck", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "dog", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "dog", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 4, 3, 26)
- (boost::tree_node::pre_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "baker", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "baker", 2, 1, 4)
- (boost::tree_node::pre_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 2, 1, 4)
- (boost::tree_node::pre_order_traversal, "baker", 3, 2, 10)
- (boost::tree_node::pre_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "able", 2, 1, 4)
- (boost::tree_node::pre_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 2, 1, 4)
- (boost::tree_node::pre_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "baker", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "chuck", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "chuck", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 3, 2, 10)
- (boost::tree_node::pre_order_traversal, "chuck", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "chuck", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "chuck", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "chuck", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "chuck", 2, 5, 55)
- (boost::tree_node::pre_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "baker", 5, 4, 52)
- (boost::tree_node::pre_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "able", 2, 1, 4)
- (boost::tree_node::pre_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 2, 1, 4)
- (boost::tree_node::pre_order_traversal, "able", 3, 2, 10)
- (boost::tree_node::pre_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "able", 2, 1, 4)
- (boost::tree_node::pre_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 2, 1, 4)
- (boost::tree_node::pre_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "baker", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "chuck", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "chuck", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 3, 2, 10)
- (boost::tree_node::pre_order_traversal, "able", 4, 3, 26)
- (boost::tree_node::pre_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "able", 2, 1, 4)
- (boost::tree_node::pre_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 2, 1, 4)
- (boost::tree_node::pre_order_traversal, "able", 3, 2, 10)
- (boost::tree_node::pre_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "able", 2, 1, 4)
- (boost::tree_node::pre_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 2, 1, 4)
- (boost::tree_node::pre_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "baker", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "chuck", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "chuck", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 3, 2, 10)
- (boost::tree_node::pre_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "baker", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "baker", 2, 1, 4)
- (boost::tree_node::pre_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 2, 1, 4)
- (boost::tree_node::pre_order_traversal, "chuck", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "chuck", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "chuck", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "chuck", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "dog", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "dog", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 4, 3, 26)
- (boost::tree_node::pre_order_traversal, "chuck", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "chuck", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "chuck", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "chuck", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "chuck", 2, 1, 4)
- (boost::tree_node::pre_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "able", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "chuck", 2, 1, 4)
- (boost::tree_node::pre_order_traversal, "dog", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "dog", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "dog", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "dog", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "easy", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "easy", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "baker", 5, 4, 52)
- (boost::tree_node::post_order_traversal, "chuck", 2, 5, 55)
- (boost::tree_node::pre_order_traversal, "dog", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "dog", 0, 0, 1)
- (boost::tree_node::pre_order_traversal, "dog", 1, 0, 1)
- (boost::tree_node::post_order_traversal, "dog", 1, 0, 1)
- (boost::tree_node::pre_order_traversal, "easy", 0, 0, 1)
- (boost::tree_node::post_order_traversal, "easy", 0, 0, 1);
- emplacer[df_vals]
- (boost::tree_node::pre_order_traversal, 5, 6, 119)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 2, 1, 4)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 2, 1, 4)
- (boost::tree_node::pre_order_traversal, 3, 2, 10)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 2, 1, 4)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 2, 1, 4)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 3, 2, 10)
- (boost::tree_node::pre_order_traversal, 4, 3, 26)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 2, 1, 4)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 2, 1, 4)
- (boost::tree_node::pre_order_traversal, 3, 2, 10)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 2, 1, 4)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 2, 1, 4)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 3, 2, 10)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 2, 1, 4)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 2, 1, 4)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 4, 3, 26)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 2, 1, 4)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 2, 1, 4)
- (boost::tree_node::pre_order_traversal, 3, 2, 10)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 2, 1, 4)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 2, 1, 4)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 3, 2, 10)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 2, 5, 55)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 5, 4, 52)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 2, 1, 4)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 2, 1, 4)
- (boost::tree_node::pre_order_traversal, 3, 2, 10)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 2, 1, 4)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 2, 1, 4)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 3, 2, 10)
- (boost::tree_node::pre_order_traversal, 4, 3, 26)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 2, 1, 4)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 2, 1, 4)
- (boost::tree_node::pre_order_traversal, 3, 2, 10)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 2, 1, 4)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 2, 1, 4)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 3, 2, 10)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 2, 1, 4)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 2, 1, 4)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 4, 3, 26)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 2, 1, 4)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 2, 1, 4)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 5, 4, 52)
- (boost::tree_node::post_order_traversal, 2, 5, 55)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 5, 6, 119);
-#endif // BOOST_NO_SFINAE
- test_associative_node<a_node_case>(
- a_root
- , bf_vals
- , bf_d_vals
- , pre_vals
- , pre_d_vals
- , post_vals
- , post_d_vals
- , df_vals
- , df_d_vals
- );
- }
-
-#if defined BOOST_TREE_NODE_CAN_USE_FUSION_WITH_TYPEOF
- typedef boost::tree_node::with_accumulation<
- boost::tree_node::associative_node_base_gen<Selector>
- , char const*
- , DataMap
- , AccuYourUintKey
- >
- FNode;
- typedef typename boost::container_gen<
- boost::dequeS
- , boost::tuples::tuple<
- typename boost::tree_node::result_of::value_at_key<
- FNode const
- , example_keys::your_uint
- >::type
- , typename boost::tree_node::result_of::value_at_key<
- FNode const
- , example_keys::your_char
- >::type
- , typename boost::tree_node::result_of::value_at_key<
- FNode const
- , AccuYourUintKey
- >::type
- >
- >::type
- MoreValues;
- typedef typename boost::container_gen<
- boost::dequeS
- , boost::tuples::tuple<
- boost::tree_node::traversal_state
- , typename boost::tree_node::result_of::value_at_key<
- FNode const
- , example_keys::your_uint
- >::type
- , typename boost::tree_node::result_of::value_at_key<
- FNode const
- , example_keys::your_char
- >::type
- , typename boost::tree_node::result_of::value_at_key<
- FNode const
- , AccuYourUintKey
- >::type
- >
- >::type
- DFMoreValues;
- typedef typename boost::container_gen<
- boost::dequeS
- , boost::tuples::tuple<
- typename FNode::traits::key_type
- , typename boost::tree_node::result_of::value_at_key<
- FNode const
- , example_keys::your_uint
- >::type
- , typename boost::tree_node::result_of::value_at_key<
- FNode const
- , example_keys::your_char
- >::type
- , typename boost::tree_node::result_of::value_at_key<
- FNode const
- , AccuYourUintKey
- >::type
- >
- >::type
- MoreKeyValues;
- typedef typename boost::container_gen<
- boost::dequeS
- , boost::tuples::tuple<
- boost::tree_node::traversal_state
- , typename FNode::traits::key_type
- , typename boost::tree_node::result_of::value_at_key<
- FNode const
- , example_keys::your_uint
- >::type
- , typename boost::tree_node::result_of::value_at_key<
- FNode const
- , example_keys::your_char
- >::type
- , typename boost::tree_node::result_of::value_at_key<
- FNode const
- , AccuYourUintKey
- >::type
- >
- >::type
- DFMoreKeyValues;
-
- FNode f_root(
- boost::fusion::make_pair<example_keys::your_uint>(5)
- , boost::fusion::make_pair<example_keys::your_char>('5')
- );
-
- for (
- boost::tree_node::breadth_first_iterator<FNode> itr(f_root);
- itr;
- ++itr
- )
- {
- typename boost::tree_node::result_of::value_at_key<
- FNode const
- , example_keys::your_uint
- >::type data = boost::tree_node::get<
- example_keys::your_uint
- >(boost::tree_node::dereference_iterator(itr));
-
- if (1 < data)
- {
- for (unsigned int i = 0; i < data; ++i)
- {
- for (std::size_t j = 0; j + i < data; ++j)
- {
- itr->emplace(
- names[j]
- , boost::fusion::make_pair<example_keys::your_uint>(i)
- , boost::fusion::make_pair<example_keys::your_char>(
- '0' + i
- )
- );
- }
- }
- }
- }
-
- {
- MoreValues bf_vals, pre_vals, post_vals;
- MoreKeyValues bf_d_vals, pre_d_vals, post_d_vals;
- DFMoreKeyValues df_d_vals;
- DFMoreValues df_vals;
- Emplacer emplacer;
-
- emplacer[bf_vals]
- (5, '5', 55)(0, '0', 0)(1, '1', 1)(2, '2', 3)(3, '3', 8)
- (4, '4', 21)(0, '0', 0)(1, '1', 1)(2, '2', 3)(3, '3', 8)
- (0, '0', 0)(1, '1', 1)(2, '2', 3)(0, '0', 0)(1, '1', 1)
- (0, '0', 0)(0, '0', 0)(1, '1', 1)(0, '0', 0)(0, '0', 0)
- (1, '1', 1)(2, '2', 3)(0, '0', 0)(1, '1', 1)(0, '0', 0)
- (0, '0', 0)(1, '1', 1)(2, '2', 3)(3, '3', 8)(0, '0', 0)
- (1, '1', 1)(2, '2', 3)(0, '0', 0)(1, '1', 1)(0, '0', 0)
- (0, '0', 0)(1, '1', 1)(0, '0', 0)(0, '0', 0)(1, '1', 1)
- (2, '2', 3)(0, '0', 0)(1, '1', 1)(0, '0', 0)(0, '0', 0)
- (1, '1', 1)(0, '0', 0)(0, '0', 0)(1, '1', 1)(0, '0', 0)
- (0, '0', 0)(1, '1', 1)(0, '0', 0)(0, '0', 0)(1, '1', 1)
- (2, '2', 3)(0, '0', 0)(1, '1', 1)(0, '0', 0)(0, '0', 0)
- (1, '1', 1)(0, '0', 0)(0, '0', 0)(1, '1', 1)(0, '0', 0)
- (0, '0', 0)(1, '1', 1)(0, '0', 0);
- emplacer[pre_vals]
- (5, '5', 55)(0, '0', 0)(1, '1', 1)(2, '2', 3)(0, '0', 0)
- (1, '1', 1)(0, '0', 0)(3, '3', 8)(0, '0', 0)(1, '1', 1)
- (2, '2', 3)(0, '0', 0)(1, '1', 1)(0, '0', 0)(0, '0', 0)
- (1, '1', 1)(0, '0', 0)(4, '4', 21)(0, '0', 0)(1, '1', 1)
- (2, '2', 3)(0, '0', 0)(1, '1', 1)(0, '0', 0)(3, '3', 8)
- (0, '0', 0)(1, '1', 1)(2, '2', 3)(0, '0', 0)(1, '1', 1)
- (0, '0', 0)(0, '0', 0)(1, '1', 1)(0, '0', 0)(0, '0', 0)
- (1, '1', 1)(2, '2', 3)(0, '0', 0)(1, '1', 1)(0, '0', 0)
- (0, '0', 0)(1, '1', 1)(0, '0', 0)(0, '0', 0)(1, '1', 1)
- (2, '2', 3)(0, '0', 0)(1, '1', 1)(0, '0', 0)(3, '3', 8)
- (0, '0', 0)(1, '1', 1)(2, '2', 3)(0, '0', 0)(1, '1', 1)
- (0, '0', 0)(0, '0', 0)(1, '1', 1)(0, '0', 0)(0, '0', 0)
- (1, '1', 1)(2, '2', 3)(0, '0', 0)(1, '1', 1)(0, '0', 0)
- (0, '0', 0)(1, '1', 1)(0, '0', 0);
- emplacer[post_vals]
- (0, '0', 0)(1, '1', 1)(0, '0', 0)(1, '1', 1)(0, '0', 0)
- (2, '2', 3)(0, '0', 0)(1, '1', 1)(0, '0', 0)(1, '1', 1)
- (0, '0', 0)(2, '2', 3)(0, '0', 0)(1, '1', 1)(0, '0', 0)
- (3, '3', 8)(0, '0', 0)(1, '1', 1)(0, '0', 0)(1, '1', 1)
- (0, '0', 0)(2, '2', 3)(0, '0', 0)(1, '1', 1)(0, '0', 0)
- (1, '1', 1)(0, '0', 0)(2, '2', 3)(0, '0', 0)(1, '1', 1)
- (0, '0', 0)(3, '3', 8)(0, '0', 0)(1, '1', 1)(0, '0', 0)
- (1, '1', 1)(0, '0', 0)(2, '2', 3)(0, '0', 0)(1, '1', 1)
- (0, '0', 0)(4, '4', 21)(0, '0', 0)(1, '1', 1)(0, '0', 0)
- (1, '1', 1)(0, '0', 0)(2, '2', 3)(0, '0', 0)(1, '1', 1)
- (0, '0', 0)(1, '1', 1)(0, '0', 0)(2, '2', 3)(0, '0', 0)
- (1, '1', 1)(0, '0', 0)(3, '3', 8)(0, '0', 0)(1, '1', 1)
- (0, '0', 0)(1, '1', 1)(0, '0', 0)(2, '2', 3)(0, '0', 0)
- (1, '1', 1)(0, '0', 0)(5, '5', 55);
- emplacer[bf_d_vals]
- ("able", 0, '0', 0)("able", 1, '1', 1)("able", 2, '2', 3)
- ("able", 3, '3', 8)("able", 4, '4', 21)("baker", 0, '0', 0)
- ("baker", 1, '1', 1)("baker", 2, '2', 3)("baker", 3, '3', 8)
- ("chuck", 0, '0', 0)("chuck", 1, '1', 1)("chuck", 2, '2', 3)
- ("dog", 0, '0', 0)("dog", 1, '1', 1)("easy", 0, '0', 0)
- ("able", 0, '0', 0)("able", 1, '1', 1)("baker", 0, '0', 0)
- ("able", 0, '0', 0)("able", 1, '1', 1)("able", 2, '2', 3)
- ("baker", 0, '0', 0)("baker", 1, '1', 1)("chuck", 0, '0', 0)
- ("able", 0, '0', 0)("able", 1, '1', 1)("able", 2, '2', 3)
- ("able", 3, '3', 8)("baker", 0, '0', 0)("baker", 1, '1', 1)
- ("baker", 2, '2', 3)("chuck", 0, '0', 0)("chuck", 1, '1', 1)
- ("dog", 0, '0', 0)("able", 0, '0', 0)("able", 1, '1', 1)
- ("baker", 0, '0', 0)("able", 0, '0', 0)("able", 1, '1', 1)
- ("able", 2, '2', 3)("baker", 0, '0', 0)("baker", 1, '1', 1)
- ("chuck", 0, '0', 0)("able", 0, '0', 0)("able", 1, '1', 1)
- ("baker", 0, '0', 0)("able", 0, '0', 0)("able", 1, '1', 1)
- ("baker", 0, '0', 0)("able", 0, '0', 0)("able", 1, '1', 1)
- ("baker", 0, '0', 0)("able", 0, '0', 0)("able", 1, '1', 1)
- ("able", 2, '2', 3)("baker", 0, '0', 0)("baker", 1, '1', 1)
- ("chuck", 0, '0', 0)("able", 0, '0', 0)("able", 1, '1', 1)
- ("baker", 0, '0', 0)("able", 0, '0', 0)("able", 1, '1', 1)
- ("baker", 0, '0', 0)("able", 0, '0', 0)("able", 1, '1', 1)
- ("baker", 0, '0', 0);
- emplacer[pre_d_vals]
- ("able", 0, '0', 0)("able", 1, '1', 1)("able", 2, '2', 3)
- ("able", 0, '0', 0)("able", 1, '1', 1)("baker", 0, '0', 0)
- ("able", 3, '3', 8)("able", 0, '0', 0)("able", 1, '1', 1)
- ("able", 2, '2', 3)("able", 0, '0', 0)("able", 1, '1', 1)
- ("baker", 0, '0', 0)("baker", 0, '0', 0)("baker", 1, '1', 1)
- ("chuck", 0, '0', 0)("able", 4, '4', 21)("able", 0, '0', 0)
- ("able", 1, '1', 1)("able", 2, '2', 3)("able", 0, '0', 0)
- ("able", 1, '1', 1)("baker", 0, '0', 0)("able", 3, '3', 8)
- ("able", 0, '0', 0)("able", 1, '1', 1)("able", 2, '2', 3)
- ("able", 0, '0', 0)("able", 1, '1', 1)("baker", 0, '0', 0)
- ("baker", 0, '0', 0)("baker", 1, '1', 1)("chuck", 0, '0', 0)
- ("baker", 0, '0', 0)("baker", 1, '1', 1)("baker", 2, '2', 3)
- ("able", 0, '0', 0)("able", 1, '1', 1)("baker", 0, '0', 0)
- ("chuck", 0, '0', 0)("chuck", 1, '1', 1)("dog", 0, '0', 0)
- ("baker", 0, '0', 0)("baker", 1, '1', 1)("baker", 2, '2', 3)
- ("able", 0, '0', 0)("able", 1, '1', 1)("baker", 0, '0', 0)
- ("baker", 3, '3', 8)("able", 0, '0', 0)("able", 1, '1', 1)
- ("able", 2, '2', 3)("able", 0, '0', 0)("able", 1, '1', 1)
- ("baker", 0, '0', 0)("baker", 0, '0', 0)("baker", 1, '1', 1)
- ("chuck", 0, '0', 0)("chuck", 0, '0', 0)("chuck", 1, '1', 1)
- ("chuck", 2, '2', 3)("able", 0, '0', 0)("able", 1, '1', 1)
- ("baker", 0, '0', 0)("dog", 0, '0', 0)("dog", 1, '1', 1)
- ("easy", 0, '0', 0);
- emplacer[post_d_vals]
- ("able", 0, '0', 0)("able", 1, '1', 1)("able", 0, '0', 0)
- ("able", 1, '1', 1)("baker", 0, '0', 0)("able", 2, '2', 3)
- ("able", 0, '0', 0)("able", 1, '1', 1)("able", 0, '0', 0)
- ("able", 1, '1', 1)("baker", 0, '0', 0)("able", 2, '2', 3)
- ("baker", 0, '0', 0)("baker", 1, '1', 1)("chuck", 0, '0', 0)
- ("able", 3, '3', 8)("able", 0, '0', 0)("able", 1, '1', 1)
- ("able", 0, '0', 0)("able", 1, '1', 1)("baker", 0, '0', 0)
- ("able", 2, '2', 3)("able", 0, '0', 0)("able", 1, '1', 1)
- ("able", 0, '0', 0)("able", 1, '1', 1)("baker", 0, '0', 0)
- ("able", 2, '2', 3)("baker", 0, '0', 0)("baker", 1, '1', 1)
- ("chuck", 0, '0', 0)("able", 3, '3', 8)("baker", 0, '0', 0)
- ("baker", 1, '1', 1)("able", 0, '0', 0)("able", 1, '1', 1)
- ("baker", 0, '0', 0)("baker", 2, '2', 3)("chuck", 0, '0', 0)
- ("chuck", 1, '1', 1)("dog", 0, '0', 0)("able", 4, '4', 21)
- ("baker", 0, '0', 0)("baker", 1, '1', 1)("able", 0, '0', 0)
- ("able", 1, '1', 1)("baker", 0, '0', 0)("baker", 2, '2', 3)
- ("able", 0, '0', 0)("able", 1, '1', 1)("able", 0, '0', 0)
- ("able", 1, '1', 1)("baker", 0, '0', 0)("able", 2, '2', 3)
- ("baker", 0, '0', 0)("baker", 1, '1', 1)("chuck", 0, '0', 0)
- ("baker", 3, '3', 8)("chuck", 0, '0', 0)("chuck", 1, '1', 1)
- ("able", 0, '0', 0)("able", 1, '1', 1)("baker", 0, '0', 0)
- ("chuck", 2, '2', 3)("dog", 0, '0', 0)("dog", 1, '1', 1)
- ("easy", 0, '0', 0);
- emplacer[df_d_vals]
- (boost::tree_node::pre_order_traversal,"able",0,'0',0)
- (boost::tree_node::post_order_traversal,"able",0,'0',0)
- (boost::tree_node::pre_order_traversal,"able",1,'1',1)
- (boost::tree_node::post_order_traversal,"able",1,'1',1)
- (boost::tree_node::pre_order_traversal,"able",2,'2',3)
- (boost::tree_node::pre_order_traversal,"able",0,'0',0)
- (boost::tree_node::post_order_traversal,"able",0,'0',0)
- (boost::tree_node::pre_order_traversal,"able",1,'1',1)
- (boost::tree_node::post_order_traversal,"able",1,'1',1)
- (boost::tree_node::pre_order_traversal,"baker",0,'0',0)
- (boost::tree_node::post_order_traversal,"baker",0,'0',0)
- (boost::tree_node::post_order_traversal,"able",2,'2',3)
- (boost::tree_node::pre_order_traversal,"able",3,'3',8)
- (boost::tree_node::pre_order_traversal,"able",0,'0',0)
- (boost::tree_node::post_order_traversal,"able",0,'0',0)
- (boost::tree_node::pre_order_traversal,"able",1,'1',1)
- (boost::tree_node::post_order_traversal,"able",1,'1',1)
- (boost::tree_node::pre_order_traversal,"able",2,'2',3)
- (boost::tree_node::pre_order_traversal,"able",0,'0',0)
- (boost::tree_node::post_order_traversal,"able",0,'0',0)
- (boost::tree_node::pre_order_traversal,"able",1,'1',1)
- (boost::tree_node::post_order_traversal,"able",1,'1',1)
- (boost::tree_node::pre_order_traversal,"baker",0,'0',0)
- (boost::tree_node::post_order_traversal,"baker",0,'0',0)
- (boost::tree_node::post_order_traversal,"able",2,'2',3)
- (boost::tree_node::pre_order_traversal,"baker",0,'0',0)
- (boost::tree_node::post_order_traversal,"baker",0,'0',0)
- (boost::tree_node::pre_order_traversal,"baker",1,'1',1)
- (boost::tree_node::post_order_traversal,"baker",1,'1',1)
- (boost::tree_node::pre_order_traversal,"chuck",0,'0',0)
- (boost::tree_node::post_order_traversal,"chuck",0,'0',0)
- (boost::tree_node::post_order_traversal,"able",3,'3',8)
- (boost::tree_node::pre_order_traversal,"able",4,'4',21)
- (boost::tree_node::pre_order_traversal,"able",0,'0',0)
- (boost::tree_node::post_order_traversal,"able",0,'0',0)
- (boost::tree_node::pre_order_traversal,"able",1,'1',1)
- (boost::tree_node::post_order_traversal,"able",1,'1',1)
- (boost::tree_node::pre_order_traversal,"able",2,'2',3)
- (boost::tree_node::pre_order_traversal,"able",0,'0',0)
- (boost::tree_node::post_order_traversal,"able",0,'0',0)
- (boost::tree_node::pre_order_traversal,"able",1,'1',1)
- (boost::tree_node::post_order_traversal,"able",1,'1',1)
- (boost::tree_node::pre_order_traversal,"baker",0,'0',0)
- (boost::tree_node::post_order_traversal,"baker",0,'0',0)
- (boost::tree_node::post_order_traversal,"able",2,'2',3)
- (boost::tree_node::pre_order_traversal,"able",3,'3',8)
- (boost::tree_node::pre_order_traversal,"able",0,'0',0)
- (boost::tree_node::post_order_traversal,"able",0,'0',0)
- (boost::tree_node::pre_order_traversal,"able",1,'1',1)
- (boost::tree_node::post_order_traversal,"able",1,'1',1)
- (boost::tree_node::pre_order_traversal,"able",2,'2',3)
- (boost::tree_node::pre_order_traversal,"able",0,'0',0)
- (boost::tree_node::post_order_traversal,"able",0,'0',0)
- (boost::tree_node::pre_order_traversal,"able",1,'1',1)
- (boost::tree_node::post_order_traversal,"able",1,'1',1)
- (boost::tree_node::pre_order_traversal,"baker",0,'0',0)
- (boost::tree_node::post_order_traversal,"baker",0,'0',0)
- (boost::tree_node::post_order_traversal,"able",2,'2',3)
- (boost::tree_node::pre_order_traversal,"baker",0,'0',0)
- (boost::tree_node::post_order_traversal,"baker",0,'0',0)
- (boost::tree_node::pre_order_traversal,"baker",1,'1',1)
- (boost::tree_node::post_order_traversal,"baker",1,'1',1)
- (boost::tree_node::pre_order_traversal,"chuck",0,'0',0)
- (boost::tree_node::post_order_traversal,"chuck",0,'0',0)
- (boost::tree_node::post_order_traversal,"able",3,'3',8)
- (boost::tree_node::pre_order_traversal,"baker",0,'0',0)
- (boost::tree_node::post_order_traversal,"baker",0,'0',0)
- (boost::tree_node::pre_order_traversal,"baker",1,'1',1)
- (boost::tree_node::post_order_traversal,"baker",1,'1',1)
- (boost::tree_node::pre_order_traversal,"baker",2,'2',3)
- (boost::tree_node::pre_order_traversal,"able",0,'0',0)
- (boost::tree_node::post_order_traversal,"able",0,'0',0)
- (boost::tree_node::pre_order_traversal,"able",1,'1',1)
- (boost::tree_node::post_order_traversal,"able",1,'1',1)
- (boost::tree_node::pre_order_traversal,"baker",0,'0',0)
- (boost::tree_node::post_order_traversal,"baker",0,'0',0)
- (boost::tree_node::post_order_traversal,"baker",2,'2',3)
- (boost::tree_node::pre_order_traversal,"chuck",0,'0',0)
- (boost::tree_node::post_order_traversal,"chuck",0,'0',0)
- (boost::tree_node::pre_order_traversal,"chuck",1,'1',1)
- (boost::tree_node::post_order_traversal,"chuck",1,'1',1)
- (boost::tree_node::pre_order_traversal,"dog",0,'0',0)
- (boost::tree_node::post_order_traversal,"dog",0,'0',0)
- (boost::tree_node::post_order_traversal,"able",4,'4',21)
- (boost::tree_node::pre_order_traversal,"baker",0,'0',0)
- (boost::tree_node::post_order_traversal,"baker",0,'0',0)
- (boost::tree_node::pre_order_traversal,"baker",1,'1',1)
- (boost::tree_node::post_order_traversal,"baker",1,'1',1)
- (boost::tree_node::pre_order_traversal,"baker",2,'2',3)
- (boost::tree_node::pre_order_traversal,"able",0,'0',0)
- (boost::tree_node::post_order_traversal,"able",0,'0',0)
- (boost::tree_node::pre_order_traversal,"able",1,'1',1)
- (boost::tree_node::post_order_traversal,"able",1,'1',1)
- (boost::tree_node::pre_order_traversal,"baker",0,'0',0)
- (boost::tree_node::post_order_traversal,"baker",0,'0',0)
- (boost::tree_node::post_order_traversal,"baker",2,'2',3)
- (boost::tree_node::pre_order_traversal,"baker",3,'3',8)
- (boost::tree_node::pre_order_traversal,"able",0,'0',0)
- (boost::tree_node::post_order_traversal,"able",0,'0',0)
- (boost::tree_node::pre_order_traversal,"able",1,'1',1)
- (boost::tree_node::post_order_traversal,"able",1,'1',1)
- (boost::tree_node::pre_order_traversal,"able",2,'2',3)
- (boost::tree_node::pre_order_traversal,"able",0,'0',0)
- (boost::tree_node::post_order_traversal,"able",0,'0',0)
- (boost::tree_node::pre_order_traversal,"able",1,'1',1)
- (boost::tree_node::post_order_traversal,"able",1,'1',1)
- (boost::tree_node::pre_order_traversal,"baker",0,'0',0)
- (boost::tree_node::post_order_traversal,"baker",0,'0',0)
- (boost::tree_node::post_order_traversal,"able",2,'2',3)
- (boost::tree_node::pre_order_traversal,"baker",0,'0',0)
- (boost::tree_node::post_order_traversal,"baker",0,'0',0)
- (boost::tree_node::pre_order_traversal,"baker",1,'1',1)
- (boost::tree_node::post_order_traversal,"baker",1,'1',1)
- (boost::tree_node::pre_order_traversal,"chuck",0,'0',0)
- (boost::tree_node::post_order_traversal,"chuck",0,'0',0)
- (boost::tree_node::post_order_traversal,"baker",3,'3',8)
- (boost::tree_node::pre_order_traversal,"chuck",0,'0',0)
- (boost::tree_node::post_order_traversal,"chuck",0,'0',0)
- (boost::tree_node::pre_order_traversal,"chuck",1,'1',1)
- (boost::tree_node::post_order_traversal,"chuck",1,'1',1)
- (boost::tree_node::pre_order_traversal,"chuck",2,'2',3)
- (boost::tree_node::pre_order_traversal,"able",0,'0',0)
- (boost::tree_node::post_order_traversal,"able",0,'0',0)
- (boost::tree_node::pre_order_traversal,"able",1,'1',1)
- (boost::tree_node::post_order_traversal,"able",1,'1',1)
- (boost::tree_node::pre_order_traversal,"baker",0,'0',0)
- (boost::tree_node::post_order_traversal,"baker",0,'0',0)
- (boost::tree_node::post_order_traversal,"chuck",2,'2',3)
- (boost::tree_node::pre_order_traversal,"dog",0,'0',0)
- (boost::tree_node::post_order_traversal,"dog",0,'0',0)
- (boost::tree_node::pre_order_traversal,"dog",1,'1',1)
- (boost::tree_node::post_order_traversal,"dog",1,'1',1)
- (boost::tree_node::pre_order_traversal,"easy",0,'0',0)
- (boost::tree_node::post_order_traversal,"easy",0,'0',0);
- emplacer[df_vals]
- (boost::tree_node::pre_order_traversal,5,'5',55)
- (boost::tree_node::pre_order_traversal,0,'0',0)
- (boost::tree_node::post_order_traversal,0,'0',0)
- (boost::tree_node::pre_order_traversal,1,'1',1)
- (boost::tree_node::post_order_traversal,1,'1',1)
- (boost::tree_node::pre_order_traversal,2,'2',3)
- (boost::tree_node::pre_order_traversal,0,'0',0)
- (boost::tree_node::post_order_traversal,0,'0',0)
- (boost::tree_node::pre_order_traversal,1,'1',1)
- (boost::tree_node::post_order_traversal,1,'1',1)
- (boost::tree_node::pre_order_traversal,0,'0',0)
- (boost::tree_node::post_order_traversal,0,'0',0)
- (boost::tree_node::post_order_traversal,2,'2',3)
- (boost::tree_node::pre_order_traversal,3,'3',8)
- (boost::tree_node::pre_order_traversal,0,'0',0)
- (boost::tree_node::post_order_traversal,0,'0',0)
- (boost::tree_node::pre_order_traversal,1,'1',1)
- (boost::tree_node::post_order_traversal,1,'1',1)
- (boost::tree_node::pre_order_traversal,2,'2',3)
- (boost::tree_node::pre_order_traversal,0,'0',0)
- (boost::tree_node::post_order_traversal,0,'0',0)
- (boost::tree_node::pre_order_traversal,1,'1',1)
- (boost::tree_node::post_order_traversal,1,'1',1)
- (boost::tree_node::pre_order_traversal,0,'0',0)
- (boost::tree_node::post_order_traversal,0,'0',0)
- (boost::tree_node::post_order_traversal,2,'2',3)
- (boost::tree_node::pre_order_traversal,0,'0',0)
- (boost::tree_node::post_order_traversal,0,'0',0)
- (boost::tree_node::pre_order_traversal,1,'1',1)
- (boost::tree_node::post_order_traversal,1,'1',1)
- (boost::tree_node::pre_order_traversal,0,'0',0)
- (boost::tree_node::post_order_traversal,0,'0',0)
- (boost::tree_node::post_order_traversal,3,'3',8)
- (boost::tree_node::pre_order_traversal,4,'4',21)
- (boost::tree_node::pre_order_traversal,0,'0',0)
- (boost::tree_node::post_order_traversal,0,'0',0)
- (boost::tree_node::pre_order_traversal,1,'1',1)
- (boost::tree_node::post_order_traversal,1,'1',1)
- (boost::tree_node::pre_order_traversal,2,'2',3)
- (boost::tree_node::pre_order_traversal,0,'0',0)
- (boost::tree_node::post_order_traversal,0,'0',0)
- (boost::tree_node::pre_order_traversal,1,'1',1)
- (boost::tree_node::post_order_traversal,1,'1',1)
- (boost::tree_node::pre_order_traversal,0,'0',0)
- (boost::tree_node::post_order_traversal,0,'0',0)
- (boost::tree_node::post_order_traversal,2,'2',3)
- (boost::tree_node::pre_order_traversal,3,'3',8)
- (boost::tree_node::pre_order_traversal,0,'0',0)
- (boost::tree_node::post_order_traversal,0,'0',0)
- (boost::tree_node::pre_order_traversal,1,'1',1)
- (boost::tree_node::post_order_traversal,1,'1',1)
- (boost::tree_node::pre_order_traversal,2,'2',3)
- (boost::tree_node::pre_order_traversal,0,'0',0)
- (boost::tree_node::post_order_traversal,0,'0',0)
- (boost::tree_node::pre_order_traversal,1,'1',1)
- (boost::tree_node::post_order_traversal,1,'1',1)
- (boost::tree_node::pre_order_traversal,0,'0',0)
- (boost::tree_node::post_order_traversal,0,'0',0)
- (boost::tree_node::post_order_traversal,2,'2',3)
- (boost::tree_node::pre_order_traversal,0,'0',0)
- (boost::tree_node::post_order_traversal,0,'0',0)
- (boost::tree_node::pre_order_traversal,1,'1',1)
- (boost::tree_node::post_order_traversal,1,'1',1)
- (boost::tree_node::pre_order_traversal,0,'0',0)
- (boost::tree_node::post_order_traversal,0,'0',0)
- (boost::tree_node::post_order_traversal,3,'3',8)
- (boost::tree_node::pre_order_traversal,0,'0',0)
- (boost::tree_node::post_order_traversal,0,'0',0)
- (boost::tree_node::pre_order_traversal,1,'1',1)
- (boost::tree_node::post_order_traversal,1,'1',1)
- (boost::tree_node::pre_order_traversal,2,'2',3)
- (boost::tree_node::pre_order_traversal,0,'0',0)
- (boost::tree_node::post_order_traversal,0,'0',0)
- (boost::tree_node::pre_order_traversal,1,'1',1)
- (boost::tree_node::post_order_traversal,1,'1',1)
- (boost::tree_node::pre_order_traversal,0,'0',0)
- (boost::tree_node::post_order_traversal,0,'0',0)
- (boost::tree_node::post_order_traversal,2,'2',3)
- (boost::tree_node::pre_order_traversal,0,'0',0)
- (boost::tree_node::post_order_traversal,0,'0',0)
- (boost::tree_node::pre_order_traversal,1,'1',1)
- (boost::tree_node::post_order_traversal,1,'1',1)
- (boost::tree_node::pre_order_traversal,0,'0',0)
- (boost::tree_node::post_order_traversal,0,'0',0)
- (boost::tree_node::post_order_traversal,4,'4',21)
- (boost::tree_node::pre_order_traversal,0,'0',0)
- (boost::tree_node::post_order_traversal,0,'0',0)
- (boost::tree_node::pre_order_traversal,1,'1',1)
- (boost::tree_node::post_order_traversal,1,'1',1)
- (boost::tree_node::pre_order_traversal,2,'2',3)
- (boost::tree_node::pre_order_traversal,0,'0',0)
- (boost::tree_node::post_order_traversal,0,'0',0)
- (boost::tree_node::pre_order_traversal,1,'1',1)
- (boost::tree_node::post_order_traversal,1,'1',1)
- (boost::tree_node::pre_order_traversal,0,'0',0)
- (boost::tree_node::post_order_traversal,0,'0',0)
- (boost::tree_node::post_order_traversal,2,'2',3)
- (boost::tree_node::pre_order_traversal,3,'3',8)
- (boost::tree_node::pre_order_traversal,0,'0',0)
- (boost::tree_node::post_order_traversal,0,'0',0)
- (boost::tree_node::pre_order_traversal,1,'1',1)
- (boost::tree_node::post_order_traversal,1,'1',1)
- (boost::tree_node::pre_order_traversal,2,'2',3)
- (boost::tree_node::pre_order_traversal,0,'0',0)
- (boost::tree_node::post_order_traversal,0,'0',0)
- (boost::tree_node::pre_order_traversal,1,'1',1)
- (boost::tree_node::post_order_traversal,1,'1',1)
- (boost::tree_node::pre_order_traversal,0,'0',0)
- (boost::tree_node::post_order_traversal,0,'0',0)
- (boost::tree_node::post_order_traversal,2,'2',3)
- (boost::tree_node::pre_order_traversal,0,'0',0)
- (boost::tree_node::post_order_traversal,0,'0',0)
- (boost::tree_node::pre_order_traversal,1,'1',1)
- (boost::tree_node::post_order_traversal,1,'1',1)
- (boost::tree_node::pre_order_traversal,0,'0',0)
- (boost::tree_node::post_order_traversal,0,'0',0)
- (boost::tree_node::post_order_traversal,3,'3',8)
- (boost::tree_node::pre_order_traversal,0,'0',0)
- (boost::tree_node::post_order_traversal,0,'0',0)
- (boost::tree_node::pre_order_traversal,1,'1',1)
- (boost::tree_node::post_order_traversal,1,'1',1)
- (boost::tree_node::pre_order_traversal,2,'2',3)
- (boost::tree_node::pre_order_traversal,0,'0',0)
- (boost::tree_node::post_order_traversal,0,'0',0)
- (boost::tree_node::pre_order_traversal,1,'1',1)
- (boost::tree_node::post_order_traversal,1,'1',1)
- (boost::tree_node::pre_order_traversal,0,'0',0)
- (boost::tree_node::post_order_traversal,0,'0',0)
- (boost::tree_node::post_order_traversal,2,'2',3)
- (boost::tree_node::pre_order_traversal,0,'0',0)
- (boost::tree_node::post_order_traversal,0,'0',0)
- (boost::tree_node::pre_order_traversal,1,'1',1)
- (boost::tree_node::post_order_traversal,1,'1',1)
- (boost::tree_node::pre_order_traversal,0,'0',0)
- (boost::tree_node::post_order_traversal,0,'0',0)
- (boost::tree_node::post_order_traversal,5,'5',55);
- test_associative_node<f_node_case>(
- f_root
- , bf_vals
- , bf_d_vals
- , pre_vals
- , pre_d_vals
- , post_vals
- , post_d_vals
- , df_vals
- , df_d_vals
- );
-
- put(
- boost::tree_node::dereference_iterator(f_root.find(names[2]))
- , example_keys::your_uint()
- , 7
- );
- bf_vals.clear();
- bf_d_vals.clear();
- pre_vals.clear();
- pre_d_vals.clear();
- post_vals.clear();
- post_d_vals.clear();
- df_vals.clear();
- df_d_vals.clear();
-
- emplacer[bf_vals]
- (5, '5', 62)(0, '0', 0)(1, '1', 1)(2, '2', 3)(3, '3', 8)
- (4, '4', 21)(0, '0', 0)(1, '1', 1)(2, '2', 3)(3, '3', 8)
- (7, '0', 7)(1, '1', 1)(2, '2', 3)(0, '0', 0)(1, '1', 1)
- (0, '0', 0)(0, '0', 0)(1, '1', 1)(0, '0', 0)(0, '0', 0)
- (1, '1', 1)(2, '2', 3)(0, '0', 0)(1, '1', 1)(0, '0', 0)
- (0, '0', 0)(1, '1', 1)(2, '2', 3)(3, '3', 8)(0, '0', 0)
- (1, '1', 1)(2, '2', 3)(0, '0', 0)(1, '1', 1)(0, '0', 0)
- (0, '0', 0)(1, '1', 1)(0, '0', 0)(0, '0', 0)(1, '1', 1)
- (2, '2', 3)(0, '0', 0)(1, '1', 1)(0, '0', 0)(0, '0', 0)
- (1, '1', 1)(0, '0', 0)(0, '0', 0)(1, '1', 1)(0, '0', 0)
- (0, '0', 0)(1, '1', 1)(0, '0', 0)(0, '0', 0)(1, '1', 1)
- (2, '2', 3)(0, '0', 0)(1, '1', 1)(0, '0', 0)(0, '0', 0)
- (1, '1', 1)(0, '0', 0)(0, '0', 0)(1, '1', 1)(0, '0', 0)
- (0, '0', 0)(1, '1', 1)(0, '0', 0);
- emplacer[pre_vals]
- (5, '5', 62)(0, '0', 0)(1, '1', 1)(2, '2', 3)(0, '0', 0)
- (1, '1', 1)(0, '0', 0)(3, '3', 8)(0, '0', 0)(1, '1', 1)
- (2, '2', 3)(0, '0', 0)(1, '1', 1)(0, '0', 0)(0, '0', 0)
- (1, '1', 1)(0, '0', 0)(4, '4', 21)(0, '0', 0)(1, '1', 1)
- (2, '2', 3)(0, '0', 0)(1, '1', 1)(0, '0', 0)(3, '3', 8)
- (0, '0', 0)(1, '1', 1)(2, '2', 3)(0, '0', 0)(1, '1', 1)
- (0, '0', 0)(0, '0', 0)(1, '1', 1)(0, '0', 0)(0, '0', 0)
- (1, '1', 1)(2, '2', 3)(0, '0', 0)(1, '1', 1)(0, '0', 0)
- (0, '0', 0)(1, '1', 1)(0, '0', 0)(0, '0', 0)(1, '1', 1)
- (2, '2', 3)(0, '0', 0)(1, '1', 1)(0, '0', 0)(3, '3', 8)
- (0, '0', 0)(1, '1', 1)(2, '2', 3)(0, '0', 0)(1, '1', 1)
- (0, '0', 0)(0, '0', 0)(1, '1', 1)(0, '0', 0)(7, '0', 7)
- (1, '1', 1)(2, '2', 3)(0, '0', 0)(1, '1', 1)(0, '0', 0)
- (0, '0', 0)(1, '1', 1)(0, '0', 0);
- emplacer[post_vals]
- (0, '0', 0)(1, '1', 1)(0, '0', 0)(1, '1', 1)(0, '0', 0)
- (2, '2', 3)(0, '0', 0)(1, '1', 1)(0, '0', 0)(1, '1', 1)
- (0, '0', 0)(2, '2', 3)(0, '0', 0)(1, '1', 1)(0, '0', 0)
- (3, '3', 8)(0, '0', 0)(1, '1', 1)(0, '0', 0)(1, '1', 1)
- (0, '0', 0)(2, '2', 3)(0, '0', 0)(1, '1', 1)(0, '0', 0)
- (1, '1', 1)(0, '0', 0)(2, '2', 3)(0, '0', 0)(1, '1', 1)
- (0, '0', 0)(3, '3', 8)(0, '0', 0)(1, '1', 1)(0, '0', 0)
- (1, '1', 1)(0, '0', 0)(2, '2', 3)(0, '0', 0)(1, '1', 1)
- (0, '0', 0)(4, '4', 21)(0, '0', 0)(1, '1', 1)(0, '0', 0)
- (1, '1', 1)(0, '0', 0)(2, '2', 3)(0, '0', 0)(1, '1', 1)
- (0, '0', 0)(1, '1', 1)(0, '0', 0)(2, '2', 3)(0, '0', 0)
- (1, '1', 1)(0, '0', 0)(3, '3', 8)(7, '0', 7)(1, '1', 1)
- (0, '0', 0)(1, '1', 1)(0, '0', 0)(2, '2', 3)(0, '0', 0)
- (1, '1', 1)(0, '0', 0)(5, '5', 62);
- emplacer[bf_d_vals]
- ("able", 0, '0', 0)("able", 1, '1', 1)("able", 2, '2', 3)
- ("able", 3, '3', 8)("able", 4, '4', 21)("baker", 0, '0', 0)
- ("baker", 1, '1', 1)("baker", 2, '2', 3)("baker", 3, '3', 8)
- ("chuck", 7, '0', 7)("chuck", 1, '1', 1)("chuck", 2, '2', 3)
- ("dog", 0, '0', 0)("dog", 1, '1', 1)("easy", 0, '0', 0)
- ("able", 0, '0', 0)("able", 1, '1', 1)("baker", 0, '0', 0)
- ("able", 0, '0', 0)("able", 1, '1', 1)("able", 2, '2', 3)
- ("baker", 0, '0', 0)("baker", 1, '1', 1)("chuck", 0, '0', 0)
- ("able", 0, '0', 0)("able", 1, '1', 1)("able", 2, '2', 3)
- ("able", 3, '3', 8)("baker", 0, '0', 0)("baker", 1, '1', 1)
- ("baker", 2, '2', 3)("chuck", 0, '0', 0)("chuck", 1, '1', 1)
- ("dog", 0, '0', 0)("able", 0, '0', 0)("able", 1, '1', 1)
- ("baker", 0, '0', 0)("able", 0, '0', 0)("able", 1, '1', 1)
- ("able", 2, '2', 3)("baker", 0, '0', 0)("baker", 1, '1', 1)
- ("chuck", 0, '0', 0)("able", 0, '0', 0)("able", 1, '1', 1)
- ("baker", 0, '0', 0)("able", 0, '0', 0)("able", 1, '1', 1)
- ("baker", 0, '0', 0)("able", 0, '0', 0)("able", 1, '1', 1)
- ("baker", 0, '0', 0)("able", 0, '0', 0)("able", 1, '1', 1)
- ("able", 2, '2', 3)("baker", 0, '0', 0)("baker", 1, '1', 1)
- ("chuck", 0, '0', 0)("able", 0, '0', 0)("able", 1, '1', 1)
- ("baker", 0, '0', 0)("able", 0, '0', 0)("able", 1, '1', 1)
- ("baker", 0, '0', 0)("able", 0, '0', 0)("able", 1, '1', 1)
- ("baker", 0, '0', 0);
- emplacer[pre_d_vals]
- ("able", 0, '0', 0)("able", 1, '1', 1)("able", 2, '2', 3)
- ("able", 0, '0', 0)("able", 1, '1', 1)("baker", 0, '0', 0)
- ("able", 3, '3', 8)("able", 0, '0', 0)("able", 1, '1', 1)
- ("able", 2, '2', 3)("able", 0, '0', 0)("able", 1, '1', 1)
- ("baker", 0, '0', 0)("baker", 0, '0', 0)("baker", 1, '1', 1)
- ("chuck", 0, '0', 0)("able", 4, '4', 21)("able", 0, '0', 0)
- ("able", 1, '1', 1)("able", 2, '2', 3)("able", 0, '0', 0)
- ("able", 1, '1', 1)("baker", 0, '0', 0)("able", 3, '3', 8)
- ("able", 0, '0', 0)("able", 1, '1', 1)("able", 2, '2', 3)
- ("able", 0, '0', 0)("able", 1, '1', 1)("baker", 0, '0', 0)
- ("baker", 0, '0', 0)("baker", 1, '1', 1)("chuck", 0, '0', 0)
- ("baker", 0, '0', 0)("baker", 1, '1', 1)("baker", 2, '2', 3)
- ("able", 0, '0', 0)("able", 1, '1', 1)("baker", 0, '0', 0)
- ("chuck", 0, '0', 0)("chuck", 1, '1', 1)("dog", 0, '0', 0)
- ("baker", 0, '0', 0)("baker", 1, '1', 1)("baker", 2, '2', 3)
- ("able", 0, '0', 0)("able", 1, '1', 1)("baker", 0, '0', 0)
- ("baker", 3, '3', 8)("able", 0, '0', 0)("able", 1, '1', 1)
- ("able", 2, '2', 3)("able", 0, '0', 0)("able", 1, '1', 1)
- ("baker", 0, '0', 0)("baker", 0, '0', 0)("baker", 1, '1', 1)
- ("chuck", 0, '0', 0)("chuck", 7, '0', 7)("chuck", 1, '1', 1)
- ("chuck", 2, '2', 3)("able", 0, '0', 0)("able", 1, '1', 1)
- ("baker", 0, '0', 0)("dog", 0, '0', 0)("dog", 1, '1', 1)
- ("easy", 0, '0', 0);
- emplacer[post_d_vals]
- ("able", 0, '0', 0)("able", 1, '1', 1)("able", 0, '0', 0)
- ("able", 1, '1', 1)("baker", 0, '0', 0)("able", 2, '2', 3)
- ("able", 0, '0', 0)("able", 1, '1', 1)("able", 0, '0', 0)
- ("able", 1, '1', 1)("baker", 0, '0', 0)("able", 2, '2', 3)
- ("baker", 0, '0', 0)("baker", 1, '1', 1)("chuck", 0, '0', 0)
- ("able", 3, '3', 8)("able", 0, '0', 0)("able", 1, '1', 1)
- ("able", 0, '0', 0)("able", 1, '1', 1)("baker", 0, '0', 0)
- ("able", 2, '2', 3)("able", 0, '0', 0)("able", 1, '1', 1)
- ("able", 0, '0', 0)("able", 1, '1', 1)("baker", 0, '0', 0)
- ("able", 2, '2', 3)("baker", 0, '0', 0)("baker", 1, '1', 1)
- ("chuck", 0, '0', 0)("able", 3, '3', 8)("baker", 0, '0', 0)
- ("baker", 1, '1', 1)("able", 0, '0', 0)("able", 1, '1', 1)
- ("baker", 0, '0', 0)("baker", 2, '2', 3)("chuck", 0, '0', 0)
- ("chuck", 1, '1', 1)("dog", 0, '0', 0)("able", 4, '4', 21)
- ("baker", 0, '0', 0)("baker", 1, '1', 1)("able", 0, '0', 0)
- ("able", 1, '1', 1)("baker", 0, '0', 0)("baker", 2, '2', 3)
- ("able", 0, '0', 0)("able", 1, '1', 1)("able", 0, '0', 0)
- ("able", 1, '1', 1)("baker", 0, '0', 0)("able", 2, '2', 3)
- ("baker", 0, '0', 0)("baker", 1, '1', 1)("chuck", 0, '0', 0)
- ("baker", 3, '3', 8)("chuck", 7, '0', 7)("chuck", 1, '1', 1)
- ("able", 0, '0', 0)("able", 1, '1', 1)("baker", 0, '0', 0)
- ("chuck", 2, '2', 3)("dog", 0, '0', 0)("dog", 1, '1', 1)
- ("easy", 0, '0', 0);
- emplacer[df_d_vals]
- (boost::tree_node::pre_order_traversal,"able",0,'0',0)
- (boost::tree_node::post_order_traversal,"able",0,'0',0)
- (boost::tree_node::pre_order_traversal,"able",1,'1',1)
- (boost::tree_node::post_order_traversal,"able",1,'1',1)
- (boost::tree_node::pre_order_traversal,"able",2,'2',3)
- (boost::tree_node::pre_order_traversal,"able",0,'0',0)
- (boost::tree_node::post_order_traversal,"able",0,'0',0)
- (boost::tree_node::pre_order_traversal,"able",1,'1',1)
- (boost::tree_node::post_order_traversal,"able",1,'1',1)
- (boost::tree_node::pre_order_traversal,"baker",0,'0',0)
- (boost::tree_node::post_order_traversal,"baker",0,'0',0)
- (boost::tree_node::post_order_traversal,"able",2,'2',3)
- (boost::tree_node::pre_order_traversal,"able",3,'3',8)
- (boost::tree_node::pre_order_traversal,"able",0,'0',0)
- (boost::tree_node::post_order_traversal,"able",0,'0',0)
- (boost::tree_node::pre_order_traversal,"able",1,'1',1)
- (boost::tree_node::post_order_traversal,"able",1,'1',1)
- (boost::tree_node::pre_order_traversal,"able",2,'2',3)
- (boost::tree_node::pre_order_traversal,"able",0,'0',0)
- (boost::tree_node::post_order_traversal,"able",0,'0',0)
- (boost::tree_node::pre_order_traversal,"able",1,'1',1)
- (boost::tree_node::post_order_traversal,"able",1,'1',1)
- (boost::tree_node::pre_order_traversal,"baker",0,'0',0)
- (boost::tree_node::post_order_traversal,"baker",0,'0',0)
- (boost::tree_node::post_order_traversal,"able",2,'2',3)
- (boost::tree_node::pre_order_traversal,"baker",0,'0',0)
- (boost::tree_node::post_order_traversal,"baker",0,'0',0)
- (boost::tree_node::pre_order_traversal,"baker",1,'1',1)
- (boost::tree_node::post_order_traversal,"baker",1,'1',1)
- (boost::tree_node::pre_order_traversal,"chuck",0,'0',0)
- (boost::tree_node::post_order_traversal,"chuck",0,'0',0)
- (boost::tree_node::post_order_traversal,"able",3,'3',8)
- (boost::tree_node::pre_order_traversal,"able",4,'4',21)
- (boost::tree_node::pre_order_traversal,"able",0,'0',0)
- (boost::tree_node::post_order_traversal,"able",0,'0',0)
- (boost::tree_node::pre_order_traversal,"able",1,'1',1)
- (boost::tree_node::post_order_traversal,"able",1,'1',1)
- (boost::tree_node::pre_order_traversal,"able",2,'2',3)
- (boost::tree_node::pre_order_traversal,"able",0,'0',0)
- (boost::tree_node::post_order_traversal,"able",0,'0',0)
- (boost::tree_node::pre_order_traversal,"able",1,'1',1)
- (boost::tree_node::post_order_traversal,"able",1,'1',1)
- (boost::tree_node::pre_order_traversal,"baker",0,'0',0)
- (boost::tree_node::post_order_traversal,"baker",0,'0',0)
- (boost::tree_node::post_order_traversal,"able",2,'2',3)
- (boost::tree_node::pre_order_traversal,"able",3,'3',8)
- (boost::tree_node::pre_order_traversal,"able",0,'0',0)
- (boost::tree_node::post_order_traversal,"able",0,'0',0)
- (boost::tree_node::pre_order_traversal,"able",1,'1',1)
- (boost::tree_node::post_order_traversal,"able",1,'1',1)
- (boost::tree_node::pre_order_traversal,"able",2,'2',3)
- (boost::tree_node::pre_order_traversal,"able",0,'0',0)
- (boost::tree_node::post_order_traversal,"able",0,'0',0)
- (boost::tree_node::pre_order_traversal,"able",1,'1',1)
- (boost::tree_node::post_order_traversal,"able",1,'1',1)
- (boost::tree_node::pre_order_traversal,"baker",0,'0',0)
- (boost::tree_node::post_order_traversal,"baker",0,'0',0)
- (boost::tree_node::post_order_traversal,"able",2,'2',3)
- (boost::tree_node::pre_order_traversal,"baker",0,'0',0)
- (boost::tree_node::post_order_traversal,"baker",0,'0',0)
- (boost::tree_node::pre_order_traversal,"baker",1,'1',1)
- (boost::tree_node::post_order_traversal,"baker",1,'1',1)
- (boost::tree_node::pre_order_traversal,"chuck",0,'0',0)
- (boost::tree_node::post_order_traversal,"chuck",0,'0',0)
- (boost::tree_node::post_order_traversal,"able",3,'3',8)
- (boost::tree_node::pre_order_traversal,"baker",0,'0',0)
- (boost::tree_node::post_order_traversal,"baker",0,'0',0)
- (boost::tree_node::pre_order_traversal,"baker",1,'1',1)
- (boost::tree_node::post_order_traversal,"baker",1,'1',1)
- (boost::tree_node::pre_order_traversal,"baker",2,'2',3)
- (boost::tree_node::pre_order_traversal,"able",0,'0',0)
- (boost::tree_node::post_order_traversal,"able",0,'0',0)
- (boost::tree_node::pre_order_traversal,"able",1,'1',1)
- (boost::tree_node::post_order_traversal,"able",1,'1',1)
- (boost::tree_node::pre_order_traversal,"baker",0,'0',0)
- (boost::tree_node::post_order_traversal,"baker",0,'0',0)
- (boost::tree_node::post_order_traversal,"baker",2,'2',3)
- (boost::tree_node::pre_order_traversal,"chuck",0,'0',0)
- (boost::tree_node::post_order_traversal,"chuck",0,'0',0)
- (boost::tree_node::pre_order_traversal,"chuck",1,'1',1)
- (boost::tree_node::post_order_traversal,"chuck",1,'1',1)
- (boost::tree_node::pre_order_traversal,"dog",0,'0',0)
- (boost::tree_node::post_order_traversal,"dog",0,'0',0)
- (boost::tree_node::post_order_traversal,"able",4,'4',21)
- (boost::tree_node::pre_order_traversal,"baker",0,'0',0)
- (boost::tree_node::post_order_traversal,"baker",0,'0',0)
- (boost::tree_node::pre_order_traversal,"baker",1,'1',1)
- (boost::tree_node::post_order_traversal,"baker",1,'1',1)
- (boost::tree_node::pre_order_traversal,"baker",2,'2',3)
- (boost::tree_node::pre_order_traversal,"able",0,'0',0)
- (boost::tree_node::post_order_traversal,"able",0,'0',0)
- (boost::tree_node::pre_order_traversal,"able",1,'1',1)
- (boost::tree_node::post_order_traversal,"able",1,'1',1)
- (boost::tree_node::pre_order_traversal,"baker",0,'0',0)
- (boost::tree_node::post_order_traversal,"baker",0,'0',0)
- (boost::tree_node::post_order_traversal,"baker",2,'2',3)
- (boost::tree_node::pre_order_traversal,"baker",3,'3',8)
- (boost::tree_node::pre_order_traversal,"able",0,'0',0)
- (boost::tree_node::post_order_traversal,"able",0,'0',0)
- (boost::tree_node::pre_order_traversal,"able",1,'1',1)
- (boost::tree_node::post_order_traversal,"able",1,'1',1)
- (boost::tree_node::pre_order_traversal,"able",2,'2',3)
- (boost::tree_node::pre_order_traversal,"able",0,'0',0)
- (boost::tree_node::post_order_traversal,"able",0,'0',0)
- (boost::tree_node::pre_order_traversal,"able",1,'1',1)
- (boost::tree_node::post_order_traversal,"able",1,'1',1)
- (boost::tree_node::pre_order_traversal,"baker",0,'0',0)
- (boost::tree_node::post_order_traversal,"baker",0,'0',0)
- (boost::tree_node::post_order_traversal,"able",2,'2',3)
- (boost::tree_node::pre_order_traversal,"baker",0,'0',0)
- (boost::tree_node::post_order_traversal,"baker",0,'0',0)
- (boost::tree_node::pre_order_traversal,"baker",1,'1',1)
- (boost::tree_node::post_order_traversal,"baker",1,'1',1)
- (boost::tree_node::pre_order_traversal,"chuck",0,'0',0)
- (boost::tree_node::post_order_traversal,"chuck",0,'0',0)
- (boost::tree_node::post_order_traversal,"baker",3,'3',8)
- (boost::tree_node::pre_order_traversal,"chuck",7,'0',7)
- (boost::tree_node::post_order_traversal,"chuck",7,'0',7)
- (boost::tree_node::pre_order_traversal,"chuck",1,'1',1)
- (boost::tree_node::post_order_traversal,"chuck",1,'1',1)
- (boost::tree_node::pre_order_traversal,"chuck",2,'2',3)
- (boost::tree_node::pre_order_traversal,"able",0,'0',0)
- (boost::tree_node::post_order_traversal,"able",0,'0',0)
- (boost::tree_node::pre_order_traversal,"able",1,'1',1)
- (boost::tree_node::post_order_traversal,"able",1,'1',1)
- (boost::tree_node::pre_order_traversal,"baker",0,'0',0)
- (boost::tree_node::post_order_traversal,"baker",0,'0',0)
- (boost::tree_node::post_order_traversal,"chuck",2,'2',3)
- (boost::tree_node::pre_order_traversal,"dog",0,'0',0)
- (boost::tree_node::post_order_traversal,"dog",0,'0',0)
- (boost::tree_node::pre_order_traversal,"dog",1,'1',1)
- (boost::tree_node::post_order_traversal,"dog",1,'1',1)
- (boost::tree_node::pre_order_traversal,"easy",0,'0',0)
- (boost::tree_node::post_order_traversal,"easy",0,'0',0);
- emplacer[df_vals]
- (boost::tree_node::pre_order_traversal,5,'5',62)
- (boost::tree_node::pre_order_traversal,0,'0',0)
- (boost::tree_node::post_order_traversal,0,'0',0)
- (boost::tree_node::pre_order_traversal,1,'1',1)
- (boost::tree_node::post_order_traversal,1,'1',1)
- (boost::tree_node::pre_order_traversal,2,'2',3)
- (boost::tree_node::pre_order_traversal,0,'0',0)
- (boost::tree_node::post_order_traversal,0,'0',0)
- (boost::tree_node::pre_order_traversal,1,'1',1)
- (boost::tree_node::post_order_traversal,1,'1',1)
- (boost::tree_node::pre_order_traversal,0,'0',0)
- (boost::tree_node::post_order_traversal,0,'0',0)
- (boost::tree_node::post_order_traversal,2,'2',3)
- (boost::tree_node::pre_order_traversal,3,'3',8)
- (boost::tree_node::pre_order_traversal,0,'0',0)
- (boost::tree_node::post_order_traversal,0,'0',0)
- (boost::tree_node::pre_order_traversal,1,'1',1)
- (boost::tree_node::post_order_traversal,1,'1',1)
- (boost::tree_node::pre_order_traversal,2,'2',3)
- (boost::tree_node::pre_order_traversal,0,'0',0)
- (boost::tree_node::post_order_traversal,0,'0',0)
- (boost::tree_node::pre_order_traversal,1,'1',1)
- (boost::tree_node::post_order_traversal,1,'1',1)
- (boost::tree_node::pre_order_traversal,0,'0',0)
- (boost::tree_node::post_order_traversal,0,'0',0)
- (boost::tree_node::post_order_traversal,2,'2',3)
- (boost::tree_node::pre_order_traversal,0,'0',0)
- (boost::tree_node::post_order_traversal,0,'0',0)
- (boost::tree_node::pre_order_traversal,1,'1',1)
- (boost::tree_node::post_order_traversal,1,'1',1)
- (boost::tree_node::pre_order_traversal,0,'0',0)
- (boost::tree_node::post_order_traversal,0,'0',0)
- (boost::tree_node::post_order_traversal,3,'3',8)
- (boost::tree_node::pre_order_traversal,4,'4',21)
- (boost::tree_node::pre_order_traversal,0,'0',0)
- (boost::tree_node::post_order_traversal,0,'0',0)
- (boost::tree_node::pre_order_traversal,1,'1',1)
- (boost::tree_node::post_order_traversal,1,'1',1)
- (boost::tree_node::pre_order_traversal,2,'2',3)
- (boost::tree_node::pre_order_traversal,0,'0',0)
- (boost::tree_node::post_order_traversal,0,'0',0)
- (boost::tree_node::pre_order_traversal,1,'1',1)
- (boost::tree_node::post_order_traversal,1,'1',1)
- (boost::tree_node::pre_order_traversal,0,'0',0)
- (boost::tree_node::post_order_traversal,0,'0',0)
- (boost::tree_node::post_order_traversal,2,'2',3)
- (boost::tree_node::pre_order_traversal,3,'3',8)
- (boost::tree_node::pre_order_traversal,0,'0',0)
- (boost::tree_node::post_order_traversal,0,'0',0)
- (boost::tree_node::pre_order_traversal,1,'1',1)
- (boost::tree_node::post_order_traversal,1,'1',1)
- (boost::tree_node::pre_order_traversal,2,'2',3)
- (boost::tree_node::pre_order_traversal,0,'0',0)
- (boost::tree_node::post_order_traversal,0,'0',0)
- (boost::tree_node::pre_order_traversal,1,'1',1)
- (boost::tree_node::post_order_traversal,1,'1',1)
- (boost::tree_node::pre_order_traversal,0,'0',0)
- (boost::tree_node::post_order_traversal,0,'0',0)
- (boost::tree_node::post_order_traversal,2,'2',3)
- (boost::tree_node::pre_order_traversal,0,'0',0)
- (boost::tree_node::post_order_traversal,0,'0',0)
- (boost::tree_node::pre_order_traversal,1,'1',1)
- (boost::tree_node::post_order_traversal,1,'1',1)
- (boost::tree_node::pre_order_traversal,0,'0',0)
- (boost::tree_node::post_order_traversal,0,'0',0)
- (boost::tree_node::post_order_traversal,3,'3',8)
- (boost::tree_node::pre_order_traversal,0,'0',0)
- (boost::tree_node::post_order_traversal,0,'0',0)
- (boost::tree_node::pre_order_traversal,1,'1',1)
- (boost::tree_node::post_order_traversal,1,'1',1)
- (boost::tree_node::pre_order_traversal,2,'2',3)
- (boost::tree_node::pre_order_traversal,0,'0',0)
- (boost::tree_node::post_order_traversal,0,'0',0)
- (boost::tree_node::pre_order_traversal,1,'1',1)
- (boost::tree_node::post_order_traversal,1,'1',1)
- (boost::tree_node::pre_order_traversal,0,'0',0)
- (boost::tree_node::post_order_traversal,0,'0',0)
- (boost::tree_node::post_order_traversal,2,'2',3)
- (boost::tree_node::pre_order_traversal,0,'0',0)
- (boost::tree_node::post_order_traversal,0,'0',0)
- (boost::tree_node::pre_order_traversal,1,'1',1)
- (boost::tree_node::post_order_traversal,1,'1',1)
- (boost::tree_node::pre_order_traversal,0,'0',0)
- (boost::tree_node::post_order_traversal,0,'0',0)
- (boost::tree_node::post_order_traversal,4,'4',21)
- (boost::tree_node::pre_order_traversal,0,'0',0)
- (boost::tree_node::post_order_traversal,0,'0',0)
- (boost::tree_node::pre_order_traversal,1,'1',1)
- (boost::tree_node::post_order_traversal,1,'1',1)
- (boost::tree_node::pre_order_traversal,2,'2',3)
- (boost::tree_node::pre_order_traversal,0,'0',0)
- (boost::tree_node::post_order_traversal,0,'0',0)
- (boost::tree_node::pre_order_traversal,1,'1',1)
- (boost::tree_node::post_order_traversal,1,'1',1)
- (boost::tree_node::pre_order_traversal,0,'0',0)
- (boost::tree_node::post_order_traversal,0,'0',0)
- (boost::tree_node::post_order_traversal,2,'2',3)
- (boost::tree_node::pre_order_traversal,3,'3',8)
- (boost::tree_node::pre_order_traversal,0,'0',0)
- (boost::tree_node::post_order_traversal,0,'0',0)
- (boost::tree_node::pre_order_traversal,1,'1',1)
- (boost::tree_node::post_order_traversal,1,'1',1)
- (boost::tree_node::pre_order_traversal,2,'2',3)
- (boost::tree_node::pre_order_traversal,0,'0',0)
- (boost::tree_node::post_order_traversal,0,'0',0)
- (boost::tree_node::pre_order_traversal,1,'1',1)
- (boost::tree_node::post_order_traversal,1,'1',1)
- (boost::tree_node::pre_order_traversal,0,'0',0)
- (boost::tree_node::post_order_traversal,0,'0',0)
- (boost::tree_node::post_order_traversal,2,'2',3)
- (boost::tree_node::pre_order_traversal,0,'0',0)
- (boost::tree_node::post_order_traversal,0,'0',0)
- (boost::tree_node::pre_order_traversal,1,'1',1)
- (boost::tree_node::post_order_traversal,1,'1',1)
- (boost::tree_node::pre_order_traversal,0,'0',0)
- (boost::tree_node::post_order_traversal,0,'0',0)
- (boost::tree_node::post_order_traversal,3,'3',8)
- (boost::tree_node::pre_order_traversal,7,'0',7)
- (boost::tree_node::post_order_traversal,7,'0',7)
- (boost::tree_node::pre_order_traversal,1,'1',1)
- (boost::tree_node::post_order_traversal,1,'1',1)
- (boost::tree_node::pre_order_traversal,2,'2',3)
- (boost::tree_node::pre_order_traversal,0,'0',0)
- (boost::tree_node::post_order_traversal,0,'0',0)
- (boost::tree_node::pre_order_traversal,1,'1',1)
- (boost::tree_node::post_order_traversal,1,'1',1)
- (boost::tree_node::pre_order_traversal,0,'0',0)
- (boost::tree_node::post_order_traversal,0,'0',0)
- (boost::tree_node::post_order_traversal,2,'2',3)
- (boost::tree_node::pre_order_traversal,0,'0',0)
- (boost::tree_node::post_order_traversal,0,'0',0)
- (boost::tree_node::pre_order_traversal,1,'1',1)
- (boost::tree_node::post_order_traversal,1,'1',1)
- (boost::tree_node::pre_order_traversal,0,'0',0)
- (boost::tree_node::post_order_traversal,0,'0',0)
- (boost::tree_node::post_order_traversal,5,'5',62);
- test_associative_node<f_node_case>(
- f_root
- , bf_vals
- , bf_d_vals
- , pre_vals
- , pre_d_vals
- , post_vals
- , post_d_vals
- , df_vals
- , df_d_vals
- );
- }
-#endif // BOOST_TREE_NODE_CAN_USE_FUSION_WITH_TYPEOF
-}
-
-#if defined BOOST_MSVC
- #pragma warning (pop)
-#endif
-
-#if defined BOOST_TYPEOF_EMULATION
-#include <boost/typeof/boost/container_gen/selectors.hpp>
-#include <boost/typeof/boost/container_gen/c_str_cmp_selectors.hpp>
-#include <boost/typeof/boost/ptr_container/ptr_map.hpp>
-#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-#include <boost/typeof/boost/mpl/bool.hpp>
-#include <boost/typeof/boost/container/map.hpp>
-#include <boost/typeof/boost/container/flat_map.hpp>
-#endif
-#else // !defined BOOST_TYPEOF_EMULATION
-#include <boost/container_gen/selectors.hpp>
-#include <boost/container_gen/c_str_cmp_selectors.hpp>
-#endif // BOOST_TYPEOF_EMULATION
-
-int test_main(int argc, char** argv)
-{
- test_unique_associative<
- boost::ptr_map_selector<boost::c_str_ordering_selector>
- >();
- test_multiple_associative<
- boost::ptr_multimap_selector<boost::c_str_ordering_selector>
- >();
-#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- test_unique_associative<
- boost::map_selector<boost::mpl::true_,boost::c_str_ordering_selector>
- >();
- test_multiple_associative<
- boost::multimap_selector<
- boost::mpl::true_
- , boost::c_str_ordering_selector
- >
- >();
- test_unique_associative<
- boost::flat_map_selector<boost::c_str_ordering_selector>
- >();
- test_multiple_associative<
- boost::flat_multimap_selector<boost::c_str_ordering_selector>
- >();
-#endif
-
- return 0;
-}
-

Deleted: sandbox/tree_node/libs/tree_node/test/avl_tree.hpp
==============================================================================
--- sandbox/tree_node/libs/tree_node/test/avl_tree.hpp 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84956)
+++ /dev/null 00:00:00 1970 (deleted)
@@ -1,36 +0,0 @@
-// 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)
-
-#ifndef LIBS_TREE_NODE_TEST_AVL_TREE_HPP_INCLUDED
-#define LIBS_TREE_NODE_TEST_AVL_TREE_HPP_INCLUDED
-
-template <typename Tree, typename Values>
-void test_avl_tree()
-{
- Tree avl_tree;
- Values values;
-
- BOOST_CHECK(avl_tree.empty());
- BOOST_CHECK(0 == avl_tree.size());
-
- test_insert(avl_tree, values, 13);
- test_insert(avl_tree, values, 8);
- test_insert(avl_tree, values, 1);
- test_insert(avl_tree, values, 6);
- test_insert(avl_tree, values, 11);
- test_insert(avl_tree, values, 17);
- test_insert(avl_tree, values, 15);
- test_insert(avl_tree, values, 22);
- test_insert(avl_tree, values, 25);
- test_insert(avl_tree, values, 27);
- test_insert(avl_tree, values, 20);
- test_insert(avl_tree, values, 21);
- test_erase(avl_tree, values, 1);
- test_erase(avl_tree, values, 11);
- test_erase(avl_tree, values, 15);
-}
-
-#endif // LIBS_TREE_NODE_TEST_AVL_TREE_HPP_INCLUDED
-

Deleted: sandbox/tree_node/libs/tree_node/test/binary_node.cpp
==============================================================================
--- sandbox/tree_node/libs/tree_node/test/binary_node.cpp 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84956)
+++ /dev/null 00:00:00 1970 (deleted)
@@ -1,3040 +0,0 @@
-// 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)
-
-#include <boost/config.hpp>
-
-#if defined BOOST_MSVC
- #pragma warning (push)
- #pragma warning (disable : 4996) // fn called w/params that may be unsafe
-#endif
-
-#include <boost/tuple/tuple.hpp>
-#include <boost/typeof/boost/rational.hpp>
-#include <boost/typeof/boost/container_gen/selectors.hpp>
-#include <boost/container_gen/container_gen.hpp>
-#include <boost/container_gen/emplace_function_gen.hpp>
-#include <boost/tree_node/preprocessor.hpp>
-#include <boost/tree_node/intrinsic/value_at_key.hpp>
-#include <boost/typeof/boost/tree_node/with_count.hpp>
-#include <boost/typeof/boost/tree_node/with_height.hpp>
-#include <boost/typeof/boost/tree_node/with_position.hpp>
-
-#if defined BOOST_TREE_NODE_CAN_USE_FUSION
-#include <boost/typeof/boost/tree_node/with_accumulation.hpp>
-#endif
-
-#include "../example/type_definitions.hpp"
-#include "iterator_functions.hpp"
-
-typedef boost::emplace_function_gen<boost::dequeS>::type
- Emplacer;
-
-#include <boost/typeof/boost/tree_node/binary_node.hpp>
-
-#if defined BOOST_TREE_NODE_CAN_USE_FUSION
-typedef boost::tree_node::with_accumulation<
- boost::tree_node::with_height_base_gen<
- boost::tree_node::with_accumulation_base_gen<
- boost::tree_node::with_position_base_gen<
- boost::tree_node::with_accumulation_base_gen<
- boost::tree_node::with_count_base_gen<
- boost::tree_node::with_accumulation_base_gen<
- boost::tree_node::binary_node_base_gen<>
- >
- >
- , AccuAccuKey
- >
- >
- , AccuCountKey
- >
- >
- , boost::rational<long>
- , void
- , AccuHeightKey
- >
- ANode;
-#else // !defined BOOST_TREE_NODE_CAN_USE_FUSION
-typedef boost::tree_node::with_height<
- boost::tree_node::with_position_base_gen<
- boost::tree_node::with_count_base_gen<
- boost::tree_node::binary_node_base_gen<>
- >
- >
- , boost::rational<long>
- >
- ANode;
-#endif // BOOST_TREE_NODE_CAN_USE_FUSION
-
-typedef boost::container_gen<
- boost::dequeS
- , boost::tuples::tuple<
- boost::tree_node::result_of::value_at_key<
- ANode const
- , boost::tree_node::data_key
- >::type
- , boost::tree_node::result_of::value_at_key<
- ANode const
- , boost::tree_node::height_key
- >::type
- , boost::tree_node::result_of::value_at_key<
- ANode const
- , boost::tree_node::count_key
- >::type
-#if defined BOOST_TREE_NODE_CAN_USE_FUSION
- , boost::tree_node::result_of::value_at_key<
- ANode const
- , boost::tree_node::accumulation_key<>
- >::type
- , boost::tree_node::result_of::value_at_key<
- ANode const
- , AccuHeightKey
- >::type
- , boost::tree_node::result_of::value_at_key<
- ANode const
- , AccuCountKey
- >::type
- , boost::tree_node::result_of::value_at_key<
- ANode const
- , AccuAccuKey
- >::type
-#endif // BOOST_TREE_NODE_CAN_USE_FUSION
- >
- >::type
- Values;
-typedef boost::container_gen<
- boost::dequeS
- , boost::tuples::tuple<
- boost::tree_node::traversal_state
- , boost::tree_node::result_of::value_at_key<
- ANode const
- , boost::tree_node::data_key
- >::type
- , boost::tree_node::result_of::value_at_key<
- ANode const
- , boost::tree_node::height_key
- >::type
- , boost::tree_node::result_of::value_at_key<
- ANode const
- , boost::tree_node::count_key
- >::type
-#if defined BOOST_TREE_NODE_CAN_USE_FUSION
- , boost::tree_node::result_of::value_at_key<
- ANode const
- , boost::tree_node::accumulation_key<>
- >::type
- , boost::tree_node::result_of::value_at_key<
- ANode const
- , AccuHeightKey
- >::type
- , boost::tree_node::result_of::value_at_key<
- ANode const
- , AccuCountKey
- >::type
- , boost::tree_node::result_of::value_at_key<
- ANode const
- , AccuAccuKey
- >::type
-#endif // BOOST_TREE_NODE_CAN_USE_FUSION
- >
- >::type
- DFValues;
-
-int test_main(int argc, char** argv)
-{
- ANode a_root(5);
-
- BOOST_CHECK(
- !a_root.get_parent_ptr()
-// , "Parent member uninitialized."
- );
-
- for (
- boost::tree_node::breadth_first_iterator<ANode> itr(a_root);
- itr;
- ++itr
- )
- {
- ANode::traits::data_type const& data = get(
- *itr
- , boost::tree_node::data_key()
- );
-
- if (1 < data)
- {
- ANode::iterator child_itr(itr->emplace_left(data - 2));
- ANode::const_pointer const_child(&*child_itr);
-
- BOOST_CHECK(
- child_itr->get_parent_ptr() == &*itr
-// , "Ctor not linking child to parent."
- );
- BOOST_CHECK(
- itr->get_left_child_ptr() == &*child_itr
-// , "Ctor not linking parent to child."
- );
- BOOST_CHECK(
- child_itr->get_parent_ptr() == const_child->get_parent_ptr()
-// , "Why are these pointers different?"
- );
- BOOST_CHECK(
- get(
- *child_itr
- , boost::tree_node::position_key()
- ) == child_itr
-// , "Position iterator incorrect."
- );
-
- child_itr = itr->emplace_right(data - 1);
- const_child = &*child_itr;
-
- BOOST_CHECK(
- child_itr->get_parent_ptr() == &*itr
-// , "Ctor not linking child to parent."
- );
- BOOST_CHECK(
- itr->get_right_child_ptr() == &*child_itr
-// , "Ctor not linking parent to child."
- );
- BOOST_CHECK(
- child_itr->get_parent_ptr() == const_child->get_parent_ptr()
-// , "Why are these pointers different?"
- );
- BOOST_CHECK(
- get(
- *child_itr
- , boost::tree_node::position_key()
- ) == child_itr
-// , "Position iterator incorrect."
- );
- }
- }
-
- {
- Values bf_vals, pre_vals, post_vals, in_vals;
- DFValues df_vals;
- Emplacer emplacer;
-
-#if defined BOOST_TREE_NODE_CAN_USE_FUSION
- emplacer[bf_vals]
- (5, 4, 15, 26, 3, 51, boost::rational<long>(68, 15))
- (3, 2, 5, 7, 1, 11, boost::rational<long>(12, 5))
- (4, 3, 9, 14, 2, 25, boost::rational<long>(10, 3))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (3, 2, 5, 7, 1, 11, boost::rational<long>(12, 5))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1));
- emplacer[pre_vals]
- (5, 4, 15, 26, 3, 51, boost::rational<long>(68, 15))
- (3, 2, 5, 7, 1, 11, boost::rational<long>(12, 5))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (4, 3, 9, 14, 2, 25, boost::rational<long>(10, 3))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (3, 2, 5, 7, 1, 11, boost::rational<long>(12, 5))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1));
- emplacer[post_vals]
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (3, 2, 5, 7, 1, 11, boost::rational<long>(12, 5))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (3, 2, 5, 7, 1, 11, boost::rational<long>(12, 5))
- (4, 3, 9, 14, 2, 25, boost::rational<long>(10, 3))
- (5, 4, 15, 26, 3, 51, boost::rational<long>(68, 15));
- emplacer[in_vals]
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (3, 2, 5, 7, 1, 11, boost::rational<long>(12, 5))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (5, 4, 15, 26, 3, 51, boost::rational<long>(68, 15))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (4, 3, 9, 14, 2, 25, boost::rational<long>(10, 3))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (3, 2, 5, 7, 1, 11, boost::rational<long>(12, 5))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1));
- emplacer[df_vals]
- (boost::tree_node::pre_order_traversal, 5, 4, 15,
- 26, 3, 51, boost::rational<long>(68, 15))
- (boost::tree_node::pre_order_traversal, 3, 2, 5,
- 7, 1, 11, boost::rational<long>(12, 5))
- (boost::tree_node::pre_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::pre_order_traversal, 2, 1, 3,
- 3, 0, 5, boost::rational<long>(4, 3))
- (boost::tree_node::pre_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::post_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::pre_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 2, 1, 3,
- 3, 0, 5, boost::rational<long>(4, 3))
- (boost::tree_node::post_order_traversal, 3, 2, 5,
- 7, 1, 11, boost::rational<long>(12, 5))
- (boost::tree_node::pre_order_traversal, 4, 3, 9,
- 14, 2, 25, boost::rational<long>(10, 3))
- (boost::tree_node::pre_order_traversal, 2, 1, 3,
- 3, 0, 5, boost::rational<long>(4, 3))
- (boost::tree_node::pre_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::post_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::pre_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 2, 1, 3,
- 3, 0, 5, boost::rational<long>(4, 3))
- (boost::tree_node::pre_order_traversal, 3, 2, 5,
- 7, 1, 11, boost::rational<long>(12, 5))
- (boost::tree_node::pre_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::pre_order_traversal, 2, 1, 3,
- 3, 0, 5, boost::rational<long>(4, 3))
- (boost::tree_node::pre_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::post_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::pre_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 2, 1, 3,
- 3, 0, 5, boost::rational<long>(4, 3))
- (boost::tree_node::post_order_traversal, 3, 2, 5,
- 7, 1, 11, boost::rational<long>(12, 5))
- (boost::tree_node::post_order_traversal, 4, 3, 9,
- 14, 2, 25, boost::rational<long>(10, 3))
- (boost::tree_node::post_order_traversal, 5, 4, 15,
- 26, 3, 51, boost::rational<long>(68, 15));
-#else // !defined BOOST_TREE_NODE_CAN_USE_FUSION
- emplacer[bf_vals]
- (5, 4, 15)(3, 2, 5)(4, 3, 9)(1, 0, 1)(2, 1, 3)(2, 1, 3)(3, 2, 5)
- (0, 0, 1)(1, 0, 1)(0, 0, 1)(1, 0, 1)(1, 0, 1)(2, 1, 3)(0, 0, 1)
- (1, 0, 1);
- emplacer[pre_vals]
- (5, 4, 15)(3, 2, 5)(1, 0, 1)(2, 1, 3)(0, 0, 1)(1, 0, 1)(4, 3, 9)
- (2, 1, 3)(0, 0, 1)(1, 0, 1)(3, 2, 5)(1, 0, 1)(2, 1, 3)(0, 0, 1)
- (1, 0, 1);
- emplacer[post_vals]
- (1, 0, 1)(0, 0, 1)(1, 0, 1)(2, 1, 3)(3, 2, 5)(0, 0, 1)(1, 0, 1)
- (2, 1, 3)(1, 0, 1)(0, 0, 1)(1, 0, 1)(2, 1, 3)(3, 2, 5)(4, 3, 9)
- (5, 4, 15);
- emplacer[in_vals]
- (1, 0, 1)(3, 2, 5)(0, 0, 1)(2, 1, 3)(1, 0, 1)(5, 4, 15)(0, 0, 1)
- (2, 1, 3)(1, 0, 1)(4, 3, 9)(1, 0, 1)(3, 2, 5)(0, 0, 1)(2, 1, 3)
- (1, 0, 1);
- emplacer[df_vals]
- (boost::tree_node::pre_order_traversal, 5, 4, 15)
- (boost::tree_node::pre_order_traversal, 3, 2, 5)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 2, 1, 3)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 2, 1, 3)
- (boost::tree_node::post_order_traversal, 3, 2, 5)
- (boost::tree_node::pre_order_traversal, 4, 3, 9)
- (boost::tree_node::pre_order_traversal, 2, 1, 3)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 2, 1, 3)
- (boost::tree_node::pre_order_traversal, 3, 2, 5)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 2, 1, 3)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 2, 1, 3)
- (boost::tree_node::post_order_traversal, 3, 2, 5)
- (boost::tree_node::post_order_traversal, 4, 3, 9)
- (boost::tree_node::post_order_traversal, 5, 4, 15);
-#endif // BOOST_NO_SFINAE
- test_node<a_node_case>(
- a_root
- , bf_vals
- , pre_vals
- , post_vals
- , in_vals
- , df_vals
- );
- }
-
- {
- ANode a_copy(a_root);
- boost::tree_node::breadth_first_iterator<ANode const>
- bf_root_itr(a_root), bf_copy_itr(a_copy);
- boost::tree_node::breadth_first_descendant_iterator<ANode const>
- bf_d_root_itr(a_root), bf_d_copy_itr(a_copy);
- boost::tree_node::pre_order_iterator<ANode const>
- pre_root_itr(a_root), pre_copy_itr(a_copy);
- boost::tree_node::pre_order_descendant_iterator<ANode const>
- pre_d_root_itr(a_root), pre_d_copy_itr(a_copy);
- boost::tree_node::post_order_iterator<ANode const>
- post_root_itr(a_root), post_copy_itr(a_copy);
- boost::tree_node::post_order_descendant_iterator<ANode const>
- post_d_root_itr(a_root), post_d_copy_itr(a_copy);
- boost::tree_node::in_order_iterator<ANode const>
- in_root_itr(a_root), in_copy_itr(a_copy);
- boost::tree_node::depth_first_iterator<ANode const>
- df_root_itr(a_root), df_copy_itr(a_copy);
- boost::tree_node::depth_first_descendant_iterator<ANode const>
- df_d_root_itr(a_root), df_d_copy_itr(a_copy);
-
- BOOST_CHECK(test_node_copies(bf_root_itr, bf_copy_itr));
- BOOST_CHECK(test_node_copies(bf_d_root_itr, bf_d_copy_itr));
- BOOST_CHECK(test_node_copies(pre_root_itr, pre_copy_itr));
- BOOST_CHECK(test_node_copies(pre_d_root_itr, pre_d_copy_itr));
- BOOST_CHECK(test_node_copies(post_root_itr, post_copy_itr));
- BOOST_CHECK(test_node_copies(post_d_root_itr, post_d_copy_itr));
- BOOST_CHECK(test_node_copies(in_root_itr, in_copy_itr));
- BOOST_CHECK(test_node_copies(df_root_itr, df_copy_itr));
- BOOST_CHECK(test_node_copies(df_d_root_itr, df_d_copy_itr));
- }
-
- {
- ANode::pointer p(
- a_root.get_left_child_ptr()->get_right_child_ptr()
- );
- ANode::iterator a_child_itr = p->insert_left(a_root);
- Values bf_vals, pre_vals, post_vals, in_vals;
- DFValues df_vals;
- Emplacer emplacer;
-
-#if defined BOOST_TREE_NODE_CAN_USE_FUSION
- emplacer[bf_vals]
- (5, 7, 30, 52, 6, 150, boost::rational<long>(107, 15))
- (3, 6, 20, 33, 5, 95, boost::rational<long>(33, 5))
- (4, 3, 9, 14, 2, 25, boost::rational<long>(10, 3))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 5, 18, 29, 4, 74, boost::rational<long>(49, 9))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (3, 2, 5, 7, 1, 11, boost::rational<long>(12, 5))
- (5, 4, 16, 26, 3, 55, boost::rational<long>(17, 4))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (3, 2, 6, 7, 1, 14, boost::rational<long>(2, 1))
- (4, 3, 9, 14, 2, 25, boost::rational<long>(10, 3))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (1, 1, 2, 1, 0, 3, boost::rational<long>(1, 2))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (3, 2, 5, 7, 1, 11, boost::rational<long>(12, 5))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1));
- emplacer[pre_vals]
- (5, 7, 30, 52, 6, 150, boost::rational<long>(107, 15))
- (3, 6, 20, 33, 5, 95, boost::rational<long>(33, 5))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 5, 18, 29, 4, 74, boost::rational<long>(49, 9))
- (5, 4, 16, 26, 3, 55, boost::rational<long>(17, 4))
- (3, 2, 6, 7, 1, 14, boost::rational<long>(2, 1))
- (1, 1, 2, 1, 0, 3, boost::rational<long>(1, 2))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (4, 3, 9, 14, 2, 25, boost::rational<long>(10, 3))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (3, 2, 5, 7, 1, 11, boost::rational<long>(12, 5))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (4, 3, 9, 14, 2, 25, boost::rational<long>(10, 3))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (3, 2, 5, 7, 1, 11, boost::rational<long>(12, 5))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1));
- emplacer[post_vals]
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 1, 2, 1, 0, 3, boost::rational<long>(1, 2))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (3, 2, 6, 7, 1, 14, boost::rational<long>(2, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (3, 2, 5, 7, 1, 11, boost::rational<long>(12, 5))
- (4, 3, 9, 14, 2, 25, boost::rational<long>(10, 3))
- (5, 4, 16, 26, 3, 55, boost::rational<long>(17, 4))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 5, 18, 29, 4, 74, boost::rational<long>(49, 9))
- (3, 6, 20, 33, 5, 95, boost::rational<long>(33, 5))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (3, 2, 5, 7, 1, 11, boost::rational<long>(12, 5))
- (4, 3, 9, 14, 2, 25, boost::rational<long>(10, 3))
- (5, 7, 30, 52, 6, 150, boost::rational<long>(107, 15));
- emplacer[in_vals]
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (3, 6, 20, 33, 5, 95, boost::rational<long>(33, 5))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 1, 2, 1, 0, 3, boost::rational<long>(1, 2))
- (3, 2, 6, 7, 1, 14, boost::rational<long>(2, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (5, 4, 16, 26, 3, 55, boost::rational<long>(17, 4))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (4, 3, 9, 14, 2, 25, boost::rational<long>(10, 3))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (3, 2, 5, 7, 1, 11, boost::rational<long>(12, 5))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 5, 18, 29, 4, 74, boost::rational<long>(49, 9))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (5, 7, 30, 52, 6, 150, boost::rational<long>(107, 15))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (4, 3, 9, 14, 2, 25, boost::rational<long>(10, 3))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (3, 2, 5, 7, 1, 11, boost::rational<long>(12, 5))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1));
- emplacer[df_vals]
- (boost::tree_node::pre_order_traversal, 5, 7, 30,
- 52, 6, 150, boost::rational<long>(107, 15))
- (boost::tree_node::pre_order_traversal, 3, 6, 20,
- 33, 5, 95, boost::rational<long>(33, 5))
- (boost::tree_node::pre_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::pre_order_traversal, 2, 5, 18,
- 29, 4, 74, boost::rational<long>(49, 9))
- (boost::tree_node::pre_order_traversal, 5, 4, 16,
- 26, 3, 55, boost::rational<long>(17, 4))
- (boost::tree_node::pre_order_traversal, 3, 2, 6,
- 7, 1, 14, boost::rational<long>(2, 1))
- (boost::tree_node::pre_order_traversal, 1, 1, 2,
- 1, 0, 3, boost::rational<long>(1, 2))
- (boost::tree_node::pre_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::post_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::post_order_traversal, 1, 1, 2,
- 1, 0, 3, boost::rational<long>(1, 2))
- (boost::tree_node::pre_order_traversal, 2, 1, 3,
- 3, 0, 5, boost::rational<long>(4, 3))
- (boost::tree_node::pre_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::post_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::pre_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 2, 1, 3,
- 3, 0, 5, boost::rational<long>(4, 3))
- (boost::tree_node::post_order_traversal, 3, 2, 6,
- 7, 1, 14, boost::rational<long>(2, 1))
- (boost::tree_node::pre_order_traversal, 4, 3, 9,
- 14, 2, 25, boost::rational<long>(10, 3))
- (boost::tree_node::pre_order_traversal, 2, 1, 3,
- 3, 0, 5, boost::rational<long>(4, 3))
- (boost::tree_node::pre_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::post_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::pre_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 2, 1, 3,
- 3, 0, 5, boost::rational<long>(4, 3))
- (boost::tree_node::pre_order_traversal, 3, 2, 5,
- 7, 1, 11, boost::rational<long>(12, 5))
- (boost::tree_node::pre_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::pre_order_traversal, 2, 1, 3,
- 3, 0, 5, boost::rational<long>(4, 3))
- (boost::tree_node::pre_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::post_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::pre_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 2, 1, 3,
- 3, 0, 5, boost::rational<long>(4, 3))
- (boost::tree_node::post_order_traversal, 3, 2, 5,
- 7, 1, 11, boost::rational<long>(12, 5))
- (boost::tree_node::post_order_traversal, 4, 3, 9,
- 14, 2, 25, boost::rational<long>(10, 3))
- (boost::tree_node::post_order_traversal, 5, 4, 16,
- 26, 3, 55, boost::rational<long>(17, 4))
- (boost::tree_node::pre_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 2, 5, 18,
- 29, 4, 74, boost::rational<long>(49, 9))
- (boost::tree_node::post_order_traversal, 3, 6, 20,
- 33, 5, 95, boost::rational<long>(33, 5))
- (boost::tree_node::pre_order_traversal, 4, 3, 9,
- 14, 2, 25, boost::rational<long>(10, 3))
- (boost::tree_node::pre_order_traversal, 2, 1, 3,
- 3, 0, 5, boost::rational<long>(4, 3))
- (boost::tree_node::pre_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::post_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::pre_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 2, 1, 3,
- 3, 0, 5, boost::rational<long>(4, 3))
- (boost::tree_node::pre_order_traversal, 3, 2, 5,
- 7, 1, 11, boost::rational<long>(12, 5))
- (boost::tree_node::pre_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::pre_order_traversal, 2, 1, 3,
- 3, 0, 5, boost::rational<long>(4, 3))
- (boost::tree_node::pre_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::post_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::pre_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 2, 1, 3,
- 3, 0, 5, boost::rational<long>(4, 3))
- (boost::tree_node::post_order_traversal, 3, 2, 5,
- 7, 1, 11, boost::rational<long>(12, 5))
- (boost::tree_node::post_order_traversal, 4, 3, 9,
- 14, 2, 25, boost::rational<long>(10, 3))
- (boost::tree_node::post_order_traversal, 5, 7, 30,
- 52, 6, 150, boost::rational<long>(107, 15));
-#else // !defined BOOST_TREE_NODE_CAN_USE_FUSION
- emplacer[bf_vals]
- (5, 7, 30)(3, 6, 20)(4, 3, 9)(1, 0, 1)(2, 5, 18)(2, 1, 3)(3, 2, 5)
- (5, 4, 16)(1, 0, 1)(0, 0, 1)(1, 0, 1)(1, 0, 1)(2, 1, 3)(3, 2, 6)
- (4, 3, 9)(0, 0, 1)(1, 0, 1)(1, 1, 2)(2, 1, 3)(2, 1, 3)(3, 2, 5)
- (0, 0, 1)(0, 0, 1)(1, 0, 1)(0, 0, 1)(1, 0, 1)(1, 0, 1)(2, 1, 3)
- (0, 0, 1)(1, 0, 1);
- emplacer[pre_vals]
- (5, 7, 30)(3, 6, 20)(1, 0, 1)(2, 5, 18)(5, 4, 16)(3, 2, 6)(1, 1, 2)
- (0, 0, 1)(2, 1, 3)(0, 0, 1)(1, 0, 1)(4, 3, 9)(2, 1, 3)(0, 0, 1)
- (1, 0, 1)(3, 2, 5)(1, 0, 1)(2, 1, 3)(0, 0, 1)(1, 0, 1)(1, 0, 1)
- (4, 3, 9)(2, 1, 3)(0, 0, 1)(1, 0, 1)(3, 2, 5)(1, 0, 1)(2, 1, 3)
- (0, 0, 1)(1, 0, 1);
- emplacer[post_vals]
- (1, 0, 1)(0, 0, 1)(1, 1, 2)(0, 0, 1)(1, 0, 1)(2, 1, 3)(3, 2, 6)
- (0, 0, 1)(1, 0, 1)(2, 1, 3)(1, 0, 1)(0, 0, 1)(1, 0, 1)(2, 1, 3)
- (3, 2, 5)(4, 3, 9)(5, 4, 16)(1, 0, 1)(2, 5, 18)(3, 6, 20)(0, 0, 1)
- (1, 0, 1)(2, 1, 3)(1, 0, 1)(0, 0, 1)(1, 0, 1)(2, 1, 3)(3, 2, 5)
- (4, 3, 9)(5, 7, 30);
- emplacer[in_vals]
- (1, 0, 1)(3, 6, 20)(0, 0, 1)(1, 1, 2)(3, 2, 6)(0, 0, 1)(2, 1, 3)
- (1, 0, 1)(5, 4, 16)(0, 0, 1)(2, 1, 3)(1, 0, 1)(4, 3, 9)(1, 0, 1)
- (3, 2, 5)(0, 0, 1)(2, 1, 3)(1, 0, 1)(2, 5, 18)(1, 0, 1)(5, 7, 30)
- (0, 0, 1)(2, 1, 3)(1, 0, 1)(4, 3, 9)(1, 0, 1)(3, 2, 5)(0, 0, 1)
- (2, 1, 3)(1, 0, 1);
- emplacer[df_vals]
- (boost::tree_node::pre_order_traversal, 5, 7, 30)
- (boost::tree_node::pre_order_traversal, 3, 6, 20)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 2, 5, 18)
- (boost::tree_node::pre_order_traversal, 5, 4, 16)
- (boost::tree_node::pre_order_traversal, 3, 2, 6)
- (boost::tree_node::pre_order_traversal, 1, 1, 2)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 1, 2)
- (boost::tree_node::pre_order_traversal, 2, 1, 3)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 2, 1, 3)
- (boost::tree_node::post_order_traversal, 3, 2, 6)
- (boost::tree_node::pre_order_traversal, 4, 3, 9)
- (boost::tree_node::pre_order_traversal, 2, 1, 3)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 2, 1, 3)
- (boost::tree_node::pre_order_traversal, 3, 2, 5)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 2, 1, 3)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 2, 1, 3)
- (boost::tree_node::post_order_traversal, 3, 2, 5)
- (boost::tree_node::post_order_traversal, 4, 3, 9)
- (boost::tree_node::post_order_traversal, 5, 4, 16)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 2, 5, 18)
- (boost::tree_node::post_order_traversal, 3, 6, 20)
- (boost::tree_node::pre_order_traversal, 4, 3, 9)
- (boost::tree_node::pre_order_traversal, 2, 1, 3)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 2, 1, 3)
- (boost::tree_node::pre_order_traversal, 3, 2, 5)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 2, 1, 3)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 2, 1, 3)
- (boost::tree_node::post_order_traversal, 3, 2, 5)
- (boost::tree_node::post_order_traversal, 4, 3, 9)
- (boost::tree_node::post_order_traversal, 5, 7, 30);
-#endif // BOOST_NO_SFINAE
- test_node<a_node_case>(
- a_root
- , bf_vals
- , pre_vals
- , post_vals
- , in_vals
- , df_vals
- );
-
- a_root = *a_child_itr;
- bf_vals.clear();
- pre_vals.clear();
- post_vals.clear();
- in_vals.clear();
- df_vals.clear();
-
-#if defined BOOST_TREE_NODE_CAN_USE_FUSION
- emplacer[bf_vals]
- (5, 4, 16, 26, 3, 55, boost::rational<long>(17, 4))
- (3, 2, 6, 7, 1, 14, boost::rational<long>(2, 1))
- (4, 3, 9, 14, 2, 25, boost::rational<long>(10, 3))
- (1, 1, 2, 1, 0, 3, boost::rational<long>(1, 2))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (3, 2, 5, 7, 1, 11, boost::rational<long>(12, 5))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1));
- emplacer[pre_vals]
- (5, 4, 16, 26, 3, 55, boost::rational<long>(17, 4))
- (3, 2, 6, 7, 1, 14, boost::rational<long>(2, 1))
- (1, 1, 2, 1, 0, 3, boost::rational<long>(1, 2))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (4, 3, 9, 14, 2, 25, boost::rational<long>(10, 3))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (3, 2, 5, 7, 1, 11, boost::rational<long>(12, 5))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1));
- emplacer[post_vals]
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 1, 2, 1, 0, 3, boost::rational<long>(1, 2))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (3, 2, 6, 7, 1, 14, boost::rational<long>(2, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (3, 2, 5, 7, 1, 11, boost::rational<long>(12, 5))
- (4, 3, 9, 14, 2, 25, boost::rational<long>(10, 3))
- (5, 4, 16, 26, 3, 55, boost::rational<long>(17, 4));
- emplacer[in_vals]
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 1, 2, 1, 0, 3, boost::rational<long>(1, 2))
- (3, 2, 6, 7, 1, 14, boost::rational<long>(2, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (5, 4, 16, 26, 3, 55, boost::rational<long>(17, 4))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (4, 3, 9, 14, 2, 25, boost::rational<long>(10, 3))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (3, 2, 5, 7, 1, 11, boost::rational<long>(12, 5))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1));
- emplacer[df_vals]
- (boost::tree_node::pre_order_traversal, 5, 4, 16,
- 26, 3, 55, boost::rational<long>(17, 4))
- (boost::tree_node::pre_order_traversal, 3, 2, 6,
- 7, 1, 14, boost::rational<long>(2, 1))
- (boost::tree_node::pre_order_traversal, 1, 1, 2,
- 1, 0, 3, boost::rational<long>(1, 2))
- (boost::tree_node::pre_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::post_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::post_order_traversal, 1, 1, 2,
- 1, 0, 3, boost::rational<long>(1, 2))
- (boost::tree_node::pre_order_traversal, 2, 1, 3,
- 3, 0, 5, boost::rational<long>(4, 3))
- (boost::tree_node::pre_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::post_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::pre_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 2, 1, 3,
- 3, 0, 5, boost::rational<long>(4, 3))
- (boost::tree_node::post_order_traversal, 3, 2, 6,
- 7, 1, 14, boost::rational<long>(2, 1))
- (boost::tree_node::pre_order_traversal, 4, 3, 9,
- 14, 2, 25, boost::rational<long>(10, 3))
- (boost::tree_node::pre_order_traversal, 2, 1, 3,
- 3, 0, 5, boost::rational<long>(4, 3))
- (boost::tree_node::pre_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::post_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::pre_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 2, 1, 3,
- 3, 0, 5, boost::rational<long>(4, 3))
- (boost::tree_node::pre_order_traversal, 3, 2, 5,
- 7, 1, 11, boost::rational<long>(12, 5))
- (boost::tree_node::pre_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::pre_order_traversal, 2, 1, 3,
- 3, 0, 5, boost::rational<long>(4, 3))
- (boost::tree_node::pre_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::post_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::pre_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 2, 1, 3,
- 3, 0, 5, boost::rational<long>(4, 3))
- (boost::tree_node::post_order_traversal, 3, 2, 5,
- 7, 1, 11, boost::rational<long>(12, 5))
- (boost::tree_node::post_order_traversal, 4, 3, 9,
- 14, 2, 25, boost::rational<long>(10, 3))
- (boost::tree_node::post_order_traversal, 5, 4, 16,
- 26, 3, 55, boost::rational<long>(17, 4));
-#else // !defined BOOST_TREE_NODE_CAN_USE_FUSION
- emplacer[bf_vals]
- (5, 4, 16)(3, 2, 6)(4, 3, 9)(1, 1, 2)(2, 1, 3)(2, 1, 3)(3, 2, 5)
- (0, 0, 1)(0, 0, 1)(1, 0, 1)(0, 0, 1)(1, 0, 1)(1, 0, 1)(2, 1, 3)
- (0, 0, 1)(1, 0, 1);
- emplacer[pre_vals]
- (5, 4, 16)(3, 2, 6)(1, 1, 2)(0, 0, 1)(2, 1, 3)(0, 0, 1)(1, 0, 1)
- (4, 3, 9)(2, 1, 3)(0, 0, 1)(1, 0, 1)(3, 2, 5)(1, 0, 1)(2, 1, 3)
- (0, 0, 1)(1, 0, 1);
- emplacer[post_vals]
- (0, 0, 1)(1, 1, 2)(0, 0, 1)(1, 0, 1)(2, 1, 3)(3, 2, 6)(0, 0, 1)
- (1, 0, 1)(2, 1, 3)(1, 0, 1)(0, 0, 1)(1, 0, 1)(2, 1, 3)(3, 2, 5)
- (4, 3, 9)(5, 4, 16);
- emplacer[in_vals]
- (0, 0, 1)(1, 1, 2)(3, 2, 6)(0, 0, 1)(2, 1, 3)(1, 0, 1)(5, 4, 16)
- (0, 0, 1)(2, 1, 3)(1, 0, 1)(4, 3, 9)(1, 0, 1)(3, 2, 5)(0, 0, 1)
- (2, 1, 3)(1, 0, 1);
- emplacer[df_vals]
- (boost::tree_node::pre_order_traversal, 5, 4, 16)
- (boost::tree_node::pre_order_traversal, 3, 2, 6)
- (boost::tree_node::pre_order_traversal, 1, 1, 2)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 1, 2)
- (boost::tree_node::pre_order_traversal, 2, 1, 3)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 2, 1, 3)
- (boost::tree_node::post_order_traversal, 3, 2, 6)
- (boost::tree_node::pre_order_traversal, 4, 3, 9)
- (boost::tree_node::pre_order_traversal, 2, 1, 3)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 2, 1, 3)
- (boost::tree_node::pre_order_traversal, 3, 2, 5)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 2, 1, 3)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 2, 1, 3)
- (boost::tree_node::post_order_traversal, 3, 2, 5)
- (boost::tree_node::post_order_traversal, 4, 3, 9)
- (boost::tree_node::post_order_traversal, 5, 4, 16);
-#endif // BOOST_NO_SFINAE
- test_node<a_node_case>(
- a_root
- , bf_vals
- , pre_vals
- , post_vals
- , in_vals
- , df_vals
- );
-
- *(p = a_root.get_right_child_ptr()) = a_root;
- test_node<a_node_case>(
- *p
- , bf_vals
- , pre_vals
- , post_vals
- , in_vals
- , df_vals
- );
-
- bf_vals.clear();
- pre_vals.clear();
- post_vals.clear();
- in_vals.clear();
- df_vals.clear();
-
-#if defined BOOST_TREE_NODE_CAN_USE_FUSION
- emplacer[bf_vals]
- (5, 5, 23, 38, 4, 92, boost::rational<long>(118, 23))
- (3, 2, 6, 7, 1, 14, boost::rational<long>(2, 1))
- (5, 4, 16, 26, 3, 55, boost::rational<long>(17, 4))
- (1, 1, 2, 1, 0, 3, boost::rational<long>(1, 2))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (3, 2, 6, 7, 1, 14, boost::rational<long>(2, 1))
- (4, 3, 9, 14, 2, 25, boost::rational<long>(10, 3))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (1, 1, 2, 1, 0, 3, boost::rational<long>(1, 2))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (3, 2, 5, 7, 1, 11, boost::rational<long>(12, 5))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1));
- emplacer[pre_vals]
- (5, 5, 23, 38, 4, 92, boost::rational<long>(118, 23))
- (3, 2, 6, 7, 1, 14, boost::rational<long>(2, 1))
- (1, 1, 2, 1, 0, 3, boost::rational<long>(1, 2))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (5, 4, 16, 26, 3, 55, boost::rational<long>(17, 4))
- (3, 2, 6, 7, 1, 14, boost::rational<long>(2, 1))
- (1, 1, 2, 1, 0, 3, boost::rational<long>(1, 2))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (4, 3, 9, 14, 2, 25, boost::rational<long>(10, 3))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (3, 2, 5, 7, 1, 11, boost::rational<long>(12, 5))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1));
- emplacer[post_vals]
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 1, 2, 1, 0, 3, boost::rational<long>(1, 2))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (3, 2, 6, 7, 1, 14, boost::rational<long>(2, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 1, 2, 1, 0, 3, boost::rational<long>(1, 2))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (3, 2, 6, 7, 1, 14, boost::rational<long>(2, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (3, 2, 5, 7, 1, 11, boost::rational<long>(12, 5))
- (4, 3, 9, 14, 2, 25, boost::rational<long>(10, 3))
- (5, 4, 16, 26, 3, 55, boost::rational<long>(17, 4))
- (5, 5, 23, 38, 4, 92, boost::rational<long>(118, 23));
- emplacer[in_vals]
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 1, 2, 1, 0, 3, boost::rational<long>(1, 2))
- (3, 2, 6, 7, 1, 14, boost::rational<long>(2, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (5, 5, 23, 38, 4, 92, boost::rational<long>(118, 23))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 1, 2, 1, 0, 3, boost::rational<long>(1, 2))
- (3, 2, 6, 7, 1, 14, boost::rational<long>(2, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (5, 4, 16, 26, 3, 55, boost::rational<long>(17, 4))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (4, 3, 9, 14, 2, 25, boost::rational<long>(10, 3))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (3, 2, 5, 7, 1, 11, boost::rational<long>(12, 5))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1));
- emplacer[df_vals]
- (boost::tree_node::pre_order_traversal, 5, 5, 23,
- 38, 4, 92, boost::rational<long>(118, 23))
- (boost::tree_node::pre_order_traversal, 3, 2, 6,
- 7, 1, 14, boost::rational<long>(2, 1))
- (boost::tree_node::pre_order_traversal, 1, 1, 2,
- 1, 0, 3, boost::rational<long>(1, 2))
- (boost::tree_node::pre_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::post_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::post_order_traversal, 1, 1, 2,
- 1, 0, 3, boost::rational<long>(1, 2))
- (boost::tree_node::pre_order_traversal, 2, 1, 3,
- 3, 0, 5, boost::rational<long>(4, 3))
- (boost::tree_node::pre_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::post_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::pre_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 2, 1, 3,
- 3, 0, 5, boost::rational<long>(4, 3))
- (boost::tree_node::post_order_traversal, 3, 2, 6,
- 7, 1, 14, boost::rational<long>(2, 1))
- (boost::tree_node::pre_order_traversal, 5, 4, 16,
- 26, 3, 55, boost::rational<long>(17, 4))
- (boost::tree_node::pre_order_traversal, 3, 2, 6,
- 7, 1, 14, boost::rational<long>(2, 1))
- (boost::tree_node::pre_order_traversal, 1, 1, 2,
- 1, 0, 3, boost::rational<long>(1, 2))
- (boost::tree_node::pre_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::post_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::post_order_traversal, 1, 1, 2,
- 1, 0, 3, boost::rational<long>(1, 2))
- (boost::tree_node::pre_order_traversal, 2, 1, 3,
- 3, 0, 5, boost::rational<long>(4, 3))
- (boost::tree_node::pre_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::post_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::pre_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 2, 1, 3,
- 3, 0, 5, boost::rational<long>(4, 3))
- (boost::tree_node::post_order_traversal, 3, 2, 6,
- 7, 1, 14, boost::rational<long>(2, 1))
- (boost::tree_node::pre_order_traversal, 4, 3, 9,
- 14, 2, 25, boost::rational<long>(10, 3))
- (boost::tree_node::pre_order_traversal, 2, 1, 3,
- 3, 0, 5, boost::rational<long>(4, 3))
- (boost::tree_node::pre_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::post_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::pre_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 2, 1, 3,
- 3, 0, 5, boost::rational<long>(4, 3))
- (boost::tree_node::pre_order_traversal, 3, 2, 5,
- 7, 1, 11, boost::rational<long>(12, 5))
- (boost::tree_node::pre_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::pre_order_traversal, 2, 1, 3,
- 3, 0, 5, boost::rational<long>(4, 3))
- (boost::tree_node::pre_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::post_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::pre_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 2, 1, 3,
- 3, 0, 5, boost::rational<long>(4, 3))
- (boost::tree_node::post_order_traversal, 3, 2, 5,
- 7, 1, 11, boost::rational<long>(12, 5))
- (boost::tree_node::post_order_traversal, 4, 3, 9,
- 14, 2, 25, boost::rational<long>(10, 3))
- (boost::tree_node::post_order_traversal, 5, 4, 16,
- 26, 3, 55, boost::rational<long>(17, 4))
- (boost::tree_node::post_order_traversal, 5, 5, 23,
- 38, 4, 92, boost::rational<long>(118, 23));
-#else // !defined BOOST_TREE_NODE_CAN_USE_FUSION
- emplacer[bf_vals]
- (5, 5, 23)(3, 2, 6)(5, 4, 16)(1, 1, 2)(2, 1, 3)(3, 2, 6)(4, 3, 9)
- (0, 0, 1)(0, 0, 1)(1, 0, 1)(1, 1, 2)(2, 1, 3)(2, 1, 3)(3, 2, 5)
- (0, 0, 1)(0, 0, 1)(1, 0, 1)(0, 0, 1)(1, 0, 1)(1, 0, 1)(2, 1, 3)
- (0, 0, 1)(1, 0, 1);
- emplacer[pre_vals]
- (5, 5, 23)(3, 2, 6)(1, 1, 2)(0, 0, 1)(2, 1, 3)(0, 0, 1)(1, 0, 1)
- (5, 4, 16)(3, 2, 6)(1, 1, 2)(0, 0, 1)(2, 1, 3)(0, 0, 1)(1, 0, 1)
- (4, 3, 9)(2, 1, 3)(0, 0, 1)(1, 0, 1)(3, 2, 5)(1, 0, 1)(2, 1, 3)
- (0, 0, 1)(1, 0, 1);
- emplacer[post_vals]
- (0, 0, 1)(1, 1, 2)(0, 0, 1)(1, 0, 1)(2, 1, 3)(3, 2, 6)(0, 0, 1)
- (1, 1, 2)(0, 0, 1)(1, 0, 1)(2, 1, 3)(3, 2, 6)(0, 0, 1)(1, 0, 1)
- (2, 1, 3)(1, 0, 1)(0, 0, 1)(1, 0, 1)(2, 1, 3)(3, 2, 5)(4, 3, 9)
- (5, 4, 16)(5, 5, 23);
- emplacer[in_vals]
- (0, 0, 1)(1, 1, 2)(3, 2, 6)(0, 0, 1)(2, 1, 3)(1, 0, 1)(5, 5, 23)
- (0, 0, 1)(1, 1, 2)(3, 2, 6)(0, 0, 1)(2, 1, 3)(1, 0, 1)(5, 4, 16)
- (0, 0, 1)(2, 1, 3)(1, 0, 1)(4, 3, 9)(1, 0, 1)(3, 2, 5)(0, 0, 1)
- (2, 1, 3)(1, 0, 1);
- emplacer[df_vals]
- (boost::tree_node::pre_order_traversal, 5, 5, 23)
- (boost::tree_node::pre_order_traversal, 3, 2, 6)
- (boost::tree_node::pre_order_traversal, 1, 1, 2)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 1, 2)
- (boost::tree_node::pre_order_traversal, 2, 1, 3)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 2, 1, 3)
- (boost::tree_node::post_order_traversal, 3, 2, 6)
- (boost::tree_node::pre_order_traversal, 5, 4, 16)
- (boost::tree_node::pre_order_traversal, 3, 2, 6)
- (boost::tree_node::pre_order_traversal, 1, 1, 2)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 1, 2)
- (boost::tree_node::pre_order_traversal, 2, 1, 3)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 2, 1, 3)
- (boost::tree_node::post_order_traversal, 3, 2, 6)
- (boost::tree_node::pre_order_traversal, 4, 3, 9)
- (boost::tree_node::pre_order_traversal, 2, 1, 3)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 2, 1, 3)
- (boost::tree_node::pre_order_traversal, 3, 2, 5)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 2, 1, 3)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 2, 1, 3)
- (boost::tree_node::post_order_traversal, 3, 2, 5)
- (boost::tree_node::post_order_traversal, 4, 3, 9)
- (boost::tree_node::post_order_traversal, 5, 4, 16)
- (boost::tree_node::post_order_traversal, 5, 5, 23);
-#endif // BOOST_NO_SFINAE
- test_node<a_node_case>(
- a_root
- , bf_vals
- , pre_vals
- , post_vals
- , in_vals
- , df_vals
- );
- }
-
- a_root.get_right_child_ptr()->rotate_left();
-
- {
- Values bf_vals, pre_vals, post_vals, in_vals;
- DFValues df_vals;
- Emplacer emplacer;
-
-#if defined BOOST_TREE_NODE_CAN_USE_FUSION
- emplacer[bf_vals]
- (5, 5, 23, 38, 4, 93, boost::rational<long>(119, 23))
- (3, 2, 6, 7, 1, 14, boost::rational<long>(2, 1))
- (4, 4, 16, 26, 3, 56, boost::rational<long>(69, 16))
- (1, 1, 2, 1, 0, 3, boost::rational<long>(1, 2))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (5, 3, 10, 15, 2, 29, boost::rational<long>(31, 10))
- (3, 2, 5, 7, 1, 11, boost::rational<long>(12, 5))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (3, 2, 6, 7, 1, 14, boost::rational<long>(2, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (1, 1, 2, 1, 0, 3, boost::rational<long>(1, 2))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1));
- emplacer[pre_vals]
- (5, 5, 23, 38, 4, 93, boost::rational<long>(119, 23))
- (3, 2, 6, 7, 1, 14, boost::rational<long>(2, 1))
- (1, 1, 2, 1, 0, 3, boost::rational<long>(1, 2))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (4, 4, 16, 26, 3, 56, boost::rational<long>(69, 16))
- (5, 3, 10, 15, 2, 29, boost::rational<long>(31, 10))
- (3, 2, 6, 7, 1, 14, boost::rational<long>(2, 1))
- (1, 1, 2, 1, 0, 3, boost::rational<long>(1, 2))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (3, 2, 5, 7, 1, 11, boost::rational<long>(12, 5))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1));
- emplacer[post_vals]
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 1, 2, 1, 0, 3, boost::rational<long>(1, 2))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (3, 2, 6, 7, 1, 14, boost::rational<long>(2, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 1, 2, 1, 0, 3, boost::rational<long>(1, 2))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (3, 2, 6, 7, 1, 14, boost::rational<long>(2, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (5, 3, 10, 15, 2, 29, boost::rational<long>(31, 10))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (3, 2, 5, 7, 1, 11, boost::rational<long>(12, 5))
- (4, 4, 16, 26, 3, 56, boost::rational<long>(69, 16))
- (5, 5, 23, 38, 4, 93, boost::rational<long>(119, 23));
- emplacer[in_vals]
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 1, 2, 1, 0, 3, boost::rational<long>(1, 2))
- (3, 2, 6, 7, 1, 14, boost::rational<long>(2, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (5, 5, 23, 38, 4, 93, boost::rational<long>(119, 23))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 1, 2, 1, 0, 3, boost::rational<long>(1, 2))
- (3, 2, 6, 7, 1, 14, boost::rational<long>(2, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (5, 3, 10, 15, 2, 29, boost::rational<long>(31, 10))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (4, 4, 16, 26, 3, 56, boost::rational<long>(69, 16))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (3, 2, 5, 7, 1, 11, boost::rational<long>(12, 5))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1));
- emplacer[df_vals]
- (boost::tree_node::pre_order_traversal, 5, 5, 23,
- 38, 4, 93, boost::rational<long>(119, 23))
- (boost::tree_node::pre_order_traversal, 3, 2, 6,
- 7, 1, 14, boost::rational<long>(2, 1))
- (boost::tree_node::pre_order_traversal, 1, 1, 2,
- 1, 0, 3, boost::rational<long>(1, 2))
- (boost::tree_node::pre_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::post_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::post_order_traversal, 1, 1, 2,
- 1, 0, 3, boost::rational<long>(1, 2))
- (boost::tree_node::pre_order_traversal, 2, 1, 3,
- 3, 0, 5, boost::rational<long>(4, 3))
- (boost::tree_node::pre_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::post_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::pre_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 2, 1, 3,
- 3, 0, 5, boost::rational<long>(4, 3))
- (boost::tree_node::post_order_traversal, 3, 2, 6,
- 7, 1, 14, boost::rational<long>(2, 1))
- (boost::tree_node::pre_order_traversal, 4, 4, 16,
- 26, 3, 56, boost::rational<long>(69, 16))
- (boost::tree_node::pre_order_traversal, 5, 3, 10,
- 15, 2, 29, boost::rational<long>(31, 10))
- (boost::tree_node::pre_order_traversal, 3, 2, 6,
- 7, 1, 14, boost::rational<long>(2, 1))
- (boost::tree_node::pre_order_traversal, 1, 1, 2,
- 1, 0, 3, boost::rational<long>(1, 2))
- (boost::tree_node::pre_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::post_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::post_order_traversal, 1, 1, 2,
- 1, 0, 3, boost::rational<long>(1, 2))
- (boost::tree_node::pre_order_traversal, 2, 1, 3,
- 3, 0, 5, boost::rational<long>(4, 3))
- (boost::tree_node::pre_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::post_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::pre_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 2, 1, 3,
- 3, 0, 5, boost::rational<long>(4, 3))
- (boost::tree_node::post_order_traversal, 3, 2, 6,
- 7, 1, 14, boost::rational<long>(2, 1))
- (boost::tree_node::pre_order_traversal, 2, 1, 3,
- 3, 0, 5, boost::rational<long>(4, 3))
- (boost::tree_node::pre_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::post_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::pre_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 2, 1, 3,
- 3, 0, 5, boost::rational<long>(4, 3))
- (boost::tree_node::post_order_traversal, 5, 3, 10,
- 15, 2, 29, boost::rational<long>(31, 10))
- (boost::tree_node::pre_order_traversal, 3, 2, 5,
- 7, 1, 11, boost::rational<long>(12, 5))
- (boost::tree_node::pre_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::pre_order_traversal, 2, 1, 3,
- 3, 0, 5, boost::rational<long>(4, 3))
- (boost::tree_node::pre_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::post_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::pre_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 2, 1, 3,
- 3, 0, 5, boost::rational<long>(4, 3))
- (boost::tree_node::post_order_traversal, 3, 2, 5,
- 7, 1, 11, boost::rational<long>(12, 5))
- (boost::tree_node::post_order_traversal, 4, 4, 16,
- 26, 3, 56, boost::rational<long>(69, 16))
- (boost::tree_node::post_order_traversal, 5, 5, 23,
- 38, 4, 93, boost::rational<long>(119, 23));
-#else // !defined BOOST_TREE_NODE_CAN_USE_FUSION
- emplacer[bf_vals]
- (5, 5, 23)(3, 2, 6)(4, 4, 16)(1, 1, 2)(2, 1, 3)(5, 3, 10)(3, 2, 5)
- (0, 0, 1)(0, 0, 1)(1, 0, 1)(3, 2, 6)(2, 1, 3)(1, 0, 1)(2, 1, 3)
- (1, 1, 2)(2, 1, 3)(0, 0, 1)(1, 0, 1)(0, 0, 1)(1, 0, 1)(0, 0, 1)
- (0, 0, 1)(1, 0, 1);
- emplacer[pre_vals]
- (5, 5, 23)(3, 2, 6)(1, 1, 2)(0, 0, 1)(2, 1, 3)(0, 0, 1)(1, 0, 1)
- (4, 4, 16)(5, 3, 10)(3, 2, 6)(1, 1, 2)(0, 0, 1)(2, 1, 3)(0, 0, 1)
- (1, 0, 1)(2, 1, 3)(0, 0, 1)(1, 0, 1)(3, 2, 5)(1, 0, 1)(2, 1, 3)
- (0, 0, 1)(1, 0, 1);
- emplacer[post_vals]
- (0, 0, 1)(1, 1, 2)(0, 0, 1)(1, 0, 1)(2, 1, 3)(3, 2, 6)(0, 0, 1)
- (1, 1, 2)(0, 0, 1)(1, 0, 1)(2, 1, 3)(3, 2, 6)(0, 0, 1)(1, 0, 1)
- (2, 1, 3)(5, 3, 10)(1, 0, 1)(0, 0, 1)(1, 0, 1)(2, 1, 3)(3, 2, 5)
- (4, 4, 16)(5, 5, 23);
- emplacer[in_vals]
- (0, 0, 1)(1, 1, 2)(3, 2, 6)(0, 0, 1)(2, 1, 3)(1, 0, 1)(5, 5, 23)
- (0, 0, 1)(1, 1, 2)(3, 2, 6)(0, 0, 1)(2, 1, 3)(1, 0, 1)(5, 3, 10)
- (0, 0, 1)(2, 1, 3)(1, 0, 1)(4, 4, 16)(1, 0, 1)(3, 2, 5)(0, 0, 1)
- (2, 1, 3)(1, 0, 1);
- emplacer[df_vals]
- (boost::tree_node::pre_order_traversal, 5, 5, 23)
- (boost::tree_node::pre_order_traversal, 3, 2, 6)
- (boost::tree_node::pre_order_traversal, 1, 1, 2)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 1, 2)
- (boost::tree_node::pre_order_traversal, 2, 1, 3)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 2, 1, 3)
- (boost::tree_node::post_order_traversal, 3, 2, 6)
- (boost::tree_node::pre_order_traversal, 4, 4, 16)
- (boost::tree_node::pre_order_traversal, 5, 3, 10)
- (boost::tree_node::pre_order_traversal, 3, 2, 6)
- (boost::tree_node::pre_order_traversal, 1, 1, 2)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 1, 2)
- (boost::tree_node::pre_order_traversal, 2, 1, 3)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 2, 1, 3)
- (boost::tree_node::post_order_traversal, 3, 2, 6)
- (boost::tree_node::pre_order_traversal, 2, 1, 3)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 2, 1, 3)
- (boost::tree_node::post_order_traversal, 5, 3, 10)
- (boost::tree_node::pre_order_traversal, 3, 2, 5)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 2, 1, 3)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 2, 1, 3)
- (boost::tree_node::post_order_traversal, 3, 2, 5)
- (boost::tree_node::post_order_traversal, 4, 4, 16)
- (boost::tree_node::post_order_traversal, 5, 5, 23);
-#endif // BOOST_NO_SFINAE
- test_node<a_node_case>(
- a_root
- , bf_vals
- , pre_vals
- , post_vals
- , in_vals
- , df_vals
- );
- }
-
- {
- ANode::pointer p(a_root.get_right_child_ptr()->get_right_child_ptr());
- ANode::iterator p_child_itr(p->emplace_right());
- Values bf_vals, pre_vals, post_vals, in_vals;
- DFValues df_vals;
- Emplacer emplacer;
-
- put(*p_child_itr, boost::tree_node::data_key(), 7);
-#if defined BOOST_TREE_NODE_CAN_USE_FUSION
- emplacer[bf_vals]
- (5, 5, 24, 45, 4, 100, boost::rational<long>(25, 4))
- (3, 2, 6, 7, 1, 14, boost::rational<long>(2, 1))
- (4, 4, 17, 33, 3, 62, boost::rational<long>(93, 17))
- (1, 1, 2, 1, 0, 3, boost::rational<long>(1, 2))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (5, 3, 10, 15, 2, 29, boost::rational<long>(31, 10))
- (3, 3, 6, 14, 2, 16, boost::rational<long>(29, 6))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (3, 2, 6, 7, 1, 14, boost::rational<long>(2, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (7, 2, 4, 10, 1, 9, boost::rational<long>(7, 2))
- (1, 1, 2, 1, 0, 3, boost::rational<long>(1, 2))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1));
- emplacer[pre_vals]
- (5, 5, 24, 45, 4, 100, boost::rational<long>(25, 4))
- (3, 2, 6, 7, 1, 14, boost::rational<long>(2, 1))
- (1, 1, 2, 1, 0, 3, boost::rational<long>(1, 2))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (4, 4, 17, 33, 3, 62, boost::rational<long>(93, 17))
- (5, 3, 10, 15, 2, 29, boost::rational<long>(31, 10))
- (3, 2, 6, 7, 1, 14, boost::rational<long>(2, 1))
- (1, 1, 2, 1, 0, 3, boost::rational<long>(1, 2))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (3, 3, 6, 14, 2, 16, boost::rational<long>(29, 6))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (7, 2, 4, 10, 1, 9, boost::rational<long>(7, 2))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1));
- emplacer[post_vals]
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 1, 2, 1, 0, 3, boost::rational<long>(1, 2))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (3, 2, 6, 7, 1, 14, boost::rational<long>(2, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 1, 2, 1, 0, 3, boost::rational<long>(1, 2))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (3, 2, 6, 7, 1, 14, boost::rational<long>(2, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (5, 3, 10, 15, 2, 29, boost::rational<long>(31, 10))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (7, 2, 4, 10, 1, 9, boost::rational<long>(7, 2))
- (3, 3, 6, 14, 2, 16, boost::rational<long>(29, 6))
- (4, 4, 17, 33, 3, 62, boost::rational<long>(93, 17))
- (5, 5, 24, 45, 4, 100, boost::rational<long>(25, 4));
- emplacer[in_vals]
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 1, 2, 1, 0, 3, boost::rational<long>(1, 2))
- (3, 2, 6, 7, 1, 14, boost::rational<long>(2, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (5, 5, 24, 45, 4, 100, boost::rational<long>(25, 4))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 1, 2, 1, 0, 3, boost::rational<long>(1, 2))
- (3, 2, 6, 7, 1, 14, boost::rational<long>(2, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (5, 3, 10, 15, 2, 29, boost::rational<long>(31, 10))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (4, 4, 17, 33, 3, 62, boost::rational<long>(93, 17))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (3, 3, 6, 14, 2, 16, boost::rational<long>(29, 6))
- (7, 2, 4, 10, 1, 9, boost::rational<long>(7, 2))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1));
- emplacer[df_vals]
- (boost::tree_node::pre_order_traversal, 5, 5, 24,
- 45, 4, 100, boost::rational<long>(25, 4))
- (boost::tree_node::pre_order_traversal, 3, 2, 6,
- 7, 1, 14, boost::rational<long>(2, 1))
- (boost::tree_node::pre_order_traversal, 1, 1, 2,
- 1, 0, 3, boost::rational<long>(1, 2))
- (boost::tree_node::pre_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::post_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::post_order_traversal, 1, 1, 2,
- 1, 0, 3, boost::rational<long>(1, 2))
- (boost::tree_node::pre_order_traversal, 2, 1, 3,
- 3, 0, 5, boost::rational<long>(4, 3))
- (boost::tree_node::pre_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::post_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::pre_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 2, 1, 3,
- 3, 0, 5, boost::rational<long>(4, 3))
- (boost::tree_node::post_order_traversal, 3, 2, 6,
- 7, 1, 14, boost::rational<long>(2, 1))
- (boost::tree_node::pre_order_traversal, 4, 4, 17,
- 33, 3, 62, boost::rational<long>(93, 17))
- (boost::tree_node::pre_order_traversal, 5, 3, 10,
- 15, 2, 29, boost::rational<long>(31, 10))
- (boost::tree_node::pre_order_traversal, 3, 2, 6,
- 7, 1, 14, boost::rational<long>(2, 1))
- (boost::tree_node::pre_order_traversal, 1, 1, 2,
- 1, 0, 3, boost::rational<long>(1, 2))
- (boost::tree_node::pre_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::post_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::post_order_traversal, 1, 1, 2,
- 1, 0, 3, boost::rational<long>(1, 2))
- (boost::tree_node::pre_order_traversal, 2, 1, 3,
- 3, 0, 5, boost::rational<long>(4, 3))
- (boost::tree_node::pre_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::post_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::pre_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 2, 1, 3,
- 3, 0, 5, boost::rational<long>(4, 3))
- (boost::tree_node::post_order_traversal, 3, 2, 6,
- 7, 1, 14, boost::rational<long>(2, 1))
- (boost::tree_node::pre_order_traversal, 2, 1, 3,
- 3, 0, 5, boost::rational<long>(4, 3))
- (boost::tree_node::pre_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::post_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::pre_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 2, 1, 3,
- 3, 0, 5, boost::rational<long>(4, 3))
- (boost::tree_node::post_order_traversal, 5, 3, 10,
- 15, 2, 29, boost::rational<long>(31, 10))
- (boost::tree_node::pre_order_traversal, 3, 3, 6,
- 14, 2, 16, boost::rational<long>(29, 6))
- (boost::tree_node::pre_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::pre_order_traversal, 7, 2, 4,
- 10, 1, 9, boost::rational<long>(7, 2))
- (boost::tree_node::pre_order_traversal, 2, 1, 3,
- 3, 0, 5, boost::rational<long>(4, 3))
- (boost::tree_node::pre_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::post_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::pre_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 2, 1, 3,
- 3, 0, 5, boost::rational<long>(4, 3))
- (boost::tree_node::post_order_traversal, 7, 2, 4,
- 10, 1, 9, boost::rational<long>(7, 2))
- (boost::tree_node::post_order_traversal, 3, 3, 6,
- 14, 2, 16, boost::rational<long>(29, 6))
- (boost::tree_node::post_order_traversal, 4, 4, 17,
- 33, 3, 62, boost::rational<long>(93, 17))
- (boost::tree_node::post_order_traversal, 5, 5, 24,
- 45, 4, 100, boost::rational<long>(25, 4));
-#else // !defined BOOST_TREE_NODE_CAN_USE_FUSION
- emplacer[bf_vals]
- (5, 5, 24)(3, 2, 6)(4, 4, 17)(1, 1, 2)(2, 1, 3)(5, 3, 10)(3, 3, 6)
- (0, 0, 1)(0, 0, 1)(1, 0, 1)(3, 2, 6)(2, 1, 3)(1, 0, 1)(7, 2, 4)
- (1, 1, 2)(2, 1, 3)(0, 0, 1)(1, 0, 1)(2, 1, 3)(0, 0, 1)(0, 0, 1)
- (1, 0, 1)(0, 0, 1)(1, 0, 1);
- emplacer[pre_vals]
- (5, 5, 24)(3, 2, 6)(1, 1, 2)(0, 0, 1)(2, 1, 3)(0, 0, 1)(1, 0, 1)
- (4, 4, 17)(5, 3, 10)(3, 2, 6)(1, 1, 2)(0, 0, 1)(2, 1, 3)(0, 0, 1)
- (1, 0, 1)(2, 1, 3)(0, 0, 1)(1, 0, 1)(3, 3, 6)(1, 0, 1)(7, 2, 4)
- (2, 1, 3)(0, 0, 1)(1, 0, 1);
- emplacer[post_vals]
- (0, 0, 1)(1, 1, 2)(0, 0, 1)(1, 0, 1)(2, 1, 3)(3, 2, 6)(0, 0, 1)
- (1, 1, 2)(0, 0, 1)(1, 0, 1)(2, 1, 3)(3, 2, 6)(0, 0, 1)(1, 0, 1)
- (2, 1, 3)(5, 3, 10)(1, 0, 1)(0, 0, 1)(1, 0, 1)(2, 1, 3)(7, 2, 4)
- (3, 3, 6)(4, 4, 17)(5, 5, 24);
- emplacer[in_vals]
- (0, 0, 1)(1, 1, 2)(3, 2, 6)(0, 0, 1)(2, 1, 3)(1, 0, 1)(5, 5, 24)
- (0, 0, 1)(1, 1, 2)(3, 2, 6)(0, 0, 1)(2, 1, 3)(1, 0, 1)(5, 3, 10)
- (0, 0, 1)(2, 1, 3)(1, 0, 1)(4, 4, 17)(1, 0, 1)(3, 3, 6)(7, 2, 4)
- (0, 0, 1)(2, 1, 3)(1, 0, 1);
- emplacer[df_vals]
- (boost::tree_node::pre_order_traversal, 5, 5, 24)
- (boost::tree_node::pre_order_traversal, 3, 2, 6)
- (boost::tree_node::pre_order_traversal, 1, 1, 2)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 1, 2)
- (boost::tree_node::pre_order_traversal, 2, 1, 3)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 2, 1, 3)
- (boost::tree_node::post_order_traversal, 3, 2, 6)
- (boost::tree_node::pre_order_traversal, 4, 4, 17)
- (boost::tree_node::pre_order_traversal, 5, 3, 10)
- (boost::tree_node::pre_order_traversal, 3, 2, 6)
- (boost::tree_node::pre_order_traversal, 1, 1, 2)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 1, 2)
- (boost::tree_node::pre_order_traversal, 2, 1, 3)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 2, 1, 3)
- (boost::tree_node::post_order_traversal, 3, 2, 6)
- (boost::tree_node::pre_order_traversal, 2, 1, 3)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 2, 1, 3)
- (boost::tree_node::post_order_traversal, 5, 3, 10)
- (boost::tree_node::pre_order_traversal, 3, 3, 6)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 7, 2, 4)
- (boost::tree_node::pre_order_traversal, 2, 1, 3)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 2, 1, 3)
- (boost::tree_node::post_order_traversal, 7, 2, 4)
- (boost::tree_node::post_order_traversal, 3, 3, 6)
- (boost::tree_node::post_order_traversal, 4, 4, 17)
- (boost::tree_node::post_order_traversal, 5, 5, 24);
-#endif // BOOST_NO_SFINAE
- test_node<a_node_case>(
- a_root
- , bf_vals
- , pre_vals
- , post_vals
- , in_vals
- , df_vals
- );
- }
-
- a_root.get_left_child_ptr()->rotate_right();
-
- {
- Values bf_vals, pre_vals, post_vals, in_vals;
- DFValues df_vals;
- Emplacer emplacer;
-
-#if defined BOOST_TREE_NODE_CAN_USE_FUSION
- emplacer[bf_vals]
- (5, 5, 24, 45, 4, 102, boost::rational<long>(155, 24))
- (1, 1, 6, 7, 2, 16, boost::rational<long>(17, 6))
- (4, 4, 17, 33, 3, 62, boost::rational<long>(93, 17))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (3, 2, 4, 6, 1, 9, boost::rational<long>(5, 2))
- (5, 3, 10, 15, 2, 29, boost::rational<long>(31, 10))
- (3, 3, 6, 14, 2, 16, boost::rational<long>(29, 6))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (3, 2, 6, 7, 1, 14, boost::rational<long>(2, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (7, 2, 4, 10, 1, 9, boost::rational<long>(7, 2))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (1, 1, 2, 1, 0, 3, boost::rational<long>(1, 2))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1));
- emplacer[pre_vals]
- (5, 5, 24, 45, 4, 102, boost::rational<long>(155, 24))
- (1, 1, 6, 7, 2, 16, boost::rational<long>(17, 6))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (3, 2, 4, 6, 1, 9, boost::rational<long>(5, 2))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (4, 4, 17, 33, 3, 62, boost::rational<long>(93, 17))
- (5, 3, 10, 15, 2, 29, boost::rational<long>(31, 10))
- (3, 2, 6, 7, 1, 14, boost::rational<long>(2, 1))
- (1, 1, 2, 1, 0, 3, boost::rational<long>(1, 2))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (3, 3, 6, 14, 2, 16, boost::rational<long>(29, 6))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (7, 2, 4, 10, 1, 9, boost::rational<long>(7, 2))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1));
- emplacer[post_vals]
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (3, 2, 4, 6, 1, 9, boost::rational<long>(5, 2))
- (1, 1, 6, 7, 2, 16, boost::rational<long>(17, 6))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 1, 2, 1, 0, 3, boost::rational<long>(1, 2))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (3, 2, 6, 7, 1, 14, boost::rational<long>(2, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (5, 3, 10, 15, 2, 29, boost::rational<long>(31, 10))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (7, 2, 4, 10, 1, 9, boost::rational<long>(7, 2))
- (3, 3, 6, 14, 2, 16, boost::rational<long>(29, 6))
- (4, 4, 17, 33, 3, 62, boost::rational<long>(93, 17))
- (5, 5, 24, 45, 4, 102, boost::rational<long>(155, 24));
- emplacer[in_vals]
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 1, 6, 7, 2, 16, boost::rational<long>(17, 6))
- (3, 2, 4, 6, 1, 9, boost::rational<long>(5, 2))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (5, 5, 24, 45, 4, 102, boost::rational<long>(155, 24))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 1, 2, 1, 0, 3, boost::rational<long>(1, 2))
- (3, 2, 6, 7, 1, 14, boost::rational<long>(2, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (5, 3, 10, 15, 2, 29, boost::rational<long>(31, 10))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (4, 4, 17, 33, 3, 62, boost::rational<long>(93, 17))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (3, 3, 6, 14, 2, 16, boost::rational<long>(29, 6))
- (7, 2, 4, 10, 1, 9, boost::rational<long>(7, 2))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1));
- emplacer[df_vals]
- (boost::tree_node::pre_order_traversal, 5, 5, 24,
- 45, 4, 102, boost::rational<long>(155, 24))
- (boost::tree_node::pre_order_traversal, 1, 1, 6,
- 7, 2, 16, boost::rational<long>(17, 6))
- (boost::tree_node::pre_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::post_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::pre_order_traversal, 3, 2, 4,
- 6, 1, 9, boost::rational<long>(5, 2))
- (boost::tree_node::pre_order_traversal, 2, 1, 3,
- 3, 0, 5, boost::rational<long>(4, 3))
- (boost::tree_node::pre_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::post_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::pre_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 2, 1, 3,
- 3, 0, 5, boost::rational<long>(4, 3))
- (boost::tree_node::post_order_traversal, 3, 2, 4,
- 6, 1, 9, boost::rational<long>(5, 2))
- (boost::tree_node::post_order_traversal, 1, 1, 6,
- 7, 2, 16, boost::rational<long>(17, 6))
- (boost::tree_node::pre_order_traversal, 4, 4, 17,
- 33, 3, 62, boost::rational<long>(93, 17))
- (boost::tree_node::pre_order_traversal, 5, 3, 10,
- 15, 2, 29, boost::rational<long>(31, 10))
- (boost::tree_node::pre_order_traversal, 3, 2, 6,
- 7, 1, 14, boost::rational<long>(2, 1))
- (boost::tree_node::pre_order_traversal, 1, 1, 2,
- 1, 0, 3, boost::rational<long>(1, 2))
- (boost::tree_node::pre_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::post_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::post_order_traversal, 1, 1, 2,
- 1, 0, 3, boost::rational<long>(1, 2))
- (boost::tree_node::pre_order_traversal, 2, 1, 3,
- 3, 0, 5, boost::rational<long>(4, 3))
- (boost::tree_node::pre_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::post_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::pre_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 2, 1, 3,
- 3, 0, 5, boost::rational<long>(4, 3))
- (boost::tree_node::post_order_traversal, 3, 2, 6,
- 7, 1, 14, boost::rational<long>(2, 1))
- (boost::tree_node::pre_order_traversal, 2, 1, 3,
- 3, 0, 5, boost::rational<long>(4, 3))
- (boost::tree_node::pre_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::post_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::pre_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 2, 1, 3,
- 3, 0, 5, boost::rational<long>(4, 3))
- (boost::tree_node::post_order_traversal, 5, 3, 10,
- 15, 2, 29, boost::rational<long>(31, 10))
- (boost::tree_node::pre_order_traversal, 3, 3, 6,
- 14, 2, 16, boost::rational<long>(29, 6))
- (boost::tree_node::pre_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::pre_order_traversal, 7, 2, 4,
- 10, 1, 9, boost::rational<long>(7, 2))
- (boost::tree_node::pre_order_traversal, 2, 1, 3,
- 3, 0, 5, boost::rational<long>(4, 3))
- (boost::tree_node::pre_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::post_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::pre_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 2, 1, 3,
- 3, 0, 5, boost::rational<long>(4, 3))
- (boost::tree_node::post_order_traversal, 7, 2, 4,
- 10, 1, 9, boost::rational<long>(7, 2))
- (boost::tree_node::post_order_traversal, 3, 3, 6,
- 14, 2, 16, boost::rational<long>(29, 6))
- (boost::tree_node::post_order_traversal, 4, 4, 17,
- 33, 3, 62, boost::rational<long>(93, 17))
- (boost::tree_node::post_order_traversal, 5, 5, 24,
- 45, 4, 102, boost::rational<long>(155, 24));
-#else // !defined BOOST_TREE_NODE_CAN_USE_FUSION
- emplacer[bf_vals]
- (5, 5, 24)(1, 1, 6)(4, 4, 17)(0, 0, 1)(3, 2, 4)(5, 3, 10)(3, 3, 6)
- (2, 1, 3)(3, 2, 6)(2, 1, 3)(1, 0, 1)(7, 2, 4)(0, 0, 1)(1, 0, 1)
- (1, 1, 2)(2, 1, 3)(0, 0, 1)(1, 0, 1)(2, 1, 3)(0, 0, 1)(0, 0, 1)
- (1, 0, 1)(0, 0, 1)(1, 0, 1);
- emplacer[pre_vals]
- (5, 5, 24)(1, 1, 6)(0, 0, 1)(3, 2, 4)(2, 1, 3)(0, 0, 1)(1, 0, 1)
- (4, 4, 17)(5, 3, 10)(3, 2, 6)(1, 1, 2)(0, 0, 1)(2, 1, 3)(0, 0, 1)
- (1, 0, 1)(2, 1, 3)(0, 0, 1)(1, 0, 1)(3, 3, 6)(1, 0, 1)(7, 2, 4)
- (2, 1, 3)(0, 0, 1)(1, 0, 1);
- emplacer[post_vals]
- (0, 0, 1)(0, 0, 1)(1, 0, 1)(2, 1, 3)(3, 2, 4)(1, 1, 6)(0, 0, 1)
- (1, 1, 2)(0, 0, 1)(1, 0, 1)(2, 1, 3)(3, 2, 6)(0, 0, 1)(1, 0, 1)
- (2, 1, 3)(5, 3, 10)(1, 0, 1)(0, 0, 1)(1, 0, 1)(2, 1, 3)(7, 2, 4)
- (3, 3, 6)(4, 4, 17)(5, 5, 24);
- emplacer[in_vals]
- (0, 0, 1)(1, 1, 6)(3, 2, 4)(0, 0, 1)(2, 1, 3)(1, 0, 1)(5, 5, 24)
- (0, 0, 1)(1, 1, 2)(3, 2, 6)(0, 0, 1)(2, 1, 3)(1, 0, 1)(5, 3, 10)
- (0, 0, 1)(2, 1, 3)(1, 0, 1)(4, 4, 17)(1, 0, 1)(3, 3, 6)(7, 2, 4)
- (0, 0, 1)(2, 1, 3)(1, 0, 1);
- emplacer[df_vals]
- (boost::tree_node::pre_order_traversal, 5, 5, 24)
- (boost::tree_node::pre_order_traversal, 1, 1, 6)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 3, 2, 4)
- (boost::tree_node::pre_order_traversal, 2, 1, 3)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 2, 1, 3)
- (boost::tree_node::post_order_traversal, 3, 2, 4)
- (boost::tree_node::post_order_traversal, 1, 1, 6)
- (boost::tree_node::pre_order_traversal, 4, 4, 17)
- (boost::tree_node::pre_order_traversal, 5, 3, 10)
- (boost::tree_node::pre_order_traversal, 3, 2, 6)
- (boost::tree_node::pre_order_traversal, 1, 1, 2)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 1, 2)
- (boost::tree_node::pre_order_traversal, 2, 1, 3)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 2, 1, 3)
- (boost::tree_node::post_order_traversal, 3, 2, 6)
- (boost::tree_node::pre_order_traversal, 2, 1, 3)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 2, 1, 3)
- (boost::tree_node::post_order_traversal, 5, 3, 10)
- (boost::tree_node::pre_order_traversal, 3, 3, 6)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 7, 2, 4)
- (boost::tree_node::pre_order_traversal, 2, 1, 3)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 2, 1, 3)
- (boost::tree_node::post_order_traversal, 7, 2, 4)
- (boost::tree_node::post_order_traversal, 3, 3, 6)
- (boost::tree_node::post_order_traversal, 4, 4, 17)
- (boost::tree_node::post_order_traversal, 5, 5, 24);
-#endif // BOOST_NO_SFINAE
- test_node<a_node_case>(
- a_root
- , bf_vals
- , pre_vals
- , post_vals
- , in_vals
- , df_vals
- );
- }
-
- a_root.get_left_child_ptr()->rotate_left();
-
- {
- Values bf_vals, pre_vals, post_vals, in_vals;
- DFValues df_vals;
- Emplacer emplacer;
-
-#if defined BOOST_TREE_NODE_CAN_USE_FUSION
- emplacer[bf_vals]
- (5, 5, 24, 45, 4, 100, boost::rational<long>(25, 4))
- (3, 2, 6, 7, 1, 14, boost::rational<long>(2, 1))
- (4, 4, 17, 33, 3, 62, boost::rational<long>(93, 17))
- (1, 1, 2, 1, 0, 3, boost::rational<long>(1, 2))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (5, 3, 10, 15, 2, 29, boost::rational<long>(31, 10))
- (3, 3, 6, 14, 2, 16, boost::rational<long>(29, 6))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (3, 2, 6, 7, 1, 14, boost::rational<long>(2, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (7, 2, 4, 10, 1, 9, boost::rational<long>(7, 2))
- (1, 1, 2, 1, 0, 3, boost::rational<long>(1, 2))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1));
- emplacer[pre_vals]
- (5, 5, 24, 45, 4, 100, boost::rational<long>(25, 4))
- (3, 2, 6, 7, 1, 14, boost::rational<long>(2, 1))
- (1, 1, 2, 1, 0, 3, boost::rational<long>(1, 2))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (4, 4, 17, 33, 3, 62, boost::rational<long>(93, 17))
- (5, 3, 10, 15, 2, 29, boost::rational<long>(31, 10))
- (3, 2, 6, 7, 1, 14, boost::rational<long>(2, 1))
- (1, 1, 2, 1, 0, 3, boost::rational<long>(1, 2))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (3, 3, 6, 14, 2, 16, boost::rational<long>(29, 6))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (7, 2, 4, 10, 1, 9, boost::rational<long>(7, 2))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1));
- emplacer[post_vals]
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 1, 2, 1, 0, 3, boost::rational<long>(1, 2))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (3, 2, 6, 7, 1, 14, boost::rational<long>(2, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 1, 2, 1, 0, 3, boost::rational<long>(1, 2))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (3, 2, 6, 7, 1, 14, boost::rational<long>(2, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (5, 3, 10, 15, 2, 29, boost::rational<long>(31, 10))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (7, 2, 4, 10, 1, 9, boost::rational<long>(7, 2))
- (3, 3, 6, 14, 2, 16, boost::rational<long>(29, 6))
- (4, 4, 17, 33, 3, 62, boost::rational<long>(93, 17))
- (5, 5, 24, 45, 4, 100, boost::rational<long>(25, 4));
- emplacer[in_vals]
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 1, 2, 1, 0, 3, boost::rational<long>(1, 2))
- (3, 2, 6, 7, 1, 14, boost::rational<long>(2, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (5, 5, 24, 45, 4, 100, boost::rational<long>(25, 4))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 1, 2, 1, 0, 3, boost::rational<long>(1, 2))
- (3, 2, 6, 7, 1, 14, boost::rational<long>(2, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (5, 3, 10, 15, 2, 29, boost::rational<long>(31, 10))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (4, 4, 17, 33, 3, 62, boost::rational<long>(93, 17))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (3, 3, 6, 14, 2, 16, boost::rational<long>(29, 6))
- (7, 2, 4, 10, 1, 9, boost::rational<long>(7, 2))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1));
- emplacer[df_vals]
- (boost::tree_node::pre_order_traversal, 5, 5, 24,
- 45, 4, 100, boost::rational<long>(25, 4))
- (boost::tree_node::pre_order_traversal, 3, 2, 6,
- 7, 1, 14, boost::rational<long>(2, 1))
- (boost::tree_node::pre_order_traversal, 1, 1, 2,
- 1, 0, 3, boost::rational<long>(1, 2))
- (boost::tree_node::pre_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::post_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::post_order_traversal, 1, 1, 2,
- 1, 0, 3, boost::rational<long>(1, 2))
- (boost::tree_node::pre_order_traversal, 2, 1, 3,
- 3, 0, 5, boost::rational<long>(4, 3))
- (boost::tree_node::pre_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::post_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::pre_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 2, 1, 3,
- 3, 0, 5, boost::rational<long>(4, 3))
- (boost::tree_node::post_order_traversal, 3, 2, 6,
- 7, 1, 14, boost::rational<long>(2, 1))
- (boost::tree_node::pre_order_traversal, 4, 4, 17,
- 33, 3, 62, boost::rational<long>(93, 17))
- (boost::tree_node::pre_order_traversal, 5, 3, 10,
- 15, 2, 29, boost::rational<long>(31, 10))
- (boost::tree_node::pre_order_traversal, 3, 2, 6,
- 7, 1, 14, boost::rational<long>(2, 1))
- (boost::tree_node::pre_order_traversal, 1, 1, 2,
- 1, 0, 3, boost::rational<long>(1, 2))
- (boost::tree_node::pre_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::post_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::post_order_traversal, 1, 1, 2,
- 1, 0, 3, boost::rational<long>(1, 2))
- (boost::tree_node::pre_order_traversal, 2, 1, 3,
- 3, 0, 5, boost::rational<long>(4, 3))
- (boost::tree_node::pre_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::post_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::pre_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 2, 1, 3,
- 3, 0, 5, boost::rational<long>(4, 3))
- (boost::tree_node::post_order_traversal, 3, 2, 6,
- 7, 1, 14, boost::rational<long>(2, 1))
- (boost::tree_node::pre_order_traversal, 2, 1, 3,
- 3, 0, 5, boost::rational<long>(4, 3))
- (boost::tree_node::pre_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::post_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::pre_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 2, 1, 3,
- 3, 0, 5, boost::rational<long>(4, 3))
- (boost::tree_node::post_order_traversal, 5, 3, 10,
- 15, 2, 29, boost::rational<long>(31, 10))
- (boost::tree_node::pre_order_traversal, 3, 3, 6,
- 14, 2, 16, boost::rational<long>(29, 6))
- (boost::tree_node::pre_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::pre_order_traversal, 7, 2, 4,
- 10, 1, 9, boost::rational<long>(7, 2))
- (boost::tree_node::pre_order_traversal, 2, 1, 3,
- 3, 0, 5, boost::rational<long>(4, 3))
- (boost::tree_node::pre_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::post_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::pre_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 2, 1, 3,
- 3, 0, 5, boost::rational<long>(4, 3))
- (boost::tree_node::post_order_traversal, 7, 2, 4,
- 10, 1, 9, boost::rational<long>(7, 2))
- (boost::tree_node::post_order_traversal, 3, 3, 6,
- 14, 2, 16, boost::rational<long>(29, 6))
- (boost::tree_node::post_order_traversal, 4, 4, 17,
- 33, 3, 62, boost::rational<long>(93, 17))
- (boost::tree_node::post_order_traversal, 5, 5, 24,
- 45, 4, 100, boost::rational<long>(25, 4));
-#else // !defined BOOST_TREE_NODE_CAN_USE_FUSION
- emplacer[bf_vals]
- (5, 5, 24)(3, 2, 6)(4, 4, 17)(1, 1, 2)(2, 1, 3)(5, 3, 10)(3, 3, 6)
- (0, 0, 1)(0, 0, 1)(1, 0, 1)(3, 2, 6)(2, 1, 3)(1, 0, 1)(7, 2, 4)
- (1, 1, 2)(2, 1, 3)(0, 0, 1)(1, 0, 1)(2, 1, 3)(0, 0, 1)(0, 0, 1)
- (1, 0, 1)(0, 0, 1)(1, 0, 1);
- emplacer[pre_vals]
- (5, 5, 24)(3, 2, 6)(1, 1, 2)(0, 0, 1)(2, 1, 3)(0, 0, 1)(1, 0, 1)
- (4, 4, 17)(5, 3, 10)(3, 2, 6)(1, 1, 2)(0, 0, 1)(2, 1, 3)(0, 0, 1)
- (1, 0, 1)(2, 1, 3)(0, 0, 1)(1, 0, 1)(3, 3, 6)(1, 0, 1)(7, 2, 4)
- (2, 1, 3)(0, 0, 1)(1, 0, 1);
- emplacer[post_vals]
- (0, 0, 1)(1, 1, 2)(0, 0, 1)(1, 0, 1)(2, 1, 3)(3, 2, 6)(0, 0, 1)
- (1, 1, 2)(0, 0, 1)(1, 0, 1)(2, 1, 3)(3, 2, 6)(0, 0, 1)(1, 0, 1)
- (2, 1, 3)(5, 3, 10)(1, 0, 1)(0, 0, 1)(1, 0, 1)(2, 1, 3)(7, 2, 4)
- (3, 3, 6)(4, 4, 17)(5, 5, 24);
- emplacer[in_vals]
- (0, 0, 1)(1, 1, 2)(3, 2, 6)(0, 0, 1)(2, 1, 3)(1, 0, 1)(5, 5, 24)
- (0, 0, 1)(1, 1, 2)(3, 2, 6)(0, 0, 1)(2, 1, 3)(1, 0, 1)(5, 3, 10)
- (0, 0, 1)(2, 1, 3)(1, 0, 1)(4, 4, 17)(1, 0, 1)(3, 3, 6)(7, 2, 4)
- (0, 0, 1)(2, 1, 3)(1, 0, 1);
- emplacer[df_vals]
- (boost::tree_node::pre_order_traversal, 5, 5, 24)
- (boost::tree_node::pre_order_traversal, 3, 2, 6)
- (boost::tree_node::pre_order_traversal, 1, 1, 2)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 1, 2)
- (boost::tree_node::pre_order_traversal, 2, 1, 3)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 2, 1, 3)
- (boost::tree_node::post_order_traversal, 3, 2, 6)
- (boost::tree_node::pre_order_traversal, 4, 4, 17)
- (boost::tree_node::pre_order_traversal, 5, 3, 10)
- (boost::tree_node::pre_order_traversal, 3, 2, 6)
- (boost::tree_node::pre_order_traversal, 1, 1, 2)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 1, 2)
- (boost::tree_node::pre_order_traversal, 2, 1, 3)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 2, 1, 3)
- (boost::tree_node::post_order_traversal, 3, 2, 6)
- (boost::tree_node::pre_order_traversal, 2, 1, 3)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 2, 1, 3)
- (boost::tree_node::post_order_traversal, 5, 3, 10)
- (boost::tree_node::pre_order_traversal, 3, 3, 6)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 7, 2, 4)
- (boost::tree_node::pre_order_traversal, 2, 1, 3)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 2, 1, 3)
- (boost::tree_node::post_order_traversal, 7, 2, 4)
- (boost::tree_node::post_order_traversal, 3, 3, 6)
- (boost::tree_node::post_order_traversal, 4, 4, 17)
- (boost::tree_node::post_order_traversal, 5, 5, 24);
-#endif // BOOST_NO_SFINAE
- test_node<a_node_case>(
- a_root
- , bf_vals
- , pre_vals
- , post_vals
- , in_vals
- , df_vals
- );
- }
-
- a_root.begin()->clear();
-
- {
- Values bf_vals, pre_vals, post_vals, in_vals;
- DFValues df_vals;
- Emplacer emplacer;
-
-#if defined BOOST_TREE_NODE_CAN_USE_FUSION
- emplacer[bf_vals]
- (5, 5, 19, 41, 4, 82, boost::rational<long>(137, 19))
- (3, 0, 1, 3, 0, 1, boost::rational<long>(3, 1))
- (4, 4, 17, 33, 3, 62, boost::rational<long>(93, 17))
- (5, 3, 10, 15, 2, 29, boost::rational<long>(31, 10))
- (3, 3, 6, 14, 2, 16, boost::rational<long>(29, 6))
- (3, 2, 6, 7, 1, 14, boost::rational<long>(2, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (7, 2, 4, 10, 1, 9, boost::rational<long>(7, 2))
- (1, 1, 2, 1, 0, 3, boost::rational<long>(1, 2))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1));
- emplacer[pre_vals]
- (5, 5, 19, 41, 4, 82, boost::rational<long>(137, 19))
- (3, 0, 1, 3, 0, 1, boost::rational<long>(3, 1))
- (4, 4, 17, 33, 3, 62, boost::rational<long>(93, 17))
- (5, 3, 10, 15, 2, 29, boost::rational<long>(31, 10))
- (3, 2, 6, 7, 1, 14, boost::rational<long>(2, 1))
- (1, 1, 2, 1, 0, 3, boost::rational<long>(1, 2))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (3, 3, 6, 14, 2, 16, boost::rational<long>(29, 6))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (7, 2, 4, 10, 1, 9, boost::rational<long>(7, 2))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1));
- emplacer[post_vals]
- (3, 0, 1, 3, 0, 1, boost::rational<long>(3, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 1, 2, 1, 0, 3, boost::rational<long>(1, 2))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (3, 2, 6, 7, 1, 14, boost::rational<long>(2, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (5, 3, 10, 15, 2, 29, boost::rational<long>(31, 10))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (7, 2, 4, 10, 1, 9, boost::rational<long>(7, 2))
- (3, 3, 6, 14, 2, 16, boost::rational<long>(29, 6))
- (4, 4, 17, 33, 3, 62, boost::rational<long>(93, 17))
- (5, 5, 19, 41, 4, 82, boost::rational<long>(137, 19));
- emplacer[in_vals]
- (3, 0, 1, 3, 0, 1, boost::rational<long>(3, 1))
- (5, 5, 19, 41, 4, 82, boost::rational<long>(137, 19))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 1, 2, 1, 0, 3, boost::rational<long>(1, 2))
- (3, 2, 6, 7, 1, 14, boost::rational<long>(2, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (5, 3, 10, 15, 2, 29, boost::rational<long>(31, 10))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (4, 4, 17, 33, 3, 62, boost::rational<long>(93, 17))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (3, 3, 6, 14, 2, 16, boost::rational<long>(29, 6))
- (7, 2, 4, 10, 1, 9, boost::rational<long>(7, 2))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1));
- emplacer[df_vals]
- (boost::tree_node::pre_order_traversal, 5, 5, 19,
- 41, 4, 82, boost::rational<long>(137, 19))
- (boost::tree_node::pre_order_traversal, 3, 0, 1,
- 3, 0, 1, boost::rational<long>(3, 1))
- (boost::tree_node::post_order_traversal, 3, 0, 1,
- 3, 0, 1, boost::rational<long>(3, 1))
- (boost::tree_node::pre_order_traversal, 4, 4, 17,
- 33, 3, 62, boost::rational<long>(93, 17))
- (boost::tree_node::pre_order_traversal, 5, 3, 10,
- 15, 2, 29, boost::rational<long>(31, 10))
- (boost::tree_node::pre_order_traversal, 3, 2, 6,
- 7, 1, 14, boost::rational<long>(2, 1))
- (boost::tree_node::pre_order_traversal, 1, 1, 2,
- 1, 0, 3, boost::rational<long>(1, 2))
- (boost::tree_node::pre_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::post_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::post_order_traversal, 1, 1, 2,
- 1, 0, 3, boost::rational<long>(1, 2))
- (boost::tree_node::pre_order_traversal, 2, 1, 3,
- 3, 0, 5, boost::rational<long>(4, 3))
- (boost::tree_node::pre_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::post_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::pre_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 2, 1, 3,
- 3, 0, 5, boost::rational<long>(4, 3))
- (boost::tree_node::post_order_traversal, 3, 2, 6,
- 7, 1, 14, boost::rational<long>(2, 1))
- (boost::tree_node::pre_order_traversal, 2, 1, 3,
- 3, 0, 5, boost::rational<long>(4, 3))
- (boost::tree_node::pre_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::post_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::pre_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 2, 1, 3,
- 3, 0, 5, boost::rational<long>(4, 3))
- (boost::tree_node::post_order_traversal, 5, 3, 10,
- 15, 2, 29, boost::rational<long>(31, 10))
- (boost::tree_node::pre_order_traversal, 3, 3, 6,
- 14, 2, 16, boost::rational<long>(29, 6))
- (boost::tree_node::pre_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::pre_order_traversal, 7, 2, 4,
- 10, 1, 9, boost::rational<long>(7, 2))
- (boost::tree_node::pre_order_traversal, 2, 1, 3,
- 3, 0, 5, boost::rational<long>(4, 3))
- (boost::tree_node::pre_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::post_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::pre_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 2, 1, 3,
- 3, 0, 5, boost::rational<long>(4, 3))
- (boost::tree_node::post_order_traversal, 7, 2, 4,
- 10, 1, 9, boost::rational<long>(7, 2))
- (boost::tree_node::post_order_traversal, 3, 3, 6,
- 14, 2, 16, boost::rational<long>(29, 6))
- (boost::tree_node::post_order_traversal, 4, 4, 17,
- 33, 3, 62, boost::rational<long>(93, 17))
- (boost::tree_node::post_order_traversal, 5, 5, 19,
- 41, 4, 82, boost::rational<long>(137, 19));
-#else // !defined BOOST_TREE_NODE_CAN_USE_FUSION
- emplacer[bf_vals]
- (5, 5, 19)(3, 0, 1)(4, 4, 17)(5, 3, 10)(3, 3, 6)(3, 2, 6)(2, 1, 3)
- (1, 0, 1)(7, 2, 4)(1, 1, 2)(2, 1, 3)(0, 0, 1)(1, 0, 1)(2, 1, 3)
- (0, 0, 1)(0, 0, 1)(1, 0, 1)(0, 0, 1)(1, 0, 1);
- emplacer[pre_vals]
- (5, 5, 19)(3, 0, 1)(4, 4, 17)(5, 3, 10)(3, 2, 6)(1, 1, 2)(0, 0, 1)
- (2, 1, 3)(0, 0, 1)(1, 0, 1)(2, 1, 3)(0, 0, 1)(1, 0, 1)(3, 3, 6)
- (1, 0, 1)(7, 2, 4)(2, 1, 3)(0, 0, 1)(1, 0, 1);
- emplacer[post_vals]
- (3, 0, 1)(0, 0, 1)(1, 1, 2)(0, 0, 1)(1, 0, 1)(2, 1, 3)(3, 2, 6)
- (0, 0, 1)(1, 0, 1)(2, 1, 3)(5, 3, 10)(1, 0, 1)(0, 0, 1)(1, 0, 1)
- (2, 1, 3)(7, 2, 4)(3, 3, 6)(4, 4, 17)(5, 5, 19);
- emplacer[in_vals]
- (3, 0, 1)(5, 5, 19)(0, 0, 1)(1, 1, 2)(3, 2, 6)(0, 0, 1)(2, 1, 3)
- (1, 0, 1)(5, 3, 10)(0, 0, 1)(2, 1, 3)(1, 0, 1)(4, 4, 17)(1, 0, 1)
- (3, 3, 6)(7, 2, 4)(0, 0, 1)(2, 1, 3)(1, 0, 1);
- emplacer[df_vals]
- (boost::tree_node::pre_order_traversal, 5, 5, 19)
- (boost::tree_node::pre_order_traversal, 3, 0, 1)
- (boost::tree_node::post_order_traversal, 3, 0, 1)
- (boost::tree_node::pre_order_traversal, 4, 4, 17)
- (boost::tree_node::pre_order_traversal, 5, 3, 10)
- (boost::tree_node::pre_order_traversal, 3, 2, 6)
- (boost::tree_node::pre_order_traversal, 1, 1, 2)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 1, 2)
- (boost::tree_node::pre_order_traversal, 2, 1, 3)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 2, 1, 3)
- (boost::tree_node::post_order_traversal, 3, 2, 6)
- (boost::tree_node::pre_order_traversal, 2, 1, 3)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 2, 1, 3)
- (boost::tree_node::post_order_traversal, 5, 3, 10)
- (boost::tree_node::pre_order_traversal, 3, 3, 6)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 7, 2, 4)
- (boost::tree_node::pre_order_traversal, 2, 1, 3)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 2, 1, 3)
- (boost::tree_node::post_order_traversal, 7, 2, 4)
- (boost::tree_node::post_order_traversal, 3, 3, 6)
- (boost::tree_node::post_order_traversal, 4, 4, 17)
- (boost::tree_node::post_order_traversal, 5, 5, 19);
-#endif // BOOST_NO_SFINAE
- test_node<a_node_case>(
- a_root
- , bf_vals
- , pre_vals
- , post_vals
- , in_vals
- , df_vals
- );
- }
-
-#if defined BOOST_TREE_NODE_CAN_USE_FUSION
- typedef boost::tree_node::with_accumulation<
- boost::tree_node::binary_node_base_gen<>
- , DataMap
- , void
- , AccuYourUintKey
- >
- FNode;
- typedef boost::container_gen<
- boost::dequeS
- , boost::tuples::tuple<
- boost::tree_node::result_of::value_at_key<
- FNode const
- , example_keys::your_uint
- >::type
- , boost::tree_node::result_of::value_at_key<
- FNode const
- , example_keys::your_char
- >::type
- , boost::tree_node::result_of::value_at_key<
- FNode const
- , AccuYourUintKey
- >::type
- >
- >::type
- MoreValues;
- typedef boost::container_gen<
- boost::dequeS
- , boost::tuples::tuple<
- boost::tree_node::traversal_state
- , boost::tree_node::result_of::value_at_key<
- FNode const
- , example_keys::your_uint
- >::type
- , boost::tree_node::result_of::value_at_key<
- FNode const
- , example_keys::your_char
- >::type
- , boost::tree_node::result_of::value_at_key<
- FNode const
- , AccuYourUintKey
- >::type
- >
- >::type
- DFMoreValues;
-
- FNode f_root(
- boost::fusion::make_pair<example_keys::your_uint>(5)
- , boost::fusion::make_pair<example_keys::your_char>('5')
- );
-
- for (
- boost::tree_node::breadth_first_iterator<FNode> itr(f_root);
- itr;
- ++itr
- )
- {
- boost::tree_node::result_of::value_at_key<
- FNode const
- , example_keys::your_uint
- >::type data = boost::tree_node::get<example_keys::your_uint>(*itr);
-
- if (1 < data)
- {
- --data;
- itr->emplace_right(
- boost::fusion::make_pair<example_keys::your_uint>(data)
- , boost::fusion::make_pair<example_keys::your_char>('0' + data)
- );
- --data;
- itr->emplace_left(
- boost::fusion::make_pair<example_keys::your_uint>(data)
- , boost::fusion::make_pair<example_keys::your_char>('0' + data)
- );
- }
- }
-
- {
- MoreValues bf_vals, pre_vals, post_vals, in_vals;
- DFMoreValues df_vals;
- Emplacer emplacer;
-
- emplacer[bf_vals]
- (5, '5', 26)(3, '3', 7)(4, '4', 14)(1, '1', 1)(2, '2', 3)
- (2, '2', 3)(3, '3', 7)(0, '0', 0)(1, '1', 1)(0, '0', 0)
- (1, '1', 1)(1, '1', 1)(2, '2', 3)(0, '0', 0)(1, '1', 1);
- emplacer[pre_vals]
- (5, '5', 26)(3, '3', 7)(1, '1', 1)(2, '2', 3)(0, '0', 0)
- (1, '1', 1)(4, '4', 14)(2, '2', 3)(0, '0', 0)(1, '1', 1)
- (3, '3', 7)(1, '1', 1)(2, '2', 3)(0, '0', 0)(1, '1', 1);
- emplacer[post_vals]
- (1, '1', 1)(0, '0', 0)(1, '1', 1)(2, '2', 3)(3, '3', 7)
- (0, '0', 0)(1, '1', 1)(2, '2', 3)(1, '1', 1)(0, '0', 0)
- (1, '1', 1)(2, '2', 3)(3, '3', 7)(4, '4', 14)(5, '5', 26);
- emplacer[in_vals]
- (1, '1', 1)(3, '3', 7)(0, '0', 0)(2, '2', 3)(1, '1', 1)
- (5, '5', 26)(0, '0', 0)(2, '2', 3)(1, '1', 1)(4, '4', 14)
- (1, '1', 1)(3, '3', 7)(0, '0', 0)(2, '2', 3)(1, '1', 1);
- emplacer[df_vals]
- (boost::tree_node::pre_order_traversal, 5, '5', 26)
- (boost::tree_node::pre_order_traversal, 3, '3', 7)
- (boost::tree_node::pre_order_traversal, 1, '1', 1)
- (boost::tree_node::post_order_traversal, 1, '1', 1)
- (boost::tree_node::pre_order_traversal, 2, '2', 3)
- (boost::tree_node::pre_order_traversal, 0, '0', 0)
- (boost::tree_node::post_order_traversal, 0, '0', 0)
- (boost::tree_node::pre_order_traversal, 1, '1', 1)
- (boost::tree_node::post_order_traversal, 1, '1', 1)
- (boost::tree_node::post_order_traversal, 2, '2', 3)
- (boost::tree_node::post_order_traversal, 3, '3', 7)
- (boost::tree_node::pre_order_traversal, 4, '4', 14)
- (boost::tree_node::pre_order_traversal, 2, '2', 3)
- (boost::tree_node::pre_order_traversal, 0, '0', 0)
- (boost::tree_node::post_order_traversal, 0, '0', 0)
- (boost::tree_node::pre_order_traversal, 1, '1', 1)
- (boost::tree_node::post_order_traversal, 1, '1', 1)
- (boost::tree_node::post_order_traversal, 2, '2', 3)
- (boost::tree_node::pre_order_traversal, 3, '3', 7)
- (boost::tree_node::pre_order_traversal, 1, '1', 1)
- (boost::tree_node::post_order_traversal, 1, '1', 1)
- (boost::tree_node::pre_order_traversal, 2, '2', 3)
- (boost::tree_node::pre_order_traversal, 0, '0', 0)
- (boost::tree_node::post_order_traversal, 0, '0', 0)
- (boost::tree_node::pre_order_traversal, 1, '1', 1)
- (boost::tree_node::post_order_traversal, 1, '1', 1)
- (boost::tree_node::post_order_traversal, 2, '2', 3)
- (boost::tree_node::post_order_traversal, 3, '3', 7)
- (boost::tree_node::post_order_traversal, 4, '4', 14)
- (boost::tree_node::post_order_traversal, 5, '5', 26);
- test_node<f_node_case>(
- f_root
- , bf_vals
- , pre_vals
- , post_vals
- , in_vals
- , df_vals
- );
- }
-
- put(
- *f_root.get_right_child_ptr()->get_left_child_ptr()
- , example_keys::your_uint()
- , 7
- );
-
- {
- MoreValues bf_vals, pre_vals, post_vals, in_vals;
- DFMoreValues df_vals;
- Emplacer emplacer;
-
- emplacer[bf_vals]
- (5, '5', 31)(3, '3', 7)(4, '4', 19)(1, '1', 1)(2, '2', 3)
- (7, '2', 8)(3, '3', 7)(0, '0', 0)(1, '1', 1)(0, '0', 0)
- (1, '1', 1)(1, '1', 1)(2, '2', 3)(0, '0', 0)(1, '1', 1);
- emplacer[pre_vals]
- (5, '5', 31)(3, '3', 7)(1, '1', 1)(2, '2', 3)(0, '0', 0)
- (1, '1', 1)(4, '4', 19)(7, '2', 8)(0, '0', 0)(1, '1', 1)
- (3, '3', 7)(1, '1', 1)(2, '2', 3)(0, '0', 0)(1, '1', 1);
- emplacer[post_vals]
- (1, '1', 1)(0, '0', 0)(1, '1', 1)(2, '2', 3)(3, '3', 7)
- (0, '0', 0)(1, '1', 1)(7, '2', 8)(1, '1', 1)(0, '0', 0)
- (1, '1', 1)(2, '2', 3)(3, '3', 7)(4, '4', 19)(5, '5', 31);
- emplacer[in_vals]
- (1, '1', 1)(3, '3', 7)(0, '0', 0)(2, '2', 3)(1, '1', 1)
- (5, '5', 31)(0, '0', 0)(7, '2', 8)(1, '1', 1)(4, '4', 19)
- (1, '1', 1)(3, '3', 7)(0, '0', 0)(2, '2', 3)(1, '1', 1);
- emplacer[df_vals]
- (boost::tree_node::pre_order_traversal, 5, '5', 31)
- (boost::tree_node::pre_order_traversal, 3, '3', 7)
- (boost::tree_node::pre_order_traversal, 1, '1', 1)
- (boost::tree_node::post_order_traversal, 1, '1', 1)
- (boost::tree_node::pre_order_traversal, 2, '2', 3)
- (boost::tree_node::pre_order_traversal, 0, '0', 0)
- (boost::tree_node::post_order_traversal, 0, '0', 0)
- (boost::tree_node::pre_order_traversal, 1, '1', 1)
- (boost::tree_node::post_order_traversal, 1, '1', 1)
- (boost::tree_node::post_order_traversal, 2, '2', 3)
- (boost::tree_node::post_order_traversal, 3, '3', 7)
- (boost::tree_node::pre_order_traversal, 4, '4', 19)
- (boost::tree_node::pre_order_traversal, 7, '2', 8)
- (boost::tree_node::pre_order_traversal, 0, '0', 0)
- (boost::tree_node::post_order_traversal, 0, '0', 0)
- (boost::tree_node::pre_order_traversal, 1, '1', 1)
- (boost::tree_node::post_order_traversal, 1, '1', 1)
- (boost::tree_node::post_order_traversal, 7, '2', 8)
- (boost::tree_node::pre_order_traversal, 3, '3', 7)
- (boost::tree_node::pre_order_traversal, 1, '1', 1)
- (boost::tree_node::post_order_traversal, 1, '1', 1)
- (boost::tree_node::pre_order_traversal, 2, '2', 3)
- (boost::tree_node::pre_order_traversal, 0, '0', 0)
- (boost::tree_node::post_order_traversal, 0, '0', 0)
- (boost::tree_node::pre_order_traversal, 1, '1', 1)
- (boost::tree_node::post_order_traversal, 1, '1', 1)
- (boost::tree_node::post_order_traversal, 2, '2', 3)
- (boost::tree_node::post_order_traversal, 3, '3', 7)
- (boost::tree_node::post_order_traversal, 4, '4', 19)
- (boost::tree_node::post_order_traversal, 5, '5', 31);
- test_node<f_node_case>(
- f_root
- , bf_vals
- , pre_vals
- , post_vals
- , in_vals
- , df_vals
- );
- }
-
- //[example__gui__binary_node__types
- typedef boost::tree_node::with_accumulation<
- boost::tree_node::with_accumulation_base_gen<
- boost::tree_node::binary_node_base_gen<>
- , HeightSumKey
- >
- , GUITable
- , void
- , MinPriorityKey
- >
- GUINode;
- typedef boost::container_gen<
- boost::dequeS
- , boost::tuples::tuple<
- boost::tree_node::result_of::value_at_key<
- GUINode const
- , example_keys::row_location
- >::type
- , boost::tree_node::result_of::value_at_key<
- GUINode const
- , example_keys::row_height
- >::type
- , boost::tree_node::result_of::value_at_key<
- GUINode const
- , example_keys::row_priority
- >::type
- , boost::tree_node::result_of::value_at_key<
- GUINode const
- , HeightSumKey
- >::type
- , boost::tree_node::result_of::value_at_key<
- GUINode const
- , MinPriorityKey
- >::type
- >
- >::type
- GUIValues;
- typedef boost::container_gen<
- boost::dequeS
- , boost::tuples::tuple<
- boost::tree_node::traversal_state
- , boost::tree_node::result_of::value_at_key<
- GUINode const
- , example_keys::row_location
- >::type
- , boost::tree_node::result_of::value_at_key<
- GUINode const
- , example_keys::row_height
- >::type
- , boost::tree_node::result_of::value_at_key<
- GUINode const
- , example_keys::row_priority
- >::type
- , boost::tree_node::result_of::value_at_key<
- GUINode const
- , HeightSumKey
- >::type
- , boost::tree_node::result_of::value_at_key<
- GUINode const
- , MinPriorityKey
- >::type
- >
- >::type
- DFGUIValues;
- //]
-
- //[example__gui__binary_node__build
- GUINode gui_root(
- boost::fusion::make_pair<example_keys::row_location>(20)
- , boost::fusion::make_pair<example_keys::row_height>(12)
- , boost::fusion::make_pair<example_keys::row_priority>(64)
- );
- gui_root.emplace_left(
- boost::fusion::make_pair<example_keys::row_location>(0)
- , boost::fusion::make_pair<example_keys::row_height>(12)
- , boost::fusion::make_pair<example_keys::row_priority>(20)
- );
- gui_root.emplace_left(
- boost::fusion::make_pair<example_keys::row_location>(3)
- , boost::fusion::make_pair<example_keys::row_height>(4)
- , boost::fusion::make_pair<example_keys::row_priority>(88)
- )->emplace_right(
- boost::fusion::make_pair<example_keys::row_location>(4)
- , boost::fusion::make_pair<example_keys::row_height>(12)
- , boost::fusion::make_pair<example_keys::row_priority>(79)
- );
- gui_root.emplace_left(
- boost::fusion::make_pair<example_keys::row_location>(5)
- , boost::fusion::make_pair<example_keys::row_height>(4)
- , boost::fusion::make_pair<example_keys::row_priority>(36)
- )->emplace_right(
- boost::fusion::make_pair<example_keys::row_location>(10)
- , boost::fusion::make_pair<example_keys::row_height>(4)
- , boost::fusion::make_pair<example_keys::row_priority>(5)
- )->emplace_right(
- boost::fusion::make_pair<example_keys::row_location>(12)
- , boost::fusion::make_pair<example_keys::row_height>(4)
- , boost::fusion::make_pair<example_keys::row_priority>(19)
- );
- gui_root.emplace_right(
- boost::fusion::make_pair<example_keys::row_location>(59)
- , boost::fusion::make_pair<example_keys::row_height>(12)
- , boost::fusion::make_pair<example_keys::row_priority>(25)
- );
- gui_root.emplace_right(
- boost::fusion::make_pair<example_keys::row_location>(55)
- , boost::fusion::make_pair<example_keys::row_height>(12)
- , boost::fusion::make_pair<example_keys::row_priority>(91)
- )->emplace_left(
- boost::fusion::make_pair<example_keys::row_location>(51)
- , boost::fusion::make_pair<example_keys::row_height>(12)
- , boost::fusion::make_pair<example_keys::row_priority>(7)
- );
- gui_root.emplace_right(
- boost::fusion::make_pair<example_keys::row_location>(42)
- , boost::fusion::make_pair<example_keys::row_height>(12)
- , boost::fusion::make_pair<example_keys::row_priority>(19)
- )->emplace_left(
- boost::fusion::make_pair<example_keys::row_location>(22)
- , boost::fusion::make_pair<example_keys::row_height>(12)
- , boost::fusion::make_pair<example_keys::row_priority>(54)
- );
- //]
-
- //[example__gui__binary_node__test
- {
- GUIValues bf_vals, pre_vals, post_vals, in_vals;
- DFGUIValues df_vals;
- Emplacer emplacer;
-
- emplacer[bf_vals]
- (20, 12, 64, 112, 5)(5, 4, 36, 40, 5)(42, 12, 19, 60, 7)
- (3, 4, 88, 28, 20)(10, 4, 5, 8, 5)(22, 12, 54, 12, 54)
- (55, 12, 91, 36, 7)(0, 12, 20, 12, 20)(4, 12, 79, 12, 79)
- (12, 4, 19, 4, 19)(51, 12, 7, 12, 7)(59, 12, 25, 12, 25);
- emplacer[pre_vals]
- (20, 12, 64, 112, 5)(5, 4, 36, 40, 5)(3, 4, 88, 28, 20)
- (0, 12, 20, 12, 20)(4, 12, 79, 12, 79)(10, 4, 5, 8, 5)
- (12, 4, 19, 4, 19)(42, 12, 19, 60, 7)(22, 12, 54, 12, 54)
- (55, 12, 91, 36, 7)(51, 12, 7, 12, 7)(59, 12, 25, 12, 25);
- emplacer[post_vals]
- (0, 12, 20, 12, 20)(4, 12, 79, 12, 79)(3, 4, 88, 28, 20)
- (12, 4, 19, 4, 19)(10, 4, 5, 8, 5)(5, 4, 36, 40, 5)
- (22, 12, 54, 12, 54)(51, 12, 7, 12, 7)(59, 12, 25, 12, 25)
- (55, 12, 91, 36, 7)(42, 12, 19, 60, 7)(20, 12, 64, 112, 5);
- emplacer[in_vals]
- (0, 12, 20, 12, 20)(3, 4, 88, 28, 20)(4, 12, 79, 12, 79)
- (5, 4, 36, 40, 5)(10, 4, 5, 8, 5)(12, 4, 19, 4, 19)
- (20, 12, 64, 112, 5)(22, 12, 54, 12, 54)(42, 12, 19, 60, 7)
- (51, 12, 7, 12, 7)(55, 12, 91, 36, 7)(59, 12, 25, 12, 25);
- emplacer[df_vals]
- (boost::tree_node::pre_order_traversal, 20, 12, 64, 112, 5)
- (boost::tree_node::pre_order_traversal, 5, 4, 36, 40, 5)
- (boost::tree_node::pre_order_traversal, 3, 4, 88, 28, 20)
- (boost::tree_node::pre_order_traversal, 0, 12, 20, 12, 20)
- (boost::tree_node::post_order_traversal, 0, 12, 20, 12, 20)
- (boost::tree_node::pre_order_traversal, 4, 12, 79, 12, 79)
- (boost::tree_node::post_order_traversal, 4, 12, 79, 12, 79)
- (boost::tree_node::post_order_traversal, 3, 4, 88, 28, 20)
- (boost::tree_node::pre_order_traversal, 10, 4, 5, 8, 5)
- (boost::tree_node::pre_order_traversal, 12, 4, 19, 4, 19)
- (boost::tree_node::post_order_traversal, 12, 4, 19, 4, 19)
- (boost::tree_node::post_order_traversal, 10, 4, 5, 8, 5)
- (boost::tree_node::post_order_traversal, 5, 4, 36, 40, 5)
- (boost::tree_node::pre_order_traversal, 42, 12, 19, 60, 7)
- (boost::tree_node::pre_order_traversal, 22, 12, 54, 12, 54)
- (boost::tree_node::post_order_traversal, 22, 12, 54, 12, 54)
- (boost::tree_node::pre_order_traversal, 55, 12, 91, 36, 7)
- (boost::tree_node::pre_order_traversal, 51, 12, 7, 12, 7)
- (boost::tree_node::post_order_traversal, 51, 12, 7, 12, 7)
- (boost::tree_node::pre_order_traversal, 59, 12, 25, 12, 25)
- (boost::tree_node::post_order_traversal, 59, 12, 25, 12, 25)
- (boost::tree_node::post_order_traversal, 55, 12, 91, 36, 7)
- (boost::tree_node::post_order_traversal, 42, 12, 19, 60, 7)
- (boost::tree_node::post_order_traversal, 20, 12, 64, 112, 5);
- test_node<gui_node_case>(
- gui_root
- , bf_vals
- , pre_vals
- , post_vals
- , in_vals
- , df_vals
- );
- }
- //]
-#endif // BOOST_TREE_NODE_CAN_USE_FUSION
-
- return 0;
-}
-
-#if defined BOOST_MSVC
- #pragma warning (pop)
-#endif
-

Deleted: sandbox/tree_node/libs/tree_node/test/binode_container.cpp
==============================================================================
--- sandbox/tree_node/libs/tree_node/test/binode_container.cpp 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84956)
+++ /dev/null 00:00:00 1970 (deleted)
@@ -1,338 +0,0 @@
-// 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)
-
-#include <boost/config.hpp>
-
-#if defined BOOST_MSVC
- #pragma warning (push)
- #pragma warning (disable : 4996) // fn called w/params that may be unsafe
-#endif
-
-#include <boost/tree_node/balancer/red_black.hpp>
-#include <boost/tree_node/balancer/adelson_velskii_landis.hpp>
-#include <boost/tree_node/container/binode.hpp>
-#include <boost/test/minimal.hpp>
-#include "type_definitions.hpp"
-#include "container_functions.hpp"
-
-typedef boost::tree_node::binode_container<
- boost::int32_t
- , RedBlackNodeGen
- , boost::tree_node::red_black_balancer
- >
- RedBlackTreeSequence;
-
-void
- test_push_front(
- RedBlackTreeSequence& red_black_tree
- , ValueSequence& values
- , RedBlackTreeSequence::value_type t
- )
-{
- red_black_tree.push_front(t);
- std::cout << std::endl << "After red_black_tree.push_front(" << t << "):";
- test_red_black_node(*red_black_tree.data());
- values.push_front(t);
- test_tree_container(red_black_tree, values);
-}
-
-void
- test_push_back(
- RedBlackTreeSequence& red_black_tree
- , ValueSequence& values
- , RedBlackTreeSequence::value_type t
- )
-{
- red_black_tree.push_back(t);
- std::cout << std::endl << "After red_black_tree.push_back(" << t << "):";
- test_red_black_node(*red_black_tree.data());
- values.push_back(t);
- test_tree_container(red_black_tree, values);
-}
-
-void
- test_pop_front(
- RedBlackTreeSequence& red_black_tree
- , ValueSequence& values
- )
-{
- red_black_tree.pop_front();
- std::cout << std::endl << "After red_black_tree.pop_front():";
- test_red_black_node(*red_black_tree.data());
- values.pop_front();
- test_tree_container(red_black_tree, values);
-}
-
-void
- test_pop_back(
- RedBlackTreeSequence& red_black_tree
- , ValueSequence& values
- )
-{
- red_black_tree.pop_back();
- std::cout << std::endl << "After red_black_tree.pop_back():";
- test_red_black_node(*red_black_tree.data());
- values.pop_back();
- test_tree_container(red_black_tree, values);
-}
-
-void
- test_insert(
- RedBlackTreeSequence& red_black_tree
- , ValueSequence& values
- , RedBlackTreeSequence::size_type index
- , RedBlackTreeSequence::value_type t
- )
-{
- red_black_tree.insert(red_black_tree.begin() + index, t);
- std::cout << std::endl << "After red_black_tree.insert[" << index << "](";
- std::cout << t << "):";
- test_red_black_node(*red_black_tree.data());
- values.insert(values.begin() + index, t);
- test_tree_container(red_black_tree, values);
-}
-
-void
- test_erase(
- RedBlackTreeSequence& red_black_tree
- , ValueSequence& values
- , RedBlackTreeSequence::size_type index
- )
-{
- RedBlackTreeSequence::iterator tree_itr = red_black_tree.erase(
- red_black_tree.begin() + index
- );
-
- if (index == red_black_tree.size())
- {
- BOOST_CHECK(tree_itr == red_black_tree.end());
- }
- else
- {
- BOOST_CHECK(test_tree_values(*tree_itr, red_black_tree[index]));
- }
-
- std::cout << std::endl << "After red_black_tree.erase[" << index << "]:";
- test_red_black_node(*red_black_tree.data());
- values.erase(values.begin() + index);
- test_tree_container(red_black_tree, values);
-}
-
-typedef boost::tree_node::binode_container<
- boost::int32_t
- , AVLNodeGen
- , boost::tree_node::adelson_velskii_landis_balancer
- >
- AVLTreeSequence;
-
-void
- test_push_front(
- AVLTreeSequence& avl_tree
- , ValueSequence& values
- , AVLTreeSequence::value_type t
- )
-{
- avl_tree.push_front(t);
- std::cout << std::endl << "After avl_tree.push_front(" << t << "):";
- test_avl_node(*avl_tree.data());
- values.push_front(t);
- test_tree_container(avl_tree, values);
-}
-
-void
- test_push_back(
- AVLTreeSequence& avl_tree
- , ValueSequence& values
- , AVLTreeSequence::value_type t
- )
-{
- avl_tree.push_back(t);
- std::cout << std::endl << "After avl_tree.push_back(" << t << "):";
- test_avl_node(*avl_tree.data());
- values.push_back(t);
- test_tree_container(avl_tree, values);
-}
-
-void test_pop_front(AVLTreeSequence& avl_tree, ValueSequence& values)
-{
- avl_tree.pop_front();
- std::cout << std::endl << "After avl_tree.pop_front():";
- test_avl_node(*avl_tree.data());
- values.pop_front();
- test_tree_container(avl_tree, values);
-}
-
-void test_pop_back(AVLTreeSequence& avl_tree, ValueSequence& values)
-{
- avl_tree.pop_back();
- std::cout << std::endl << "After avl_tree.pop_back():";
- test_avl_node(*avl_tree.data());
- values.pop_back();
- test_tree_container(avl_tree, values);
-}
-
-void
- test_insert(
- AVLTreeSequence& avl_tree
- , ValueSequence& values
- , AVLTreeSequence::size_type index
- , AVLTreeSequence::value_type t
- )
-{
- avl_tree.insert(avl_tree.begin() + index, t);
- std::cout << std::endl << "After avl_tree.insert[" << index << "](";
- std::cout << t << "):";
- test_avl_node(*avl_tree.data());
- values.insert(values.begin() + index, t);
- test_tree_container(avl_tree, values);
-}
-
-void
- test_erase(
- AVLTreeSequence& avl_tree
- , ValueSequence& values
- , AVLTreeSequence::size_type index
- )
-{
- AVLTreeSequence::iterator tree_itr = avl_tree.erase(
- avl_tree.begin() + index
- );
-
- if (index == avl_tree.size())
- {
- BOOST_CHECK(tree_itr == avl_tree.end());
- }
- else
- {
- BOOST_CHECK(test_tree_values(*tree_itr, avl_tree[index]));
- }
-
- std::cout << std::endl << "After avl_tree.erase[" << index << "]:";
- test_avl_node(*avl_tree.data());
- values.erase(values.begin() + index);
- test_tree_container(avl_tree, values);
-}
-
-#include "sequence.hpp"
-
-void test_red_black_sequence()
-{
- RedBlackTreeSequence red_black_tree;
- ValueSequence values;
-
- test_sequence(red_black_tree, values);
-
- RedBlackTreeSequence red_black_copy;
- ValueSequence value_copies;
-
- for (
- RedBlackTreeSequence::size_type index = 0;
- index + 1 < red_black_tree.size();
- ++index
- )
- {
- red_black_copy = red_black_tree;
- value_copies = values;
-
- if (!index)
- {
- test_tree_container(red_black_copy, value_copies);
- }
-
- test_erase(red_black_copy, value_copies, index);
-
- switch (index)
- {
- case 2:
- {
- test_erase(red_black_copy, value_copies, 1);
- break;
- }
-
- case 4:
- {
- test_erase(red_black_copy, value_copies, 4);
- break;
- }
-
- default:
- {
- break;
- }
- }
- }
-}
-
-void test_avl_sequence()
-{
- AVLTreeSequence avl_tree;
- ValueSequence values;
-
- test_sequence(avl_tree, values);
-
- AVLTreeSequence avl_copy;
- ValueSequence value_copies;
-
- for (
- AVLTreeSequence::size_type index = 0;
- index + 1 < avl_tree.size();
- ++index
- )
- {
- avl_copy = avl_tree;
- value_copies = values;
-
- if (!index)
- {
- test_tree_container(avl_copy, value_copies);
- }
-
- test_erase(avl_copy, value_copies, index);
-
- switch (index)
- {
- case 0:
- {
- test_erase(avl_copy, value_copies, 0);
- break;
- }
-
- case 1:
- {
- test_erase(avl_copy, value_copies, 1);
- break;
- }
-
- case 3:
- {
- test_erase(avl_copy, value_copies, 5);
- break;
- }
-
- case 4:
- {
- test_erase(avl_copy, value_copies, 4);
- break;
- }
-
- default:
- {
- break;
- }
- }
- }
-}
-
-int test_main(int argc, char** argv)
-{
- test_red_black_sequence();
- test_avl_sequence();
- return 0;
-}
-
-#if defined BOOST_MSVC
- #pragma warning (pop)
-#endif
-

Deleted: sandbox/tree_node/libs/tree_node/test/binode_map.cpp
==============================================================================
--- sandbox/tree_node/libs/tree_node/test/binode_map.cpp 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84956)
+++ /dev/null 00:00:00 1970 (deleted)
@@ -1,155 +0,0 @@
-// 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)
-
-#include <boost/config.hpp>
-
-#if defined BOOST_MSVC
- #pragma warning (push)
- #pragma warning (disable : 4996) // fn called w/params that may be unsafe
-#endif
-
-#include <boost/tree_node/balancer/red_black.hpp>
-#include <boost/tree_node/balancer/adelson_velskii_landis.hpp>
-#include <boost/tree_node/container/binode_associative.hpp>
-#include <boost/test/minimal.hpp>
-#include "type_definitions.hpp"
-#include "container_functions.hpp"
-
-void test_value_insert(ValueMap& values, ValueMap::key_type const& key)
-{
- values.insert(ValueMap::value_type(key, key));
-}
-
-typedef boost::tree_node::binode_map<
- boost::int32_t
- , boost::int32_t
- , RedBlackNodeGen
- , boost::tree_node::red_black_balancer
- >
- RedBlackTreeMap;
-
-void
- test_insert(
- RedBlackTreeMap& red_black_tree
- , ValueMap& values
- , RedBlackTreeMap::key_type const& key
- )
-{
- std::pair<RedBlackTreeMap::iterator,bool> p = red_black_tree.emplace(
- key
- , key
- );
-
- if (values.insert(ValueMap::value_type(key, key)).second)
- {
- BOOST_CHECK(p.second);
- std::cout << std::endl << "After emplacing " << key << ':';
- test_red_black_node(*red_black_tree.data());
- BOOST_CHECK(p.first->first == key);
- BOOST_CHECK(p.first->second == key);
- BOOST_CHECK(p.first == red_black_tree.find(key));
- BOOST_CHECK(!red_black_tree.empty());
- test_tree_container(red_black_tree, values);
- }
- else
- {
- BOOST_CHECK(!p.second);
- }
-}
-
-void
- test_erase(
- RedBlackTreeMap& red_black_tree
- , ValueMap& values
- , RedBlackTreeMap::key_type const& key
- )
-{
- BOOST_CHECK(red_black_tree.erase(key) == values.erase(key));
- std::cout << std::endl << "After erasing " << key;
-
- if (red_black_tree.empty())
- {
- std::cout << ", red_black_tree is empty." << std::endl;
- }
- {
- std::cout << ':';
- test_red_black_node(*red_black_tree.data());
- }
-
- test_tree_container(red_black_tree, values);
-}
-
-#include "red_black_tree.hpp"
-
-typedef boost::tree_node::binode_map<
- boost::int32_t
- , boost::int32_t
- , AVLNodeGen
- , boost::tree_node::adelson_velskii_landis_balancer
- >
- AVLTreeMap;
-
-void
- test_insert(
- AVLTreeMap& avl_tree
- , ValueMap& values
- , AVLTreeMap::key_type const& key
- )
-{
- std::pair<AVLTreeMap::iterator,bool> p = avl_tree.emplace(key, key);
-
- if (values.insert(ValueMap::value_type(key, key)).second)
- {
- BOOST_CHECK(p.second);
- std::cout << std::endl << "After emplacing " << key << ':';
- test_avl_node(*avl_tree.data());
- BOOST_CHECK(p.first->first == key);
- BOOST_CHECK(p.first->second == key);
- BOOST_CHECK(p.first == avl_tree.find(key));
- BOOST_CHECK(!avl_tree.empty());
- test_tree_container(avl_tree, values);
- }
- else
- {
- BOOST_CHECK(!p.second);
- }
-}
-
-void
- test_erase(
- AVLTreeMap& avl_tree
- , ValueMap& values
- , AVLTreeMap::key_type const& key
- )
-{
- BOOST_CHECK(avl_tree.erase(key) == values.erase(key));
- std::cout << std::endl << "After erasing " << key;
-
- if (avl_tree.empty())
- {
- std::cout << ", avl_tree is empty." << std::endl;
- }
- else
- {
- std::cout << ':';
- test_avl_node(*avl_tree.data());
- }
-
- test_tree_container(avl_tree, values);
-}
-
-#include "avl_tree.hpp"
-
-int test_main(int argc, char** argv)
-{
- test_red_black_tree<RedBlackTreeMap,ValueMap>();
- test_avl_tree<AVLTreeMap,ValueMap>();
- return 0;
-}
-
-#if defined BOOST_MSVC
- #pragma warning (pop)
-#endif
-

Deleted: sandbox/tree_node/libs/tree_node/test/binode_set.cpp
==============================================================================
--- sandbox/tree_node/libs/tree_node/test/binode_set.cpp 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84956)
+++ /dev/null 00:00:00 1970 (deleted)
@@ -1,148 +0,0 @@
-// 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)
-
-#include <boost/config.hpp>
-
-#if defined BOOST_MSVC
- #pragma warning (push)
- #pragma warning (disable : 4996) // fn called w/params that may be unsafe
-#endif
-
-#include <boost/tree_node/balancer/red_black.hpp>
-#include <boost/tree_node/balancer/adelson_velskii_landis.hpp>
-#include <boost/tree_node/container/binode_associative.hpp>
-#include <boost/test/minimal.hpp>
-#include "type_definitions.hpp"
-#include "container_functions.hpp"
-
-void test_value_insert(ValueSet& values, ValueSet::key_type const& key)
-{
- values.insert(key);
-}
-
-typedef boost::tree_node::binode_set<
- boost::int32_t
- , RedBlackNodeGen
- , boost::tree_node::red_black_balancer
- >
- RedBlackTreeSet;
-
-void
- test_insert(
- RedBlackTreeSet& red_black_tree
- , ValueSet& values
- , RedBlackTreeSet::key_type const& key
- )
-{
- std::pair<RedBlackTreeSet::iterator,bool> p = red_black_tree.insert(key);
-
- if (values.insert(key).second)
- {
- BOOST_CHECK(p.second);
- std::cout << std::endl << "After inserting " << key << ':';
- test_red_black_node(*red_black_tree.data());
- BOOST_CHECK(*p.first == key);
- BOOST_CHECK(p.first == red_black_tree.find(key));
- BOOST_CHECK(!red_black_tree.empty());
- test_tree_container(red_black_tree, values);
- }
- else
- {
- BOOST_CHECK(!p.second);
- }
-}
-
-void
- test_erase(
- RedBlackTreeSet& red_black_tree
- , ValueSet& values
- , RedBlackTreeSet::key_type const& key
- )
-{
- BOOST_CHECK(red_black_tree.erase(key) == values.erase(key));
- std::cout << std::endl << "After erasing " << key;
-
- if (red_black_tree.empty())
- {
- std::cout << ", red_black_tree is empty." << std::endl;
- }
- {
- std::cout << ':';
- test_red_black_node(*red_black_tree.data());
- }
-
- test_tree_container(red_black_tree, values);
-}
-
-#include "red_black_tree.hpp"
-
-typedef boost::tree_node::binode_set<
- boost::int32_t
- , AVLNodeGen
- , boost::tree_node::adelson_velskii_landis_balancer
- >
- AVLTreeSet;
-
-void
- test_insert(
- AVLTreeSet& avl_tree
- , ValueSet& values
- , AVLTreeSet::key_type const& key
- )
-{
- std::pair<AVLTreeSet::iterator,bool> p = avl_tree.insert(key);
-
- if (values.insert(key).second)
- {
- BOOST_CHECK(p.second);
- std::cout << std::endl << "After inserting " << key << ':';
- test_avl_node(*avl_tree.data());
- BOOST_CHECK(*p.first == key);
- BOOST_CHECK(p.first == avl_tree.find(key));
- BOOST_CHECK(!avl_tree.empty());
- test_tree_container(avl_tree, values);
- }
- else
- {
- BOOST_CHECK(!p.second);
- }
-}
-
-void
- test_erase(
- AVLTreeSet& avl_tree
- , ValueSet& values
- , AVLTreeSet::key_type const& key
- )
-{
- BOOST_CHECK(avl_tree.erase(key) == values.erase(key));
- std::cout << std::endl << "After erasing " << key;
-
- if (avl_tree.empty())
- {
- std::cout << ", avl_tree is empty." << std::endl;
- }
- else
- {
- std::cout << ':';
- test_avl_node(*avl_tree.data());
- }
-
- test_tree_container(avl_tree, values);
-}
-
-#include "avl_tree.hpp"
-
-int test_main(int argc, char** argv)
-{
- test_red_black_tree<RedBlackTreeSet,ValueSet>();
- test_avl_tree<AVLTreeSet,ValueSet>();
- return 0;
-}
-
-#if defined BOOST_MSVC
- #pragma warning (pop)
-#endif
-

Deleted: sandbox/tree_node/libs/tree_node/test/container_functions.hpp
==============================================================================
--- sandbox/tree_node/libs/tree_node/test/container_functions.hpp 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84956)
+++ /dev/null 00:00:00 1970 (deleted)
@@ -1,367 +0,0 @@
-// 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)
-
-#ifndef LIBS_TREE_NODE_TEST_CONTAINER_FUNCTIONS_HPP_INCLUDED
-#define LIBS_TREE_NODE_TEST_CONTAINER_FUNCTIONS_HPP_INCLUDED
-
-#include <iostream>
-#include <utility>
-#include <boost/utility/value_init.hpp>
-#include <boost/range/adaptors.hpp>
-#include <boost/range/algorithm/equal.hpp>
-#include <boost/tree_node/key/data.hpp>
-#include <boost/tree_node/key/red_black_flag.hpp>
-#include <boost/tree_node/key/height.hpp>
-#include <boost/tree_node/iterator/breadth_first.hpp>
-#include <boost/tree_node/iterator/breadth_first_descendant.hpp>
-#include <boost/tree_node/iterator/depth_first.hpp>
-
-template <typename T1, typename T2>
-void test_output_data(std::pair<T1,T2> const& p)
-{
- std::cout << '<' << p.first << ", " << p.second << '>';
-}
-
-template <typename T>
-void test_output_data(T const& t)
-{
- std::cout << t;
-}
-
-template <typename Node>
-void test_red_black_node(Node const& root)
-{
- typename Node::size_type black_depth = boost::initialized_value;
- std::cout << std::endl;
-
- for (
- boost::tree_node::depth_first_iterator<Node const> itr(root);
- itr;
- ++itr
- )
- {
- switch (boost::tree_node::traversal_state(itr))
- {
- case boost::tree_node::pre_order_traversal:
- {
- ++black_depth;
-
- for (
- typename Node::size_type depth = 0;
- depth < black_depth;
- ++depth
- )
- {
- std::cout << " ";
- }
-
- if (Node const* p = itr->get_parent_ptr())
- {
- std::cout << (
- (&*itr == p->get_left_child_ptr()) ? "left" : "right"
- );
- }
-
- std::cout << '(' << (
- get(*itr, boost::tree_node::red_flag_key())
- ? "red,"
- : "black,"
- );
- test_output_data(get(*itr, boost::tree_node::data_key()));
- std::cout << std::endl;
- break;
- }
-
- case boost::tree_node::post_order_traversal:
- {
- for (
- typename Node::size_type depth = 0;
- depth < black_depth;
- ++depth
- )
- {
- std::cout << " ";
- }
-
- --black_depth;
- std::cout << (
- get(*itr, boost::tree_node::red_flag_key())
- ? "red,"
- : "black,"
- );
- test_output_data(get(*itr, boost::tree_node::data_key()));
- std::cout << ')' << std::endl;
- break;
- }
-
- default:
- {
- BOOST_CHECK(false);
- }
- }
- }
-
- BOOST_CHECK(get(root, boost::tree_node::black_flag_key()));
-
- if (root.empty())
- {
- return;
- }
-
- for (
- boost::tree_node::breadth_first_descendant_iterator<Node const> itr(
- root
- );
- itr;
- ++itr
- )
- {
- if (get(*itr, boost::tree_node::red_flag_key()))
- {
- BOOST_CHECK(
- !itr->get_left_child_ptr() || get(
- *itr->get_left_child_ptr()
- , boost::tree_node::black_flag_key()
- )
- );
- BOOST_CHECK(
- !itr->get_right_child_ptr() || get(
- *itr->get_right_child_ptr()
- , boost::tree_node::black_flag_key()
- )
- );
- }
-
- if (!itr->get_left_child_ptr() || !itr->get_right_child_ptr())
- {
- typename Node::size_type depth = boost::initialized_value;
-
- for (Node const* p = &*itr; p; p = p->get_parent_ptr())
- {
- if (get(*p, boost::tree_node::black_flag_key()))
- {
- ++depth;
- }
- }
-
- if (black_depth)
- {
- BOOST_CHECK(black_depth == depth);
- }
- else
- {
- black_depth = depth;
- }
- }
- }
-}
-
-template <typename Node>
-void test_avl_node(Node const& root)
-{
- typename Node::size_type max_depth = boost::initialized_value;
- std::cout << std::endl;
-
- for (
- boost::tree_node::depth_first_iterator<Node const> itr(root);
- itr;
- ++itr
- )
- {
- switch (boost::tree_node::traversal_state(itr))
- {
- case boost::tree_node::pre_order_traversal:
- {
- ++max_depth;
-
- for (
- typename Node::size_type depth = 0;
- depth < max_depth;
- ++depth
- )
- {
- std::cout << " ";
- }
-
- if (Node const* p = itr->get_parent_ptr())
- {
- std::cout << (
- (&*itr == p->get_left_child_ptr()) ? "left" : "right"
- );
- }
-
- std::cout << '(' << get(
- *itr
- , boost::tree_node::height_key()
- ) << ", ";
- test_output_data(get(*itr, boost::tree_node::data_key()));
- std::cout << std::endl;
- break;
- }
-
- case boost::tree_node::post_order_traversal:
- {
- for (
- typename Node::size_type depth = 0;
- depth < max_depth;
- ++depth
- )
- {
- std::cout << " ";
- }
-
- --max_depth;
- std::cout << get(
- *itr
- , boost::tree_node::height_key()
- ) << ", ";
- test_output_data(get(*itr, boost::tree_node::data_key()));
- std::cout << ')' << std::endl;
- break;
- }
-
- default:
- {
- BOOST_CHECK(false);
- }
- }
- }
-
- for (
- boost::tree_node::breadth_first_iterator<Node const> itr(root);
- itr;
- ++itr
- )
- {
- if (itr->get_left_child_ptr())
- {
- if (itr->get_right_child_ptr())
- {
- BOOST_CHECK(
- (
- get(
- *itr->get_left_child_ptr()
- , boost::tree_node::height_key()
- ) == get(
- *itr->get_right_child_ptr()
- , boost::tree_node::height_key()
- )
- ) || (
- 1 + get(
- *itr->get_left_child_ptr()
- , boost::tree_node::height_key()
- ) == get(
- *itr->get_right_child_ptr()
- , boost::tree_node::height_key()
- )
- ) || (
- get(
- *itr->get_left_child_ptr()
- , boost::tree_node::height_key()
- ) == 1 + get(
- *itr->get_right_child_ptr()
- , boost::tree_node::height_key()
- )
- )
- );
- }
- else
- {
- BOOST_CHECK(
- !get(
- *itr->get_left_child_ptr()
- , boost::tree_node::height_key()
- )
- );
- }
- }
- else if (itr->get_right_child_ptr())
- {
- BOOST_CHECK(
- !get(
- *itr->get_right_child_ptr()
- , boost::tree_node::height_key()
- )
- );
- }
- }
-}
-
-template <typename K1, typename V1, typename K2, typename V2>
-bool test_tree_values(std::pair<K1,V1> const& p1, std::pair<K2,V2> const& p2)
-{
- return (p1.first == p2.first) && (p1.second == p2.second);
-}
-
-template <typename T1, typename T2>
-bool test_tree_values(T1 const& t1, T2 const& t2)
-{
- return t1 == t2;
-}
-
-struct test_equal_trees_predicate
-{
- template <typename T1, typename T2>
- bool operator()(T1 const& t1, T2 const& t2) const
- {
- return test_tree_values(t1, t2);
- }
-};
-
-template <typename Tree, typename Values>
-void test_tree_container(Tree const& tree, Values const& values)
-{
- BOOST_CHECK(tree.empty() == values.empty());
- BOOST_CHECK(tree.size() == values.size());
- BOOST_CHECK(
- boost::range::equal(tree, values, test_equal_trees_predicate())
- );
-
- typename Tree::const_reverse_iterator t_rend = tree.crend();
- typename Values::const_reverse_iterator v_ritr = values.rbegin();
- typename Values::const_reverse_iterator v_rend = values.rend();
-
- for (
- typename Tree::const_reverse_iterator t_ritr = tree.crbegin();
- t_ritr != t_rend;
- ++t_ritr
- )
- {
- if (v_ritr == v_rend)
- {
- BOOST_CHECK(false);
- break;
- }
-
- BOOST_CHECK(test_tree_values(*t_ritr, *v_ritr));
- ++v_ritr;
- }
-
- BOOST_CHECK(v_ritr == v_rend);
-
- typename Tree::size_type index = 0;
- typename Tree::const_iterator t_end = tree.cend();
-
- for (
- typename Tree::const_iterator t_itr = tree.cbegin();
- t_itr != t_end;
- ++t_itr
- )
- {
- BOOST_CHECK(test_tree_values(tree[index], *t_itr));
- ++index;
- }
-}
-
-template <typename Tree, typename Values>
-void test_clear(Tree& tree, Values& values)
-{
- tree.clear();
- values.clear();
- test_tree_container(tree, values);
-}
-
-#endif // LIBS_TREE_NODE_TEST_CONTAINER_FUNCTIONS_HPP_INCLUDED
-

Deleted: sandbox/tree_node/libs/tree_node/test/iterator_functions.hpp
==============================================================================
--- sandbox/tree_node/libs/tree_node/test/iterator_functions.hpp 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84956)
+++ /dev/null 00:00:00 1970 (deleted)
@@ -1,1471 +0,0 @@
-// 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)
-
-#ifndef LIBS_TREE_NODE_TEST_ITERATOR_FUNCTIONS_HPP_INCLUDED
-#define LIBS_TREE_NODE_TEST_ITERATOR_FUNCTIONS_HPP_INCLUDED
-
-#include <iterator>
-#include <algorithm>
-#include <boost/tr1/type_traits.hpp>
-#include <boost/mpl/bool.hpp>
-#include <boost/iterator/iterator_traits.hpp>
-#include <boost/tree_node/key/data.hpp>
-#include <boost/tree_node/traversal_state.hpp>
-#include <boost/tree_node/iterator/breadth_first.hpp>
-#include <boost/tree_node/iterator/breadth_first_descendant.hpp>
-#include <boost/tree_node/iterator/pre_order.hpp>
-#include <boost/tree_node/iterator/pre_order_descendant.hpp>
-#include <boost/tree_node/iterator/post_order.hpp>
-#include <boost/tree_node/iterator/post_order_descendant.hpp>
-#include <boost/tree_node/iterator/depth_first.hpp>
-#include <boost/tree_node/iterator/depth_first_descendant.hpp>
-#include <boost/tree_node/iterator/in_order.hpp>
-#include <boost/tree_node/iterator/dereference.hpp>
-#include <boost/tree_node/preprocessor.hpp>
-#include "../example/type_definitions.hpp"
-#include <boost/test/minimal.hpp>
-
-#if defined BOOST_TREE_NODE_CAN_USE_FUSION
-#include <boost/mpl/not.hpp>
-#include <boost/fusion/container/map/convert.hpp>
-#include <boost/fusion/sequence/comparison.hpp>
-#include <boost/fusion/view/filter_view.hpp>
-#include <boost/tree_node/intrinsic/get_properties.hpp>
-
-struct test_no_position_predicate
-{
- template <typename T>
- struct apply
- : boost::mpl::not_<
- std::tr1::is_same<
- typename boost::fusion::result_of::first<T>::type
- , boost::tree_node::position_key
- >
- >
- {
- };
-};
-#endif // BOOST_TREE_NODE_CAN_USE_FUSION
-
-//[test__node__children
-template <typename Node>
-void test_children(Node const& node)
-{
- typename Node::const_iterator iend = node.end();
-
- for (typename Node::const_iterator itr = node.begin(); itr != iend; ++itr)
- {
- // dereference_iterator() calls must be fully qualified here.
- BOOST_CHECK(
- boost::tree_node::dereference_iterator(
- itr
- ).get_parent_ptr() == &node
- );
-//<-
-#if defined BOOST_TYPEOF_NATIVE
-//->
- BOOST_CHECK(
- get(
- boost::tree_node::dereference_iterator(itr)
- , boost::tree_node::position_key()
- ) == itr
- );
-//<-
-#endif
-//->
- }
-}
-//]
-
-//[test__node__case_and_tag_types
-enum test_case
-{
- a_node_case
- , f_node_case
- , gui_node_case
-};
-
-template <test_case c>
-struct test_tag
-{
-};
-
-template <test_case c>
-struct test_df_tag
-{
-};
-
-template <test_case c>
-struct test_associative_tag
-{
-};
-
-template <test_case c>
-struct test_df_associative_tag
-{
-};
-//]
-
-template <typename TreeItr, typename Itr>
-void test_contents(TreeItr tree_itr, Itr itr, test_tag<a_node_case>)
-{
- BOOST_CHECK(
- get(
- dereference_iterator(tree_itr)
- , boost::tree_node::data_key()
- ) == boost::get<0>(*itr)
- );
- BOOST_CHECK(
- get(
- dereference_iterator(tree_itr)
- , boost::tree_node::height_key()
- ) == boost::get<1>(*itr)
- );
- BOOST_CHECK(
- get(
- dereference_iterator(tree_itr)
- , boost::tree_node::count_key()
- ) == boost::get<2>(*itr)
- );
-#if defined BOOST_TREE_NODE_CAN_USE_FUSION
- BOOST_CHECK(
- boost::tree_node::get<boost::tree_node::accumulation_key<> >(
- dereference_iterator(tree_itr)
- ) == boost::get<3>(*itr)
- );
- BOOST_CHECK(
- boost::tree_node::get<AccuHeightKey>(
- dereference_iterator(tree_itr)
- ) == boost::get<4>(*itr)
- );
- BOOST_CHECK(
- boost::tree_node::get<AccuCountKey>(
- dereference_iterator(tree_itr)
- ) == boost::get<5>(*itr)
- );
- BOOST_CHECK(
- boost::tree_node::get<AccuAccuKey>(
- dereference_iterator(tree_itr)
- ) == boost::get<6>(*itr)
- );
-#endif // BOOST_TREE_NODE_CAN_USE_FUSION
- test_children(dereference_iterator(tree_itr));
-}
-
-template <typename TreeItr, typename Itr>
-void test_contents(TreeItr tree_itr, Itr itr, test_df_tag<a_node_case>)
-{
- BOOST_CHECK(
- boost::tree_node::traversal_state(tree_itr) == boost::get<0>(*itr)
- );
- BOOST_CHECK(
- get(
- dereference_iterator(tree_itr)
- , boost::tree_node::data_key()
- ) == boost::get<1>(*itr)
- );
- BOOST_CHECK(
- get(
- dereference_iterator(tree_itr)
- , boost::tree_node::height_key()
- ) == boost::get<2>(*itr)
- );
- BOOST_CHECK(
- get(
- dereference_iterator(tree_itr)
- , boost::tree_node::count_key()
- ) == boost::get<3>(*itr)
- );
-#if defined BOOST_TREE_NODE_CAN_USE_FUSION
- BOOST_CHECK(
- boost::tree_node::get<boost::tree_node::accumulation_key<> >(
- dereference_iterator(tree_itr)
- ) == boost::get<4>(*itr)
- );
- BOOST_CHECK(
- boost::tree_node::get<AccuHeightKey>(
- dereference_iterator(tree_itr)
- ) == boost::get<5>(*itr)
- );
- BOOST_CHECK(
- boost::tree_node::get<AccuCountKey>(
- dereference_iterator(tree_itr)
- ) == boost::get<6>(*itr)
- );
- BOOST_CHECK(
- boost::tree_node::get<AccuAccuKey>(
- dereference_iterator(tree_itr)
- ) == boost::get<7>(*itr)
- );
-#endif // BOOST_TREE_NODE_CAN_USE_FUSION
- test_children(dereference_iterator(tree_itr));
-}
-
-template <typename TreeItr, typename Itr>
-void
- test_contents(TreeItr tree_itr, Itr itr, test_associative_tag<a_node_case>)
-{
- BOOST_CHECK(tree_itr->first == boost::get<0>(*itr));
- BOOST_CHECK(
- get(
- dereference_iterator(tree_itr)
- , boost::tree_node::data_key()
- ) == boost::get<1>(*itr)
- );
- BOOST_CHECK(
- get(
- dereference_iterator(tree_itr)
- , boost::tree_node::height_key()
- ) == boost::get<2>(*itr)
- );
- BOOST_CHECK(
- get(
- dereference_iterator(tree_itr)
- , boost::tree_node::count_key()
- ) == boost::get<3>(*itr)
- );
-#if defined BOOST_TREE_NODE_CAN_USE_FUSION
- BOOST_CHECK(
- boost::tree_node::get<boost::tree_node::accumulation_key<> >(
- dereference_iterator(tree_itr)
- ) == boost::get<4>(*itr)
- );
- BOOST_CHECK(
- boost::tree_node::get<AccuHeightKey>(
- dereference_iterator(tree_itr)
- ) == boost::get<5>(*itr)
- );
- BOOST_CHECK(
- boost::tree_node::get<AccuCountKey>(
- dereference_iterator(tree_itr)
- ) == boost::get<6>(*itr)
- );
- BOOST_CHECK(
- boost::tree_node::get<AccuAccuKey>(
- dereference_iterator(tree_itr)
- ) == boost::get<7>(*itr)
- );
-#endif // BOOST_NO_SFINAE
- test_children(dereference_iterator(tree_itr));
-}
-
-template <typename TreeItr, typename Itr>
-void
- test_contents(
- TreeItr tree_itr
- , Itr itr
- , test_df_associative_tag<a_node_case>
- )
-{
- BOOST_CHECK(
- boost::tree_node::traversal_state(tree_itr) == boost::get<0>(*itr)
- );
- BOOST_CHECK(tree_itr->first == boost::get<1>(*itr));
- BOOST_CHECK(
- get(
- dereference_iterator(tree_itr)
- , boost::tree_node::data_key()
- ) == boost::get<2>(*itr)
- );
- BOOST_CHECK(
- get(
- dereference_iterator(tree_itr)
- , boost::tree_node::height_key()
- ) == boost::get<3>(*itr)
- );
- BOOST_CHECK(
- get(
- dereference_iterator(tree_itr)
- , boost::tree_node::count_key()
- ) == boost::get<4>(*itr)
- );
-#if defined BOOST_TREE_NODE_CAN_USE_FUSION
- BOOST_CHECK(
- boost::tree_node::get<boost::tree_node::accumulation_key<> >(
- dereference_iterator(tree_itr)
- ) == boost::get<5>(*itr)
- );
- BOOST_CHECK(
- boost::tree_node::get<AccuHeightKey>(
- dereference_iterator(tree_itr)
- ) == boost::get<6>(*itr)
- );
- BOOST_CHECK(
- boost::tree_node::get<AccuCountKey>(
- dereference_iterator(tree_itr)
- ) == boost::get<7>(*itr)
- );
- BOOST_CHECK(
- boost::tree_node::get<AccuAccuKey>(
- dereference_iterator(tree_itr)
- ) == boost::get<8>(*itr)
- );
-#endif // BOOST_TREE_NODE_CAN_USE_FUSION
- test_children(dereference_iterator(tree_itr));
-}
-
-#if defined BOOST_TREE_NODE_CAN_USE_FUSION
-template <typename TreeItr, typename Itr>
-void test_contents(TreeItr tree_itr, Itr itr, test_tag<f_node_case>)
-{
- BOOST_CHECK(
- boost::tree_node::get<example_keys::your_uint>(
- dereference_iterator(tree_itr)
- ) == boost::get<0>(*itr)
- );
- BOOST_CHECK(
- boost::tree_node::get<example_keys::your_char>(
- dereference_iterator(tree_itr)
- ) == boost::get<1>(*itr)
- );
- BOOST_CHECK(
- boost::tree_node::get<AccuYourUintKey>(
- dereference_iterator(tree_itr)
- ) == boost::get<2>(*itr)
- );
-}
-
-template <typename TreeItr, typename Itr>
-void test_contents(TreeItr tree_itr, Itr itr, test_df_tag<f_node_case>)
-{
- BOOST_CHECK(
- boost::tree_node::traversal_state(tree_itr) == boost::get<0>(*itr)
- );
- BOOST_CHECK(
- boost::tree_node::get<example_keys::your_uint>(
- dereference_iterator(tree_itr)
- ) == boost::get<1>(*itr)
- );
- BOOST_CHECK(
- boost::tree_node::get<example_keys::your_char>(
- dereference_iterator(tree_itr)
- ) == boost::get<2>(*itr)
- );
- BOOST_CHECK(
- boost::tree_node::get<AccuYourUintKey>(
- dereference_iterator(tree_itr)
- ) == boost::get<3>(*itr)
- );
-}
-
-template <typename TreeItr, typename Itr>
-void
- test_contents(TreeItr tree_itr, Itr itr, test_associative_tag<f_node_case>)
-{
- BOOST_CHECK(tree_itr->first == boost::get<0>(*itr));
- BOOST_CHECK(
- boost::tree_node::get<example_keys::your_uint>(
- dereference_iterator(tree_itr)
- ) == boost::get<1>(*itr)
- );
- BOOST_CHECK(
- boost::tree_node::get<example_keys::your_char>(
- dereference_iterator(tree_itr)
- ) == boost::get<2>(*itr)
- );
- BOOST_CHECK(
- boost::tree_node::get<AccuYourUintKey>(
- dereference_iterator(tree_itr)
- ) == boost::get<3>(*itr)
- );
-}
-
-template <typename TreeItr, typename Itr>
-void
- test_contents(
- TreeItr tree_itr
- , Itr itr
- , test_df_associative_tag<f_node_case>
- )
-{
- BOOST_CHECK(
- boost::tree_node::traversal_state(tree_itr) == boost::get<0>(*itr)
- );
- BOOST_CHECK(tree_itr->first == boost::get<1>(*itr));
- BOOST_CHECK(
- boost::tree_node::get<example_keys::your_uint>(
- boost::tree_node::dereference_iterator(tree_itr)
- ) == boost::get<2>(*itr)
- );
- BOOST_CHECK(
- boost::tree_node::get<example_keys::your_char>(
- boost::tree_node::dereference_iterator(tree_itr)
- ) == boost::get<3>(*itr)
- );
- BOOST_CHECK(
- boost::tree_node::get<AccuYourUintKey>(
- boost::tree_node::dereference_iterator(tree_itr)
- ) == boost::get<4>(*itr)
- );
-}
-
-//[test__node__iterator_contents__gui_case
-template <typename TreeItr, typename Itr>
-void test_contents(TreeItr tree_itr, Itr itr, test_tag<gui_node_case>)
-{
- BOOST_CHECK(
- boost::tree_node::get<example_keys::row_location>(
- dereference_iterator(tree_itr)
- ) == boost::get<0>(*itr)
- );
- BOOST_CHECK(
- boost::tree_node::get<example_keys::row_height>(
- dereference_iterator(tree_itr)
- ) == boost::get<1>(*itr)
- );
- BOOST_CHECK(
- boost::tree_node::get<example_keys::row_priority>(
- dereference_iterator(tree_itr)
- ) == boost::get<2>(*itr)
- );
- BOOST_CHECK(
- boost::tree_node::get<HeightSumKey>(
- dereference_iterator(tree_itr)
- ) == boost::get<3>(*itr)
- );
- BOOST_CHECK(
- boost::tree_node::get<MinPriorityKey>(
- dereference_iterator(tree_itr)
- ) == boost::get<4>(*itr)
- );
-}
-//]
-
-template <typename TreeItr, typename Itr>
-void test_contents(TreeItr tree_itr, Itr itr, test_df_tag<gui_node_case>)
-{
- BOOST_CHECK(
- boost::tree_node::traversal_state(tree_itr) == boost::get<0>(*itr)
- );
- BOOST_CHECK(
- boost::tree_node::get<example_keys::row_location>(
- dereference_iterator(tree_itr)
- ) == boost::get<1>(*itr)
- );
- BOOST_CHECK(
- boost::tree_node::get<example_keys::row_height>(
- dereference_iterator(tree_itr)
- ) == boost::get<2>(*itr)
- );
- BOOST_CHECK(
- boost::tree_node::get<example_keys::row_priority>(
- dereference_iterator(tree_itr)
- ) == boost::get<3>(*itr)
- );
- BOOST_CHECK(
- boost::tree_node::get<HeightSumKey>(
- dereference_iterator(tree_itr)
- ) == boost::get<4>(*itr)
- );
- BOOST_CHECK(
- boost::tree_node::get<MinPriorityKey>(
- dereference_iterator(tree_itr)
- ) == boost::get<5>(*itr)
- );
-}
-
-template <typename TreeItr, typename Itr>
-void
- test_contents(
- TreeItr tree_itr
- , Itr itr
- , test_associative_tag<gui_node_case>
- )
-{
- BOOST_CHECK(tree_itr->first == boost::get<0>(*itr));
- BOOST_CHECK(
- boost::tree_node::get<example_keys::row_location>(
- dereference_iterator(tree_itr)
- ) == boost::get<1>(*itr)
- );
- BOOST_CHECK(
- boost::tree_node::get<example_keys::row_height>(
- dereference_iterator(tree_itr)
- ) == boost::get<2>(*itr)
- );
- BOOST_CHECK(
- boost::tree_node::get<example_keys::row_priority>(
- dereference_iterator(tree_itr)
- ) == boost::get<3>(*itr)
- );
- BOOST_CHECK(
- boost::tree_node::get<HeightSumKey>(
- dereference_iterator(tree_itr)
- ) == boost::get<4>(*itr)
- );
- BOOST_CHECK(
- boost::tree_node::get<MinPriorityKey>(
- dereference_iterator(tree_itr)
- ) == boost::get<5>(*itr)
- );
-}
-
-template <typename TreeItr, typename Itr>
-void
- test_contents(
- TreeItr tree_itr
- , Itr itr
- , test_df_associative_tag<gui_node_case>
- )
-{
- BOOST_CHECK(
- boost::tree_node::traversal_state(tree_itr) == boost::get<0>(*itr)
- );
- BOOST_CHECK(tree_itr->first == boost::get<1>(*itr));
- BOOST_CHECK(
- boost::tree_node::get<example_keys::row_location>(
- dereference_iterator(tree_itr)
- ) == boost::get<2>(*itr)
- );
- BOOST_CHECK(
- boost::tree_node::get<example_keys::row_height>(
- dereference_iterator(tree_itr)
- ) == boost::get<3>(*itr)
- );
- BOOST_CHECK(
- boost::tree_node::get<example_keys::row_priority>(
- dereference_iterator(tree_itr)
- ) == boost::get<4>(*itr)
- );
- BOOST_CHECK(
- boost::tree_node::get<HeightSumKey>(
- dereference_iterator(tree_itr)
- ) == boost::get<5>(*itr)
- );
- BOOST_CHECK(
- boost::tree_node::get<MinPriorityKey>(
- dereference_iterator(tree_itr)
- ) == boost::get<6>(*itr)
- );
-}
-#endif // BOOST_TREE_NODE_CAN_USE_FUSION
-
-//[test__node__iterator__is_forward
-template <typename TreeItr, typename Itr, typename Tag>
-bool
- test_iterator_more(
- TreeItr tree_itr
- , Itr itr
- , Itr itr_end
- , Tag tag
- , std::tr1::false_type
- )
-{
- while (tree_itr)
- {
- if (itr == itr_end)
- {
- return false;
- }
-
- test_contents(tree_itr, itr, tag);
- ++tree_itr;
- ++itr;
- }
-
- BOOST_CHECK(itr == itr_end);
- return true;
-}
-//]
-
-//[test__node__iterator__is_also_reversible
-template <typename TreeItr, typename Itr, typename Tag>
-bool
- test_iterator_more(
- TreeItr tree_itr
- , Itr itr
- , Itr itr_end
- , Tag tag
- , std::tr1::true_type
- )
-{
- Itr copy_itr(itr);
-
- while (copy_itr != itr_end)
- {
- if (!tree_itr)
- {
- return false;
- }
-
- test_contents(tree_itr, copy_itr, tag);
- ++tree_itr;
- ++copy_itr;
- }
-
- while (itr != copy_itr)
- {
- test_contents(--tree_itr, --copy_itr, tag);
- }
-
- return test_iterator_more(
- tree_itr
- , itr
- , itr_end
- , tag
- , std::tr1::false_type()
- );
-}
-//]
-
-//[test__node__iterator__is_bidirectional
-template <typename TreeItr, typename Itr, typename Tag>
-bool
- test_iterator(
- TreeItr tree_itr
- , Itr itr
- , Itr itr_end
- , Tag tag
- , std::tr1::false_type
- )
-{
- return test_iterator_more(
- tree_itr
- , itr
- , itr_end
- , tag
- , std::tr1::is_base_of<
- std::bidirectional_iterator_tag
- , typename boost::BOOST_ITERATOR_CATEGORY<TreeItr>::type
- >()
- );
-}
-//]
-
-//[test__node__iterator__is_indexable
-template <typename TreeItr, typename Itr, typename Tag>
-bool
- test_iterator(
- TreeItr tree_itr
- , Itr itr
- , Itr itr_end
- , Tag tag
- , std::tr1::true_type
- )
-{
- typename boost::iterator_difference<
- Itr
- >::type n = std::distance(itr, itr_end), d;
- TreeItr tree_end(tree_itr), tree_itr1, tree_itr2;
-
- tree_end += n;
-
- for (
- typename boost::iterator_difference<
- Itr
- >::type i = boost::initialized_value;
- i < n;
- ++i
- )
- {
- tree_itr1 = tree_itr;
- tree_itr1 += i;
- tree_itr2 = tree_itr;
-
- for (d = boost::initialized_value; d < i; ++d)
- {
- ++tree_itr2;
- }
-
- BOOST_CHECK(tree_itr1 == tree_itr2);
- BOOST_CHECK(tree_itr == tree_itr1 - i);
- BOOST_CHECK(i == tree_itr1 - tree_itr);
- BOOST_CHECK(-i == tree_itr - tree_itr1);
- test_contents(tree_itr1, itr + i, tag);
-
- for (d = boost::initialized_value; d < n; ++d)
- {
- tree_itr2 = tree_itr;
- tree_itr2 += d;
- BOOST_CHECK(i - d == tree_itr1 - tree_itr2);
- BOOST_CHECK(d - i == tree_itr2 - tree_itr1);
- BOOST_CHECK((i < d) == (tree_itr1 < tree_itr2));
- BOOST_CHECK((d < i) == (tree_itr2 < tree_itr1));
-
- if (d + i < n)
- {
- BOOST_CHECK(tree_itr1 + d == tree_itr2 + i);
- BOOST_CHECK(tree_itr1 == tree_itr2 + i - d);
- BOOST_CHECK(tree_itr2 == tree_itr1 + d - i);
- }
- }
-
- if (i)
- {
- tree_itr1 = tree_end;
- tree_itr1 -= i;
- tree_itr2 = tree_end;
-
- for (d = boost::initialized_value; d < i; ++d)
- {
- --tree_itr2;
- }
-
- BOOST_CHECK(tree_itr1 == tree_itr2);
- BOOST_CHECK(tree_end == tree_itr1 + i);
- BOOST_CHECK(i == tree_end - tree_itr1);
- BOOST_CHECK(-i == tree_itr1 - tree_end);
- test_contents(tree_itr1, itr_end - i, tag);
- }
- }
-
- return test_iterator(
- tree_itr
- , itr
- , itr_end
- , tag
- , std::tr1::false_type()
- );
-}
-//]
-
-//[test__node__iterator__driver
-template <typename TreeItr, typename Itr, typename Tag>
-bool
- test_iterator(
- TreeItr tree_itr
- , Itr itr
- , Itr itr_end
- , Tag tag
- )
-{
- return test_iterator(
- tree_itr
- , itr
- , itr_end
- , tag
- // TODO: Replace with check for indexable iterator type.
- , std::tr1::is_base_of<
- std::random_access_iterator_tag
- , typename boost::BOOST_ITERATOR_CATEGORY<TreeItr>::type
- >()
- );
-}
-//]
-
-//[test__node__iterators__are_forward
-template <
- test_case c
- , typename Node
- , typename Values
- , typename DFValues
->
-void
- test_iterators(
- Node const& node
- , Values const& bf_vals
- , Values const& pre_vals
- , Values const& post_vals
- , DFValues const& df_vals
- , std::tr1::true_type
- )
-{
- BOOST_CHECK(
- test_iterator(
- make_breadth_first_iterator(node)
- , bf_vals.begin()
- , bf_vals.end()
- , test_tag<c>()
- )
- );
- BOOST_CHECK(
- test_iterator(
- make_breadth_first_descendant_iterator(node)
- , ++bf_vals.begin()
- , bf_vals.end()
- , test_tag<c>()
- )
- );
- BOOST_CHECK(
- test_iterator(
- make_pre_order_iterator(node)
- , pre_vals.begin()
- , pre_vals.end()
- , test_tag<c>()
- )
- );
- BOOST_CHECK(
- test_iterator(
- make_pre_order_descendant_iterator(node)
- , ++pre_vals.begin()
- , pre_vals.end()
- , test_tag<c>()
- )
- );
- BOOST_CHECK(
- test_iterator(
- make_post_order_iterator(node)
- , post_vals.begin()
- , post_vals.end()
- , test_tag<c>()
- )
- );
- BOOST_CHECK(
- test_iterator(
- make_post_order_descendant_iterator(node)
- , post_vals.begin()
- , post_vals.begin() + post_vals.size() - 1
- , test_tag<c>()
- )
- );
- BOOST_CHECK(
- test_iterator(
- make_depth_first_iterator(node)
- , df_vals.begin()
- , df_vals.end()
- , test_df_tag<c>()
- )
- );
- BOOST_CHECK(
- test_iterator(
- make_depth_first_descendant_iterator(node)
- , ++df_vals.begin()
- , df_vals.begin() + df_vals.size() - 1
- , test_df_tag<c>()
- )
- );
-}
-//]
-
-//[test__node__iterators__are_also_reversible
-template <
- test_case c
- , typename Node
- , typename Values
- , typename DFValues
->
-void
- test_iterators(
- Node const& node
- , Values const& bf_vals
- , Values const& pre_vals
- , Values const& post_vals
- , DFValues const& df_vals
- , std::tr1::false_type
- )
-{
- test_iterators<c>(
- node
- , bf_vals
- , pre_vals
- , post_vals
- , df_vals
- , std::tr1::true_type()
- );
- BOOST_CHECK(
- test_iterator(
- make_pre_order_reverse_iterator(node)
- , pre_vals.rbegin()
- , pre_vals.rend()
- , test_tag<c>()
- )
- );
- BOOST_CHECK(
- test_iterator(
- make_pre_order_descendant_reverse_iterator(node)
- , pre_vals.rbegin()
- , pre_vals.rbegin() + pre_vals.size() - 1
- , test_tag<c>()
- )
- );
- BOOST_CHECK(
- test_iterator(
- make_post_order_reverse_iterator(node)
- , post_vals.rbegin()
- , post_vals.rend()
- , test_tag<c>()
- )
- );
- BOOST_CHECK(
- test_iterator(
- make_post_order_descendant_reverse_iterator(node)
- , ++post_vals.rbegin()
- , post_vals.rend()
- , test_tag<c>()
- )
- );
-
- DFValues df_d_v(df_vals);
-
- for (typename DFValues::size_type i = 0; i < df_d_v.size(); ++i)
- {
- boost::get<0>(df_d_v[i]) = (
- (boost::tree_node::pre_order_traversal == boost::get<0>(df_d_v[i]))
- ? boost::tree_node::post_order_traversal
- : boost::tree_node::pre_order_traversal
- );
- }
-
- BOOST_CHECK(
- test_iterator(
- make_depth_first_reverse_iterator(node)
- , df_d_v.rbegin()
- , df_d_v.rend()
- , test_df_tag<c>()
- )
- );
- BOOST_CHECK(
- test_iterator(
- make_depth_first_descendant_reverse_iterator(node)
- , ++df_d_v.rbegin()
- , df_d_v.rbegin() + df_d_v.size() - 1
- , test_df_tag<c>()
- )
- );
-}
-//]
-
-//[test__node__iterators
-template <
- test_case c
- , typename Node
- , typename Values
- , typename DFValues
->
-void
- test_node(
- Node const& node
- , Values const& bf_vals
- , Values const& pre_vals
- , Values const& post_vals
- , DFValues const& df_vals
- )
-{
- test_iterators<c>(
- node
- , bf_vals
- , pre_vals
- , post_vals
- , df_vals
- , std::tr1::is_void<typename Node::reverse_iterator>()
- );
-}
-
-template <
- test_case c
- , typename Node
- , typename Values
- , typename DFValues
->
-void
- test_node(
- Node const& node
- , Values const& bf_vals
- , Values const& pre_vals
- , Values const& post_vals
- , Values const& in_vals
- , DFValues const& df_vals
- )
-{
- test_node<c>(node, bf_vals, pre_vals, post_vals, df_vals);
- BOOST_CHECK(
- test_iterator(
- make_in_order_iterator(node)
- , in_vals.begin()
- , in_vals.end()
- , test_tag<c>()
- )
- );
- BOOST_CHECK(
- test_iterator(
- make_in_order_reverse_iterator(node)
- , in_vals.rbegin()
- , in_vals.rend()
- , test_tag<c>()
- )
- );
-}
-//]
-
-template <
- test_case c
- , typename Node
- , typename Values
- , typename KeyValues
- , typename DFValues
- , typename DFKeyValues
->
-void
- test_associative_iterators(
- Node const& node
- , Values const& bf_vals
- , KeyValues const& bf_kvs
- , Values const& pre_vals
- , KeyValues const& pre_kvs
- , Values const& post_vals
- , KeyValues const& post_kvs
- , DFValues const& df_vals
- , DFKeyValues const& df_kvs
- , std::tr1::true_type
- )
-{
- BOOST_CHECK(
- test_iterator(
- make_breadth_first_iterator(node)
- , bf_vals.begin()
- , bf_vals.end()
- , test_tag<c>()
- )
- );
- BOOST_CHECK(
- test_iterator(
- make_breadth_first_descendant_iterator(node)
- , bf_kvs.begin()
- , bf_kvs.end()
- , test_associative_tag<c>()
- )
- );
- BOOST_CHECK(
- test_iterator(
- make_pre_order_iterator(node)
- , pre_vals.begin()
- , pre_vals.end()
- , test_tag<c>()
- )
- );
- BOOST_CHECK(
- test_iterator(
- make_pre_order_descendant_iterator(node)
- , pre_kvs.begin()
- , pre_kvs.end()
- , test_associative_tag<c>()
- )
- );
- BOOST_CHECK(
- test_iterator(
- make_post_order_iterator(node)
- , post_vals.begin()
- , post_vals.end()
- , test_tag<c>()
- )
- );
- BOOST_CHECK(
- test_iterator(
- make_post_order_descendant_iterator(node)
- , post_kvs.begin()
- , post_kvs.end()
- , test_associative_tag<c>()
- )
- );
- BOOST_CHECK(
- test_iterator(
- make_depth_first_iterator(node)
- , df_vals.begin()
- , df_vals.end()
- , test_df_tag<c>()
- )
- );
- BOOST_CHECK(
- test_iterator(
- make_depth_first_descendant_iterator(node)
- , df_kvs.begin()
- , df_kvs.end()
- , test_df_associative_tag<c>()
- )
- );
-}
-
-template <
- test_case c
- , typename Node
- , typename Values
- , typename KeyValues
- , typename DFValues
- , typename DFKeyValues
->
-void
- test_associative_iterators(
- Node const& node
- , Values const& bf_vals
- , KeyValues const& bf_kvs
- , Values const& pre_vals
- , KeyValues const& pre_kvs
- , Values const& post_vals
- , KeyValues const& post_kvs
- , DFValues const& df_vals
- , DFKeyValues const& df_kvs
- , std::tr1::false_type
- )
-{
- test_associative_iterators<c>(
- node
- , bf_vals
- , bf_kvs
- , pre_vals
- , pre_kvs
- , post_vals
- , post_kvs
- , df_vals
- , df_kvs
- , std::tr1::true_type()
- );
- BOOST_CHECK(
- test_iterator(
- make_pre_order_reverse_iterator(node)
- , pre_vals.rbegin()
- , pre_vals.rend()
- , test_tag<c>()
- )
- );
- BOOST_CHECK(
- test_iterator(
- make_pre_order_descendant_reverse_iterator(node)
- , pre_kvs.rbegin()
- , pre_kvs.rend()
- , test_associative_tag<c>()
- )
- );
- BOOST_CHECK(
- test_iterator(
- make_post_order_reverse_iterator(node)
- , post_vals.rbegin()
- , post_vals.rend()
- , test_tag<c>()
- )
- );
- BOOST_CHECK(
- test_iterator(
- make_post_order_descendant_reverse_iterator(node)
- , post_kvs.rbegin()
- , post_kvs.rend()
- , test_associative_tag<c>()
- )
- );
-
- DFValues df_d_v(df_vals);
- DFKeyValues df_d_kvs(df_kvs);
-
- for (typename DFValues::size_type i = 0; i < df_d_v.size(); ++i)
- {
- boost::get<0>(df_d_v[i]) = (
- (boost::tree_node::pre_order_traversal == boost::get<0>(df_d_v[i]))
- ? boost::tree_node::post_order_traversal
- : boost::tree_node::pre_order_traversal
- );
- }
-
- for (typename DFKeyValues::size_type i = 0; i < df_d_kvs.size(); ++i)
- {
- boost::get<0>(df_d_kvs[i]) = (
- (
- boost::tree_node::pre_order_traversal == boost::get<0>(
- df_d_kvs[i]
- )
- )
- ? boost::tree_node::post_order_traversal
- : boost::tree_node::pre_order_traversal
- );
- }
-
- BOOST_CHECK(
- test_iterator(
- make_depth_first_reverse_iterator(node)
- , df_d_v.rbegin()
- , df_d_v.rend()
- , test_df_tag<c>()
- )
- );
- BOOST_CHECK(
- test_iterator(
- make_depth_first_descendant_reverse_iterator(node)
- , df_d_kvs.rbegin()
- , df_d_kvs.rend()
- , test_df_associative_tag<c>()
- )
- );
-}
-
-template <
- test_case c
- , typename Node
- , typename Values
- , typename KeyValues
- , typename DFValues
- , typename DFKeyValues
->
-void
- test_associative_node(
- Node const& node
- , Values const& bf_vals
- , KeyValues const& bf_kvs
- , Values const& pre_vals
- , KeyValues const& pre_kvs
- , Values const& post_vals
- , KeyValues const& post_kvs
- , DFValues const& df_vals
- , DFKeyValues const& df_kvs
- )
-{
- test_associative_iterators<c>(
- node
- , bf_vals
- , bf_kvs
- , pre_vals
- , pre_kvs
- , post_vals
- , post_kvs
- , df_vals
- , df_kvs
- , std::tr1::is_void<typename Node::reverse_iterator>()
- );
-}
-
-template <typename Itr1, typename Itr2>
-bool test_node_copies(Itr1 itr1, Itr2 itr2)
-{
-#if defined BOOST_TREE_NODE_CAN_USE_FUSION
- typedef typename boost::tree_node::result_of::get_properties<
- typename ::std::tr1::remove_reference<
- typename boost::tree_node::result_of::dereference_iterator<
- Itr1
- >::type
- >::type
- >::type
- KVPairs1;
- typedef typename boost::tree_node::result_of::get_properties<
- typename ::std::tr1::remove_reference<
- typename boost::tree_node::result_of::dereference_iterator<
- Itr2
- >::type
- >::type
- >::type
- KVPairs2;
-#endif // BOOST_TREE_NODE_CAN_USE_FUSION
-
- while (itr1)
- {
- if (
- boost::tree_node::traversal_state(
- itr2
- ) == boost::tree_node::no_traversal
- )
- {
- return false;
- }
-
-#if defined BOOST_TREE_NODE_CAN_USE_FUSION
- KVPairs1 p1(
- boost::tree_node::get_properties(
- boost::tree_node::dereference_iterator(itr1)
- )
- );
- boost::fusion::filter_view<KVPairs1,test_no_position_predicate> view1(
- p1
- );
- KVPairs2 p2(
- boost::tree_node::get_properties(
- boost::tree_node::dereference_iterator(itr2)
- )
- );
- boost::fusion::filter_view<KVPairs2,test_no_position_predicate> view2(
- p2
- );
-
- BOOST_CHECK(
- boost::fusion::equal_to(
- boost::fusion::as_map(view1)
- , boost::fusion::as_map(view2)
- )
- );
-#endif // BOOST_TREE_NODE_CAN_USE_FUSION
- BOOST_CHECK(
- get(
- boost::tree_node::dereference_iterator(itr1)
- , boost::tree_node::data_key()
- ) == get(
- boost::tree_node::dereference_iterator(itr2)
- , boost::tree_node::data_key()
- )
- );
- BOOST_CHECK(
- get(
- boost::tree_node::dereference_iterator(itr1)
- , boost::tree_node::height_key()
- ) == get(
- boost::tree_node::dereference_iterator(itr2)
- , boost::tree_node::height_key()
- )
- );
- BOOST_CHECK(
- get(
- boost::tree_node::dereference_iterator(itr1)
- , boost::tree_node::count_key()
- ) == get(
- boost::tree_node::dereference_iterator(itr2)
- , boost::tree_node::count_key()
- )
- );
-#if defined BOOST_TREE_NODE_CAN_USE_FUSION
- BOOST_CHECK(
- boost::tree_node::get<boost::tree_node::accumulation_key<> >(
- boost::tree_node::dereference_iterator(itr1)
- ) == boost::tree_node::get<boost::tree_node::accumulation_key<> >(
- boost::tree_node::dereference_iterator(itr2)
- )
- );
- BOOST_CHECK(
- boost::tree_node::get<AccuHeightKey>(
- boost::tree_node::dereference_iterator(itr1)
- ) == boost::tree_node::get<AccuHeightKey>(
- boost::tree_node::dereference_iterator(itr2)
- )
- );
- BOOST_CHECK(
- boost::tree_node::get<AccuCountKey>(
- boost::tree_node::dereference_iterator(itr1)
- ) == boost::tree_node::get<AccuCountKey>(
- boost::tree_node::dereference_iterator(itr2)
- )
- );
- BOOST_CHECK(
- boost::tree_node::get<AccuAccuKey>(
- boost::tree_node::dereference_iterator(itr1)
- ) == boost::tree_node::get<AccuAccuKey>(
- boost::tree_node::dereference_iterator(itr2)
- )
- );
-#endif // BOOST_TREE_NODE_CAN_USE_FUSION
- ++itr1;
- ++itr2;
- }
-
- BOOST_CHECK(
- boost::tree_node::traversal_state(
- itr2
- ) == boost::tree_node::no_traversal
- );
- return true;
-}
-
-template <typename Itr1, typename Itr2>
-bool test_associative_node_copies(Itr1 itr1, Itr2 itr2)
-{
-#if defined BOOST_TREE_NODE_CAN_USE_FUSION
- typedef typename boost::tree_node::result_of::get_properties<
- typename ::std::tr1::remove_reference<
- typename boost::tree_node::result_of::dereference_iterator<
- Itr1
- >::type
- >::type
- >::type
- KVPairs1;
- typedef typename boost::tree_node::result_of::get_properties<
- typename ::std::tr1::remove_reference<
- typename boost::tree_node::result_of::dereference_iterator<
- Itr2
- >::type
- >::type
- >::type
- KVPairs2;
-#endif // BOOST_TREE_NODE_CAN_USE_FUSION
-
- while (itr1)
- {
- if (
- boost::tree_node::traversal_state(
- itr2
- ) == boost::tree_node::no_traversal
- )
- {
- return false;
- }
-
- BOOST_CHECK(itr1->first == itr2->first);
-#if defined BOOST_TREE_NODE_CAN_USE_FUSION
- KVPairs1 p1(
- boost::tree_node::get_properties(
- boost::tree_node::dereference_iterator(itr1)
- )
- );
- boost::fusion::filter_view<KVPairs1,test_no_position_predicate> view1(
- p1
- );
- KVPairs2 p2(
- boost::tree_node::get_properties(
- boost::tree_node::dereference_iterator(itr2)
- )
- );
- boost::fusion::filter_view<KVPairs2,test_no_position_predicate> view2(
- p2
- );
-
- BOOST_CHECK(
- boost::fusion::equal_to(
- boost::fusion::as_map(view1)
- , boost::fusion::as_map(view2)
- )
- );
-#endif // BOOST_TREE_NODE_CAN_USE_FUSION
- BOOST_CHECK(
- get(
- boost::tree_node::dereference_iterator(itr1)
- , boost::tree_node::data_key()
- ) == get(
- boost::tree_node::dereference_iterator(itr2)
- , boost::tree_node::data_key()
- )
- );
- BOOST_CHECK(
- get(
- boost::tree_node::dereference_iterator(itr1)
- , boost::tree_node::height_key()
- ) == get(
- boost::tree_node::dereference_iterator(itr2)
- , boost::tree_node::height_key()
- )
- );
- BOOST_CHECK(
- get(
- boost::tree_node::dereference_iterator(itr1)
- , boost::tree_node::count_key()
- ) == get(
- boost::tree_node::dereference_iterator(itr2)
- , boost::tree_node::count_key()
- )
- );
-#if defined BOOST_TREE_NODE_CAN_USE_FUSION
- BOOST_CHECK(
- boost::tree_node::get<boost::tree_node::accumulation_key<> >(
- boost::tree_node::dereference_iterator(itr1)
- ) == boost::tree_node::get<boost::tree_node::accumulation_key<> >(
- boost::tree_node::dereference_iterator(itr2)
- )
- );
- BOOST_CHECK(
- boost::tree_node::get<AccuHeightKey>(
- boost::tree_node::dereference_iterator(itr1)
- ) == boost::tree_node::get<AccuHeightKey>(
- boost::tree_node::dereference_iterator(itr2)
- )
- );
- BOOST_CHECK(
- boost::tree_node::get<AccuCountKey>(
- boost::tree_node::dereference_iterator(itr1)
- ) == boost::tree_node::get<AccuCountKey>(
- boost::tree_node::dereference_iterator(itr2)
- )
- );
- BOOST_CHECK(
- boost::tree_node::get<AccuAccuKey>(
- boost::tree_node::dereference_iterator(itr1)
- ) == boost::tree_node::get<AccuAccuKey>(
- boost::tree_node::dereference_iterator(itr2)
- )
- );
-#endif // BOOST_TREE_NODE_CAN_USE_FUSION
- ++itr1;
- ++itr2;
- }
-
- BOOST_CHECK(
- boost::tree_node::traversal_state(
- itr2
- ) == boost::tree_node::no_traversal
- );
- return true;
-}
-
-#endif // LIBS_TREE_NODE_TEST_ITERATOR_FUNCTIONS_HPP_INCLUDED
-

Deleted: sandbox/tree_node/libs/tree_node/test/nary_node.cpp
==============================================================================
--- sandbox/tree_node/libs/tree_node/test/nary_node.cpp 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84956)
+++ /dev/null 00:00:00 1970 (deleted)
@@ -1,2853 +0,0 @@
-// 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)
-
-#include <boost/config.hpp>
-
-#if defined BOOST_MSVC
- #pragma warning (push)
- #pragma warning (disable : 4996) // fn called w/params that may be unsafe
-#endif
-
-#include <iterator>
-#include <boost/tuple/tuple.hpp>
-#include <boost/typeof/boost/rational.hpp>
-#include <boost/typeof/boost/container_gen/selectors.hpp>
-#include <boost/container_gen/container_gen.hpp>
-#include <boost/container_gen/emplace_function_gen.hpp>
-#include <boost/tree_node/preprocessor.hpp>
-#include <boost/tree_node/intrinsic/value_at_key.hpp>
-#include <boost/typeof/boost/tree_node/with_count.hpp>
-#include <boost/typeof/boost/tree_node/with_height.hpp>
-#include <boost/typeof/boost/tree_node/with_position.hpp>
-
-#if defined BOOST_TREE_NODE_CAN_USE_FUSION
-#include <boost/typeof/boost/tree_node/with_accumulation.hpp>
-#endif
-
-#include "../example/type_definitions.hpp"
-#include "iterator_functions.hpp"
-
-typedef boost::emplace_function_gen<boost::dequeS>::type
- Emplacer;
-
-#include <boost/typeof/boost/tree_node/nary_node.hpp>
-
-template <typename Selector>
-void test()
-{
-#if defined BOOST_TREE_NODE_CAN_USE_FUSION
- typedef boost::tree_node::with_accumulation<
- boost::tree_node::with_height_base_gen<
- boost::tree_node::with_accumulation_base_gen<
- boost::tree_node::with_position_base_gen<
- boost::tree_node::with_accumulation_base_gen<
- boost::tree_node::with_count_base_gen<
- boost::tree_node::with_accumulation_base_gen<
- boost::tree_node::nary_node_base_gen<Selector>
- >
- >
- , AccuAccuKey
- >
- >
- , AccuCountKey
- >
- >
- , boost::rational<long>
- , void
- , AccuHeightKey
- >
- ANode;
-#else // !defined BOOST_TREE_NODE_CAN_USE_FUSION
- typedef boost::tree_node::with_height<
- boost::tree_node::with_position_base_gen<
- boost::tree_node::with_count_base_gen<
- boost::tree_node::nary_node_base_gen<Selector>
- >
- >
- , boost::rational<long>
- >
- ANode;
-#endif // BOOST_TREE_NODE_CAN_USE_FUSION
-
- typedef typename boost::container_gen<
- boost::dequeS
- , boost::tuples::tuple<
- typename boost::tree_node::result_of::value_at_key<
- ANode const
- , boost::tree_node::data_key
- >::type
- , typename boost::tree_node::result_of::value_at_key<
- ANode const
- , boost::tree_node::height_key
- >::type
- , typename boost::tree_node::result_of::value_at_key<
- ANode const
- , boost::tree_node::count_key
- >::type
-#if defined BOOST_TREE_NODE_CAN_USE_FUSION
- , typename boost::tree_node::result_of::value_at_key<
- ANode const
- , boost::tree_node::accumulation_key<>
- >::type
- , typename boost::tree_node::result_of::value_at_key<
- ANode const
- , AccuHeightKey
- >::type
- , typename boost::tree_node::result_of::value_at_key<
- ANode const
- , AccuCountKey
- >::type
- , typename boost::tree_node::result_of::value_at_key<
- ANode const
- , AccuAccuKey
- >::type
-#endif // BOOST_TREE_NODE_CAN_USE_FUSION
- >
- >::type
- Values;
- typedef typename boost::container_gen<
- boost::dequeS
- , boost::tuples::tuple<
- boost::tree_node::traversal_state
- , typename boost::tree_node::result_of::value_at_key<
- ANode const
- , boost::tree_node::data_key
- >::type
- , typename boost::tree_node::result_of::value_at_key<
- ANode const
- , boost::tree_node::height_key
- >::type
- , typename boost::tree_node::result_of::value_at_key<
- ANode const
- , boost::tree_node::count_key
- >::type
-#if defined BOOST_TREE_NODE_CAN_USE_FUSION
- , typename boost::tree_node::result_of::value_at_key<
- ANode const
- , boost::tree_node::accumulation_key<>
- >::type
- , typename boost::tree_node::result_of::value_at_key<
- ANode const
- , AccuHeightKey
- >::type
- , typename boost::tree_node::result_of::value_at_key<
- ANode const
- , AccuCountKey
- >::type
- , typename boost::tree_node::result_of::value_at_key<
- ANode const
- , AccuAccuKey
- >::type
-#endif // BOOST_TREE_NODE_CAN_USE_FUSION
- >
- >::type
- DFValues;
-
- ANode a_root(5);
-
- BOOST_CHECK(
- !a_root.get_parent_ptr()
-// , "Parent member uninitialized."
- );
-
- for (
- boost::tree_node::breadth_first_iterator<ANode> itr(a_root);
- itr;
- ++itr
- )
- {
- typename ANode::traits::data_type const& data = get(
- *itr
- , boost::tree_node::data_key()
- );
-
- if (1 < data)
- {
- for (std::size_t i = 0; i < data; ++i)
- {
- typename ANode::iterator child_itr(
-#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- (std::tr1::is_same<Selector,boost::slistS>::value) ? (
- (*itr).emplace(data - 1 - i)
- ) :
-#endif
- (*itr).emplace(i)
- );
- typename ANode::const_pointer const_child(&*child_itr);
-
- BOOST_CHECK(
- (*child_itr).get_parent_ptr() == &*itr
-// , "Ctor not linking child to parent."
- );
- BOOST_CHECK(
- (
- (*child_itr).get_parent_ptr()
- ) == (*const_child).get_parent_ptr()
-// , "Why are these pointers different?"
- );
-
- {
- typename ANode::iterator c_itr = (*itr).begin();
-
-#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- if (!std::tr1::is_same<Selector,boost::slistS>::value)
-#endif
- std::advance(c_itr, i);
- BOOST_CHECK(
- &*child_itr == &*c_itr
-// , "Ctor not linking parent to child."
- );
- }
- }
- }
- }
-
- {
- Values bf_vals, pre_vals, post_vals;
- DFValues df_vals;
- Emplacer emplacer;
-
-#if defined BOOST_TREE_NODE_CAN_USE_FUSION
- emplacer[bf_vals]
- (5, 4, 24, 31, 3, 76, boost::rational<long>(10, 3))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (3, 2, 6, 7, 1, 13, boost::rational<long>(2, 1))
- (4, 3, 12, 15, 2, 32, boost::rational<long>(8, 3))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (3, 2, 6, 7, 1, 13, boost::rational<long>(2, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1));
- emplacer[pre_vals]
- (5, 4, 24, 31, 3, 76, boost::rational<long>(10, 3))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (3, 2, 6, 7, 1, 13, boost::rational<long>(2, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (4, 3, 12, 15, 2, 32, boost::rational<long>(8, 3))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (3, 2, 6, 7, 1, 13, boost::rational<long>(2, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1));
- emplacer[post_vals]
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (3, 2, 6, 7, 1, 13, boost::rational<long>(2, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (3, 2, 6, 7, 1, 13, boost::rational<long>(2, 1))
- (4, 3, 12, 15, 2, 32, boost::rational<long>(8, 3))
- (5, 4, 24, 31, 3, 76, boost::rational<long>(10, 3));
- emplacer[df_vals]
- (boost::tree_node::pre_order_traversal, 5, 4, 24,
- 31, 3, 76, boost::rational<long>(10, 3))
- (boost::tree_node::pre_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::post_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::pre_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::pre_order_traversal, 2, 1, 3,
- 3, 0, 5, boost::rational<long>(4, 3))
- (boost::tree_node::pre_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::post_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::pre_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 2, 1, 3,
- 3, 0, 5, boost::rational<long>(4, 3))
- (boost::tree_node::pre_order_traversal, 3, 2, 6,
- 7, 1, 13, boost::rational<long>(2, 1))
- (boost::tree_node::pre_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::post_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::pre_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::pre_order_traversal, 2, 1, 3,
- 3, 0, 5, boost::rational<long>(4, 3))
- (boost::tree_node::pre_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::post_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::pre_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 2, 1, 3,
- 3, 0, 5, boost::rational<long>(4, 3))
- (boost::tree_node::post_order_traversal, 3, 2, 6,
- 7, 1, 13, boost::rational<long>(2, 1))
- (boost::tree_node::pre_order_traversal, 4, 3, 12,
- 15, 2, 32, boost::rational<long>(8, 3))
- (boost::tree_node::pre_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::post_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::pre_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::pre_order_traversal, 2, 1, 3,
- 3, 0, 5, boost::rational<long>(4, 3))
- (boost::tree_node::pre_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::post_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::pre_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 2, 1, 3,
- 3, 0, 5, boost::rational<long>(4, 3))
- (boost::tree_node::pre_order_traversal, 3, 2, 6,
- 7, 1, 13, boost::rational<long>(2, 1))
- (boost::tree_node::pre_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::post_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::pre_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::pre_order_traversal, 2, 1, 3,
- 3, 0, 5, boost::rational<long>(4, 3))
- (boost::tree_node::pre_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::post_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::pre_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 2, 1, 3,
- 3, 0, 5, boost::rational<long>(4, 3))
- (boost::tree_node::post_order_traversal, 3, 2, 6,
- 7, 1, 13, boost::rational<long>(2, 1))
- (boost::tree_node::post_order_traversal, 4, 3, 12,
- 15, 2, 32, boost::rational<long>(8, 3))
- (boost::tree_node::post_order_traversal, 5, 4, 24,
- 31, 3, 76, boost::rational<long>(10, 3));
-#else // !defined BOOST_TREE_NODE_CAN_USE_FUSION
- emplacer[bf_vals]
- (5, 4, 24)(0, 0, 1)(1, 0, 1)(2, 1, 3)(3, 2, 6)(4, 3, 12)(0, 0, 1)
- (1, 0, 1)(0, 0, 1)(1, 0, 1)(2, 1, 3)(0, 0, 1)(1, 0, 1)(2, 1, 3)
- (3, 2, 6)(0, 0, 1)(1, 0, 1)(0, 0, 1)(1, 0, 1)(0, 0, 1)(1, 0, 1)
- (2, 1, 3)(0, 0, 1)(1, 0, 1);
- emplacer[pre_vals]
- (5, 4, 24)(0, 0, 1)(1, 0, 1)(2, 1, 3)(0, 0, 1)(1, 0, 1)(3, 2, 6)
- (0, 0, 1)(1, 0, 1)(2, 1, 3)(0, 0, 1)(1, 0, 1)(4, 3, 12)(0, 0, 1)
- (1, 0, 1)(2, 1, 3)(0, 0, 1)(1, 0, 1)(3, 2, 6)(0, 0, 1)(1, 0, 1)
- (2, 1, 3)(0, 0, 1)(1, 0, 1);
- emplacer[post_vals]
- (0, 0, 1)(1, 0, 1)(0, 0, 1)(1, 0, 1)(2, 1, 3)(0, 0, 1)(1, 0, 1)
- (0, 0, 1)(1, 0, 1)(2, 1, 3)(3, 2, 6)(0, 0, 1)(1, 0, 1)(0, 0, 1)
- (1, 0, 1)(2, 1, 3)(0, 0, 1)(1, 0, 1)(0, 0, 1)(1, 0, 1)(2, 1, 3)
- (3, 2, 6)(4, 3, 12)(5, 4, 24);
- emplacer[df_vals]
- (boost::tree_node::pre_order_traversal, 5, 4, 24)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 2, 1, 3)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 2, 1, 3)
- (boost::tree_node::pre_order_traversal, 3, 2, 6)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 2, 1, 3)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 2, 1, 3)
- (boost::tree_node::post_order_traversal, 3, 2, 6)
- (boost::tree_node::pre_order_traversal, 4, 3, 12)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 2, 1, 3)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 2, 1, 3)
- (boost::tree_node::pre_order_traversal, 3, 2, 6)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 2, 1, 3)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 2, 1, 3)
- (boost::tree_node::post_order_traversal, 3, 2, 6)
- (boost::tree_node::post_order_traversal, 4, 3, 12)
- (boost::tree_node::post_order_traversal, 5, 4, 24);
-#endif // BOOST_TREE_NODE_CAN_USE_FUSION
- test_node<a_node_case>(a_root, bf_vals, pre_vals, post_vals, df_vals);
- }
-
- {
- ANode a_copy(a_root);
- boost::tree_node::breadth_first_iterator<ANode const>
- bf_root_itr(a_root), bf_copy_itr(a_copy);
- boost::tree_node::breadth_first_descendant_iterator<ANode const>
- bf_d_root_itr(a_root), bf_d_copy_itr(a_copy);
- boost::tree_node::pre_order_iterator<ANode const>
- pre_root_itr(a_root), pre_copy_itr(a_copy);
- boost::tree_node::pre_order_descendant_iterator<ANode const>
- pre_d_root_itr(a_root), pre_d_copy_itr(a_copy);
- boost::tree_node::post_order_iterator<ANode const>
- post_root_itr(a_root), post_copy_itr(a_copy);
- boost::tree_node::post_order_descendant_iterator<ANode const>
- post_d_root_itr(a_root), post_d_copy_itr(a_copy);
- boost::tree_node::depth_first_iterator<ANode const>
- df_root_itr(a_root), df_copy_itr(a_copy);
- boost::tree_node::depth_first_descendant_iterator<ANode const>
- df_d_root_itr(a_root), df_d_copy_itr(a_copy);
-
- BOOST_CHECK(test_node_copies(bf_root_itr, bf_copy_itr));
- BOOST_CHECK(test_node_copies(bf_d_root_itr, bf_d_copy_itr));
- BOOST_CHECK(test_node_copies(pre_root_itr, pre_copy_itr));
- BOOST_CHECK(test_node_copies(pre_d_root_itr, pre_d_copy_itr));
- BOOST_CHECK(test_node_copies(post_root_itr, post_copy_itr));
- BOOST_CHECK(test_node_copies(post_d_root_itr, post_d_copy_itr));
- BOOST_CHECK(test_node_copies(df_root_itr, df_copy_itr));
- BOOST_CHECK(test_node_copies(df_d_root_itr, df_d_copy_itr));
- }
-
- {
- typename ANode::iterator a_child_itr(
- (*(++a_root.begin())).insert(a_root)
- );
- Values bf_vals, pre_vals, post_vals;
- DFValues df_vals;
- Emplacer emplacer;
-
-#if defined BOOST_TREE_NODE_CAN_USE_FUSION
- emplacer[bf_vals]
- (5, 6, 48, 62, 5, 200, boost::rational<long>(37, 8))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 5, 25, 32, 4, 101, boost::rational<long>(112, 25))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (3, 2, 6, 7, 1, 13, boost::rational<long>(2, 1))
- (4, 3, 12, 15, 2, 32, boost::rational<long>(8, 3))
- (5, 4, 24, 31, 3, 76, boost::rational<long>(10, 3))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (3, 2, 6, 7, 1, 13, boost::rational<long>(2, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (3, 2, 6, 7, 1, 13, boost::rational<long>(2, 1))
- (4, 3, 12, 15, 2, 32, boost::rational<long>(8, 3))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (3, 2, 6, 7, 1, 13, boost::rational<long>(2, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1));
- emplacer[pre_vals]
- (5, 6, 48, 62, 5, 200, boost::rational<long>(37, 8))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 5, 25, 32, 4, 101, boost::rational<long>(112, 25))
- (5, 4, 24, 31, 3, 76, boost::rational<long>(10, 3))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (3, 2, 6, 7, 1, 13, boost::rational<long>(2, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (4, 3, 12, 15, 2, 32, boost::rational<long>(8, 3))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (3, 2, 6, 7, 1, 13, boost::rational<long>(2, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (3, 2, 6, 7, 1, 13, boost::rational<long>(2, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (4, 3, 12, 15, 2, 32, boost::rational<long>(8, 3))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (3, 2, 6, 7, 1, 13, boost::rational<long>(2, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1));
- emplacer[post_vals]
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (3, 2, 6, 7, 1, 13, boost::rational<long>(2, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (3, 2, 6, 7, 1, 13, boost::rational<long>(2, 1))
- (4, 3, 12, 15, 2, 32, boost::rational<long>(8, 3))
- (5, 4, 24, 31, 3, 76, boost::rational<long>(10, 3))
- (1, 5, 25, 32, 4, 101, boost::rational<long>(112, 25))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (3, 2, 6, 7, 1, 13, boost::rational<long>(2, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (3, 2, 6, 7, 1, 13, boost::rational<long>(2, 1))
- (4, 3, 12, 15, 2, 32, boost::rational<long>(8, 3))
- (5, 6, 48, 62, 5, 200, boost::rational<long>(37, 8));
- emplacer[df_vals]
- (boost::tree_node::pre_order_traversal, 5, 6, 48,
- 62, 5, 200, boost::rational<long>(37, 8))
- (boost::tree_node::pre_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::post_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::pre_order_traversal, 1, 5, 25,
- 32, 4, 101, boost::rational<long>(112, 25))
- (boost::tree_node::pre_order_traversal, 5, 4, 24,
- 31, 3, 76, boost::rational<long>(10, 3))
- (boost::tree_node::pre_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::post_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::pre_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::pre_order_traversal, 2, 1, 3,
- 3, 0, 5, boost::rational<long>(4, 3))
- (boost::tree_node::pre_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::post_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::pre_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 2, 1, 3,
- 3, 0, 5, boost::rational<long>(4, 3))
- (boost::tree_node::pre_order_traversal, 3, 2, 6,
- 7, 1, 13, boost::rational<long>(2, 1))
- (boost::tree_node::pre_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::post_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::pre_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::pre_order_traversal, 2, 1, 3,
- 3, 0, 5, boost::rational<long>(4, 3))
- (boost::tree_node::pre_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::post_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::pre_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 2, 1, 3,
- 3, 0, 5, boost::rational<long>(4, 3))
- (boost::tree_node::post_order_traversal, 3, 2, 6,
- 7, 1, 13, boost::rational<long>(2, 1))
- (boost::tree_node::pre_order_traversal, 4, 3, 12,
- 15, 2, 32, boost::rational<long>(8, 3))
- (boost::tree_node::pre_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::post_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::pre_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::pre_order_traversal, 2, 1, 3,
- 3, 0, 5, boost::rational<long>(4, 3))
- (boost::tree_node::pre_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::post_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::pre_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 2, 1, 3,
- 3, 0, 5, boost::rational<long>(4, 3))
- (boost::tree_node::pre_order_traversal, 3, 2, 6,
- 7, 1, 13, boost::rational<long>(2, 1))
- (boost::tree_node::pre_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::post_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::pre_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::pre_order_traversal, 2, 1, 3,
- 3, 0, 5, boost::rational<long>(4, 3))
- (boost::tree_node::pre_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::post_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::pre_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 2, 1, 3,
- 3, 0, 5, boost::rational<long>(4, 3))
- (boost::tree_node::post_order_traversal, 3, 2, 6,
- 7, 1, 13, boost::rational<long>(2, 1))
- (boost::tree_node::post_order_traversal, 4, 3, 12,
- 15, 2, 32, boost::rational<long>(8, 3))
- (boost::tree_node::post_order_traversal, 5, 4, 24,
- 31, 3, 76, boost::rational<long>(10, 3))
- (boost::tree_node::post_order_traversal, 1, 5, 25,
- 32, 4, 101, boost::rational<long>(112, 25))
- (boost::tree_node::pre_order_traversal, 2, 1, 3,
- 3, 0, 5, boost::rational<long>(4, 3))
- (boost::tree_node::pre_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::post_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::pre_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 2, 1, 3,
- 3, 0, 5, boost::rational<long>(4, 3))
- (boost::tree_node::pre_order_traversal, 3, 2, 6,
- 7, 1, 13, boost::rational<long>(2, 1))
- (boost::tree_node::pre_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::post_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::pre_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::pre_order_traversal, 2, 1, 3,
- 3, 0, 5, boost::rational<long>(4, 3))
- (boost::tree_node::pre_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::post_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::pre_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 2, 1, 3,
- 3, 0, 5, boost::rational<long>(4, 3))
- (boost::tree_node::post_order_traversal, 3, 2, 6,
- 7, 1, 13, boost::rational<long>(2, 1))
- (boost::tree_node::pre_order_traversal, 4, 3, 12,
- 15, 2, 32, boost::rational<long>(8, 3))
- (boost::tree_node::pre_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::post_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::pre_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::pre_order_traversal, 2, 1, 3,
- 3, 0, 5, boost::rational<long>(4, 3))
- (boost::tree_node::pre_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::post_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::pre_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 2, 1, 3,
- 3, 0, 5, boost::rational<long>(4, 3))
- (boost::tree_node::pre_order_traversal, 3, 2, 6,
- 7, 1, 13, boost::rational<long>(2, 1))
- (boost::tree_node::pre_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::post_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::pre_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::pre_order_traversal, 2, 1, 3,
- 3, 0, 5, boost::rational<long>(4, 3))
- (boost::tree_node::pre_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::post_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::pre_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 2, 1, 3,
- 3, 0, 5, boost::rational<long>(4, 3))
- (boost::tree_node::post_order_traversal, 3, 2, 6,
- 7, 1, 13, boost::rational<long>(2, 1))
- (boost::tree_node::post_order_traversal, 4, 3, 12,
- 15, 2, 32, boost::rational<long>(8, 3))
- (boost::tree_node::post_order_traversal, 5, 6, 48,
- 62, 5, 200, boost::rational<long>(37, 8));
-#else // !defined BOOST_TREE_NODE_CAN_USE_FUSION
- emplacer[bf_vals]
- (5, 6, 48)(0, 0, 1)(1, 5, 25)(2, 1, 3)(3, 2, 6)(4, 3, 12)(5, 4, 24)
- (0, 0, 1)(1, 0, 1)(0, 0, 1)(1, 0, 1)(2, 1, 3)(0, 0, 1)(1, 0, 1)
- (2, 1, 3)(3, 2, 6)(0, 0, 1)(1, 0, 1)(2, 1, 3)(3, 2, 6)(4, 3, 12)
- (0, 0, 1)(1, 0, 1)(0, 0, 1)(1, 0, 1)(0, 0, 1)(1, 0, 1)(2, 1, 3)
- (0, 0, 1)(1, 0, 1)(0, 0, 1)(1, 0, 1)(2, 1, 3)(0, 0, 1)(1, 0, 1)
- (2, 1, 3)(3, 2, 6)(0, 0, 1)(1, 0, 1)(0, 0, 1)(1, 0, 1)(0, 0, 1)
- (1, 0, 1)(0, 0, 1)(1, 0, 1)(2, 1, 3)(0, 0, 1)(1, 0, 1);
- emplacer[pre_vals]
- (5, 6, 48)(0, 0, 1)(1, 5, 25)(5, 4, 24)(0, 0, 1)(1, 0, 1)(2, 1, 3)
- (0, 0, 1)(1, 0, 1)(3, 2, 6)(0, 0, 1)(1, 0, 1)(2, 1, 3)(0, 0, 1)
- (1, 0, 1)(4, 3, 12)(0, 0, 1)(1, 0, 1)(2, 1, 3)(0, 0, 1)(1, 0, 1)
- (3, 2, 6)(0, 0, 1)(1, 0, 1)(2, 1, 3)(0, 0, 1)(1, 0, 1)(2, 1, 3)
- (0, 0, 1)(1, 0, 1)(3, 2, 6)(0, 0, 1)(1, 0, 1)(2, 1, 3)(0, 0, 1)
- (1, 0, 1)(4, 3, 12)(0, 0, 1)(1, 0, 1)(2, 1, 3)(0, 0, 1)(1, 0, 1)
- (3, 2, 6)(0, 0, 1)(1, 0, 1)(2, 1, 3)(0, 0, 1)(1, 0, 1);
- emplacer[post_vals]
- (0, 0, 1)(0, 0, 1)(1, 0, 1)(0, 0, 1)(1, 0, 1)(2, 1, 3)(0, 0, 1)
- (1, 0, 1)(0, 0, 1)(1, 0, 1)(2, 1, 3)(3, 2, 6)(0, 0, 1)(1, 0, 1)
- (0, 0, 1)(1, 0, 1)(2, 1, 3)(0, 0, 1)(1, 0, 1)(0, 0, 1)(1, 0, 1)
- (2, 1, 3)(3, 2, 6)(4, 3, 12)(5, 4, 24)(1, 5, 25)(0, 0, 1)(1, 0, 1)
- (2, 1, 3)(0, 0, 1)(1, 0, 1)(0, 0, 1)(1, 0, 1)(2, 1, 3)(3, 2, 6)
- (0, 0, 1)(1, 0, 1)(0, 0, 1)(1, 0, 1)(2, 1, 3)(0, 0, 1)(1, 0, 1)
- (0, 0, 1)(1, 0, 1)(2, 1, 3)(3, 2, 6)(4, 3, 12)(5, 6, 48);
- emplacer[df_vals]
- (boost::tree_node::pre_order_traversal, 5, 6, 48)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 5, 25)
- (boost::tree_node::pre_order_traversal, 5, 4, 24)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 2, 1, 3)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 2, 1, 3)
- (boost::tree_node::pre_order_traversal, 3, 2, 6)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 2, 1, 3)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 2, 1, 3)
- (boost::tree_node::post_order_traversal, 3, 2, 6)
- (boost::tree_node::pre_order_traversal, 4, 3, 12)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 2, 1, 3)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 2, 1, 3)
- (boost::tree_node::pre_order_traversal, 3, 2, 6)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 2, 1, 3)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 2, 1, 3)
- (boost::tree_node::post_order_traversal, 3, 2, 6)
- (boost::tree_node::post_order_traversal, 4, 3, 12)
- (boost::tree_node::post_order_traversal, 5, 4, 24)
- (boost::tree_node::post_order_traversal, 1, 5, 25)
- (boost::tree_node::pre_order_traversal, 2, 1, 3)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 2, 1, 3)
- (boost::tree_node::pre_order_traversal, 3, 2, 6)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 2, 1, 3)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 2, 1, 3)
- (boost::tree_node::post_order_traversal, 3, 2, 6)
- (boost::tree_node::pre_order_traversal, 4, 3, 12)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 2, 1, 3)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 2, 1, 3)
- (boost::tree_node::pre_order_traversal, 3, 2, 6)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 2, 1, 3)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 2, 1, 3)
- (boost::tree_node::post_order_traversal, 3, 2, 6)
- (boost::tree_node::post_order_traversal, 4, 3, 12)
- (boost::tree_node::post_order_traversal, 5, 6, 48);
-#endif // BOOST_TREE_NODE_CAN_USE_FUSION
- test_node<a_node_case>(a_root, bf_vals, pre_vals, post_vals, df_vals);
-
- a_root = *a_child_itr;
- bf_vals.clear();
- pre_vals.clear();
- post_vals.clear();
- df_vals.clear();
-
-#if defined BOOST_TREE_NODE_CAN_USE_FUSION
- emplacer[bf_vals]
- (5, 4, 24, 31, 3, 76, boost::rational<long>(10, 3))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (3, 2, 6, 7, 1, 13, boost::rational<long>(2, 1))
- (4, 3, 12, 15, 2, 32, boost::rational<long>(8, 3))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (3, 2, 6, 7, 1, 13, boost::rational<long>(2, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1));
- emplacer[pre_vals]
- (5, 4, 24, 31, 3, 76, boost::rational<long>(10, 3))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (3, 2, 6, 7, 1, 13, boost::rational<long>(2, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (4, 3, 12, 15, 2, 32, boost::rational<long>(8, 3))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (3, 2, 6, 7, 1, 13, boost::rational<long>(2, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1));
- emplacer[post_vals]
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (3, 2, 6, 7, 1, 13, boost::rational<long>(2, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (3, 2, 6, 7, 1, 13, boost::rational<long>(2, 1))
- (4, 3, 12, 15, 2, 32, boost::rational<long>(8, 3))
- (5, 4, 24, 31, 3, 76, boost::rational<long>(10, 3));
- emplacer[df_vals]
- (boost::tree_node::pre_order_traversal, 5, 4, 24,
- 31, 3, 76, boost::rational<long>(10, 3))
- (boost::tree_node::pre_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::post_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::pre_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::pre_order_traversal, 2, 1, 3,
- 3, 0, 5, boost::rational<long>(4, 3))
- (boost::tree_node::pre_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::post_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::pre_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 2, 1, 3,
- 3, 0, 5, boost::rational<long>(4, 3))
- (boost::tree_node::pre_order_traversal, 3, 2, 6,
- 7, 1, 13, boost::rational<long>(2, 1))
- (boost::tree_node::pre_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::post_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::pre_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::pre_order_traversal, 2, 1, 3,
- 3, 0, 5, boost::rational<long>(4, 3))
- (boost::tree_node::pre_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::post_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::pre_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 2, 1, 3,
- 3, 0, 5, boost::rational<long>(4, 3))
- (boost::tree_node::post_order_traversal, 3, 2, 6,
- 7, 1, 13, boost::rational<long>(2, 1))
- (boost::tree_node::pre_order_traversal, 4, 3, 12,
- 15, 2, 32, boost::rational<long>(8, 3))
- (boost::tree_node::pre_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::post_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::pre_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::pre_order_traversal, 2, 1, 3,
- 3, 0, 5, boost::rational<long>(4, 3))
- (boost::tree_node::pre_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::post_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::pre_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 2, 1, 3,
- 3, 0, 5, boost::rational<long>(4, 3))
- (boost::tree_node::pre_order_traversal, 3, 2, 6,
- 7, 1, 13, boost::rational<long>(2, 1))
- (boost::tree_node::pre_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::post_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::pre_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::pre_order_traversal, 2, 1, 3,
- 3, 0, 5, boost::rational<long>(4, 3))
- (boost::tree_node::pre_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::post_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::pre_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 2, 1, 3,
- 3, 0, 5, boost::rational<long>(4, 3))
- (boost::tree_node::post_order_traversal, 3, 2, 6,
- 7, 1, 13, boost::rational<long>(2, 1))
- (boost::tree_node::post_order_traversal, 4, 3, 12,
- 15, 2, 32, boost::rational<long>(8, 3))
- (boost::tree_node::post_order_traversal, 5, 4, 24,
- 31, 3, 76, boost::rational<long>(10, 3));
-#else // !defined BOOST_TREE_NODE_CAN_USE_FUSION
- emplacer[bf_vals]
- (5, 4, 24)(0, 0, 1)(1, 0, 1)(2, 1, 3)(3, 2, 6)(4, 3, 12)(0, 0, 1)
- (1, 0, 1)(0, 0, 1)(1, 0, 1)(2, 1, 3)(0, 0, 1)(1, 0, 1)(2, 1, 3)
- (3, 2, 6)(0, 0, 1)(1, 0, 1)(0, 0, 1)(1, 0, 1)(0, 0, 1)(1, 0, 1)
- (2, 1, 3)(0, 0, 1)(1, 0, 1);
- emplacer[pre_vals]
- (5, 4, 24)(0, 0, 1)(1, 0, 1)(2, 1, 3)(0, 0, 1)(1, 0, 1)(3, 2, 6)
- (0, 0, 1)(1, 0, 1)(2, 1, 3)(0, 0, 1)(1, 0, 1)(4, 3, 12)(0, 0, 1)
- (1, 0, 1)(2, 1, 3)(0, 0, 1)(1, 0, 1)(3, 2, 6)(0, 0, 1)(1, 0, 1)
- (2, 1, 3)(0, 0, 1)(1, 0, 1);
- emplacer[post_vals]
- (0, 0, 1)(1, 0, 1)(0, 0, 1)(1, 0, 1)(2, 1, 3)(0, 0, 1)(1, 0, 1)
- (0, 0, 1)(1, 0, 1)(2, 1, 3)(3, 2, 6)(0, 0, 1)(1, 0, 1)(0, 0, 1)
- (1, 0, 1)(2, 1, 3)(0, 0, 1)(1, 0, 1)(0, 0, 1)(1, 0, 1)(2, 1, 3)
- (3, 2, 6)(4, 3, 12)(5, 4, 24);
- emplacer[df_vals]
- (boost::tree_node::pre_order_traversal, 5, 4, 24)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 2, 1, 3)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 2, 1, 3)
- (boost::tree_node::pre_order_traversal, 3, 2, 6)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 2, 1, 3)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 2, 1, 3)
- (boost::tree_node::post_order_traversal, 3, 2, 6)
- (boost::tree_node::pre_order_traversal, 4, 3, 12)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 2, 1, 3)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 2, 1, 3)
- (boost::tree_node::pre_order_traversal, 3, 2, 6)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 2, 1, 3)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 2, 1, 3)
- (boost::tree_node::post_order_traversal, 3, 2, 6)
- (boost::tree_node::post_order_traversal, 4, 3, 12)
- (boost::tree_node::post_order_traversal, 5, 4, 24);
-#endif // BOOST_TREE_NODE_CAN_USE_FUSION
- test_node<a_node_case>(a_root, bf_vals, pre_vals, post_vals, df_vals);
-
- a_child_itr = a_root.begin();
- std::advance(a_child_itr, 4);
- a_child_itr = (*a_child_itr).begin();
- *a_child_itr = a_root;
- test_node<a_node_case>(
- *a_child_itr
- , bf_vals
- , pre_vals
- , post_vals
- , df_vals
- );
-
- bf_vals.clear();
- pre_vals.clear();
- post_vals.clear();
- df_vals.clear();
-
-#if defined BOOST_TREE_NODE_CAN_USE_FUSION
- emplacer[bf_vals]
- (5, 6, 47, 62, 5, 197, boost::rational<long>(222, 47))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (3, 2, 6, 7, 1, 13, boost::rational<long>(2, 1))
- (4, 5, 35, 46, 4, 130, boost::rational<long>(143, 35))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (5, 4, 24, 31, 3, 76, boost::rational<long>(10, 3))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (3, 2, 6, 7, 1, 13, boost::rational<long>(2, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (3, 2, 6, 7, 1, 13, boost::rational<long>(2, 1))
- (4, 3, 12, 15, 2, 32, boost::rational<long>(8, 3))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (3, 2, 6, 7, 1, 13, boost::rational<long>(2, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1));
- emplacer[pre_vals]
- (5, 6, 47, 62, 5, 197, boost::rational<long>(222, 47))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (3, 2, 6, 7, 1, 13, boost::rational<long>(2, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (4, 5, 35, 46, 4, 130, boost::rational<long>(143, 35))
- (5, 4, 24, 31, 3, 76, boost::rational<long>(10, 3))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (3, 2, 6, 7, 1, 13, boost::rational<long>(2, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (4, 3, 12, 15, 2, 32, boost::rational<long>(8, 3))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (3, 2, 6, 7, 1, 13, boost::rational<long>(2, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (3, 2, 6, 7, 1, 13, boost::rational<long>(2, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1));
- emplacer[post_vals]
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (3, 2, 6, 7, 1, 13, boost::rational<long>(2, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (3, 2, 6, 7, 1, 13, boost::rational<long>(2, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (3, 2, 6, 7, 1, 13, boost::rational<long>(2, 1))
- (4, 3, 12, 15, 2, 32, boost::rational<long>(8, 3))
- (5, 4, 24, 31, 3, 76, boost::rational<long>(10, 3))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (3, 2, 6, 7, 1, 13, boost::rational<long>(2, 1))
- (4, 5, 35, 46, 4, 130, boost::rational<long>(143, 35))
- (5, 6, 47, 62, 5, 197, boost::rational<long>(222, 47));
- emplacer[df_vals]
- (boost::tree_node::pre_order_traversal, 5, 6, 47,
- 62, 5, 197, boost::rational<long>(222, 47))
- (boost::tree_node::pre_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::post_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::pre_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::pre_order_traversal, 2, 1, 3,
- 3, 0, 5, boost::rational<long>(4, 3))
- (boost::tree_node::pre_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::post_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::pre_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 2, 1, 3,
- 3, 0, 5, boost::rational<long>(4, 3))
- (boost::tree_node::pre_order_traversal, 3, 2, 6,
- 7, 1, 13, boost::rational<long>(2, 1))
- (boost::tree_node::pre_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::post_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::pre_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::pre_order_traversal, 2, 1, 3,
- 3, 0, 5, boost::rational<long>(4, 3))
- (boost::tree_node::pre_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::post_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::pre_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 2, 1, 3,
- 3, 0, 5, boost::rational<long>(4, 3))
- (boost::tree_node::post_order_traversal, 3, 2, 6,
- 7, 1, 13, boost::rational<long>(2, 1))
- (boost::tree_node::pre_order_traversal, 4, 5, 35,
- 46, 4, 130, boost::rational<long>(143, 35))
- (boost::tree_node::pre_order_traversal, 5, 4, 24,
- 31, 3, 76, boost::rational<long>(10, 3))
- (boost::tree_node::pre_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::post_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::pre_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::pre_order_traversal, 2, 1, 3,
- 3, 0, 5, boost::rational<long>(4, 3))
- (boost::tree_node::pre_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::post_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::pre_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 2, 1, 3,
- 3, 0, 5, boost::rational<long>(4, 3))
- (boost::tree_node::pre_order_traversal, 3, 2, 6,
- 7, 1, 13, boost::rational<long>(2, 1))
- (boost::tree_node::pre_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::post_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::pre_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::pre_order_traversal, 2, 1, 3,
- 3, 0, 5, boost::rational<long>(4, 3))
- (boost::tree_node::pre_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::post_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::pre_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 2, 1, 3,
- 3, 0, 5, boost::rational<long>(4, 3))
- (boost::tree_node::post_order_traversal, 3, 2, 6,
- 7, 1, 13, boost::rational<long>(2, 1))
- (boost::tree_node::pre_order_traversal, 4, 3, 12,
- 15, 2, 32, boost::rational<long>(8, 3))
- (boost::tree_node::pre_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::post_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::pre_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::pre_order_traversal, 2, 1, 3,
- 3, 0, 5, boost::rational<long>(4, 3))
- (boost::tree_node::pre_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::post_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::pre_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 2, 1, 3,
- 3, 0, 5, boost::rational<long>(4, 3))
- (boost::tree_node::pre_order_traversal, 3, 2, 6,
- 7, 1, 13, boost::rational<long>(2, 1))
- (boost::tree_node::pre_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::post_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::pre_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::pre_order_traversal, 2, 1, 3,
- 3, 0, 5, boost::rational<long>(4, 3))
- (boost::tree_node::pre_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::post_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::pre_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 2, 1, 3,
- 3, 0, 5, boost::rational<long>(4, 3))
- (boost::tree_node::post_order_traversal, 3, 2, 6,
- 7, 1, 13, boost::rational<long>(2, 1))
- (boost::tree_node::post_order_traversal, 4, 3, 12,
- 15, 2, 32, boost::rational<long>(8, 3))
- (boost::tree_node::post_order_traversal, 5, 4, 24,
- 31, 3, 76, boost::rational<long>(10, 3))
- (boost::tree_node::pre_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::pre_order_traversal, 2, 1, 3,
- 3, 0, 5, boost::rational<long>(4, 3))
- (boost::tree_node::pre_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::post_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::pre_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 2, 1, 3,
- 3, 0, 5, boost::rational<long>(4, 3))
- (boost::tree_node::pre_order_traversal, 3, 2, 6,
- 7, 1, 13, boost::rational<long>(2, 1))
- (boost::tree_node::pre_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::post_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::pre_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::pre_order_traversal, 2, 1, 3,
- 3, 0, 5, boost::rational<long>(4, 3))
- (boost::tree_node::pre_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::post_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::pre_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 2, 1, 3,
- 3, 0, 5, boost::rational<long>(4, 3))
- (boost::tree_node::post_order_traversal, 3, 2, 6,
- 7, 1, 13, boost::rational<long>(2, 1))
- (boost::tree_node::post_order_traversal, 4, 5, 35,
- 46, 4, 130, boost::rational<long>(143, 35))
- (boost::tree_node::post_order_traversal, 5, 6, 47,
- 62, 5, 197, boost::rational<long>(222, 47));
-#else // !defined BOOST_TREE_NODE_CAN_USE_FUSION
- emplacer[bf_vals]
- (5, 6, 47)(0, 0, 1)(1, 0, 1)(2, 1, 3)(3, 2, 6)(4, 5, 35)(0, 0, 1)
- (1, 0, 1)(0, 0, 1)(1, 0, 1)(2, 1, 3)(5, 4, 24)(1, 0, 1)(2, 1, 3)
- (3, 2, 6)(0, 0, 1)(1, 0, 1)(0, 0, 1)(1, 0, 1)(2, 1, 3)(3, 2, 6)
- (4, 3, 12)(0, 0, 1)(1, 0, 1)(0, 0, 1)(1, 0, 1)(2, 1, 3)(0, 0, 1)
- (1, 0, 1)(0, 0, 1)(1, 0, 1)(2, 1, 3)(0, 0, 1)(1, 0, 1)(2, 1, 3)
- (3, 2, 6)(0, 0, 1)(1, 0, 1)(0, 0, 1)(1, 0, 1)(0, 0, 1)(1, 0, 1)
- (0, 0, 1)(1, 0, 1)(2, 1, 3)(0, 0, 1)(1, 0, 1);
- emplacer[pre_vals]
- (5, 6, 47)(0, 0, 1)(1, 0, 1)(2, 1, 3)(0, 0, 1)(1, 0, 1)(3, 2, 6)
- (0, 0, 1)(1, 0, 1)(2, 1, 3)(0, 0, 1)(1, 0, 1)(4, 5, 35)(5, 4, 24)
- (0, 0, 1)(1, 0, 1)(2, 1, 3)(0, 0, 1)(1, 0, 1)(3, 2, 6)(0, 0, 1)
- (1, 0, 1)(2, 1, 3)(0, 0, 1)(1, 0, 1)(4, 3, 12)(0, 0, 1)(1, 0, 1)
- (2, 1, 3)(0, 0, 1)(1, 0, 1)(3, 2, 6)(0, 0, 1)(1, 0, 1)(2, 1, 3)
- (0, 0, 1)(1, 0, 1)(1, 0, 1)(2, 1, 3)(0, 0, 1)(1, 0, 1)(3, 2, 6)
- (0, 0, 1)(1, 0, 1)(2, 1, 3)(0, 0, 1)(1, 0, 1);
- emplacer[post_vals]
- (0, 0, 1)(1, 0, 1)(0, 0, 1)(1, 0, 1)(2, 1, 3)(0, 0, 1)(1, 0, 1)
- (0, 0, 1)(1, 0, 1)(2, 1, 3)(3, 2, 6)(0, 0, 1)(1, 0, 1)(0, 0, 1)
- (1, 0, 1)(2, 1, 3)(0, 0, 1)(1, 0, 1)(0, 0, 1)(1, 0, 1)(2, 1, 3)
- (3, 2, 6)(0, 0, 1)(1, 0, 1)(0, 0, 1)(1, 0, 1)(2, 1, 3)(0, 0, 1)
- (1, 0, 1)(0, 0, 1)(1, 0, 1)(2, 1, 3)(3, 2, 6)(4, 3, 12)(5, 4, 24)
- (1, 0, 1)(0, 0, 1)(1, 0, 1)(2, 1, 3)(0, 0, 1)(1, 0, 1)(0, 0, 1)
- (1, 0, 1)(2, 1, 3)(3, 2, 6)(4, 5, 35)(5, 6, 47);
- emplacer[df_vals]
- (boost::tree_node::pre_order_traversal, 5, 6, 47)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 2, 1, 3)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 2, 1, 3)
- (boost::tree_node::pre_order_traversal, 3, 2, 6)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 2, 1, 3)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 2, 1, 3)
- (boost::tree_node::post_order_traversal, 3, 2, 6)
- (boost::tree_node::pre_order_traversal, 4, 5, 35)
- (boost::tree_node::pre_order_traversal, 5, 4, 24)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 2, 1, 3)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 2, 1, 3)
- (boost::tree_node::pre_order_traversal, 3, 2, 6)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 2, 1, 3)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 2, 1, 3)
- (boost::tree_node::post_order_traversal, 3, 2, 6)
- (boost::tree_node::pre_order_traversal, 4, 3, 12)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 2, 1, 3)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 2, 1, 3)
- (boost::tree_node::pre_order_traversal, 3, 2, 6)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 2, 1, 3)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 2, 1, 3)
- (boost::tree_node::post_order_traversal, 3, 2, 6)
- (boost::tree_node::post_order_traversal, 4, 3, 12)
- (boost::tree_node::post_order_traversal, 5, 4, 24)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 2, 1, 3)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 2, 1, 3)
- (boost::tree_node::pre_order_traversal, 3, 2, 6)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 2, 1, 3)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 2, 1, 3)
- (boost::tree_node::post_order_traversal, 3, 2, 6)
- (boost::tree_node::post_order_traversal, 4, 5, 35)
- (boost::tree_node::post_order_traversal, 5, 6, 47);
-#endif // BOOST_TREE_NODE_CAN_USE_FUSION
- test_node<a_node_case>(a_root, bf_vals, pre_vals, post_vals, df_vals);
- a_child_itr = (*a_child_itr).begin();
- std::advance(a_child_itr, 2);
-
- typename ANode::iterator a_desc_itr = a_child_itr;
- typename ANode::iterator a_src_itr = (*(++a_desc_itr)).begin();
- typename ANode::iterator a_end_itr = (*a_desc_itr).end();
-
- (*a_child_itr).splice(
- ++(*a_child_itr).begin()
- , *a_desc_itr
- , ++a_src_itr
- , a_end_itr
- );
- bf_vals.clear();
- pre_vals.clear();
- post_vals.clear();
- df_vals.clear();
-
-#if defined BOOST_TREE_NODE_CAN_USE_FUSION
- emplacer[bf_vals]
- (5, 6, 47, 62, 5, 197, boost::rational<long>(222, 47))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (3, 2, 6, 7, 1, 13, boost::rational<long>(2, 1))
- (4, 5, 35, 46, 4, 130, boost::rational<long>(143, 35))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (5, 4, 24, 31, 3, 76, boost::rational<long>(10, 3))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (3, 2, 6, 7, 1, 13, boost::rational<long>(2, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 2, 7, 7, 1, 15, boost::rational<long>(13, 7))
- (3, 1, 2, 3, 0, 3, boost::rational<long>(3, 2))
- (4, 3, 12, 15, 2, 32, boost::rational<long>(8, 3))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (3, 2, 6, 7, 1, 13, boost::rational<long>(2, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1));
- emplacer[pre_vals]
- (5, 6, 47, 62, 5, 197, boost::rational<long>(222, 47))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (3, 2, 6, 7, 1, 13, boost::rational<long>(2, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (4, 5, 35, 46, 4, 130, boost::rational<long>(143, 35))
- (5, 4, 24, 31, 3, 76, boost::rational<long>(10, 3))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 2, 7, 7, 1, 15, boost::rational<long>(13, 7))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (3, 1, 2, 3, 0, 3, boost::rational<long>(3, 2))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (4, 3, 12, 15, 2, 32, boost::rational<long>(8, 3))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (3, 2, 6, 7, 1, 13, boost::rational<long>(2, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (3, 2, 6, 7, 1, 13, boost::rational<long>(2, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1));
- emplacer[post_vals]
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (3, 2, 6, 7, 1, 13, boost::rational<long>(2, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 2, 7, 7, 1, 15, boost::rational<long>(13, 7))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (3, 1, 2, 3, 0, 3, boost::rational<long>(3, 2))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (3, 2, 6, 7, 1, 13, boost::rational<long>(2, 1))
- (4, 3, 12, 15, 2, 32, boost::rational<long>(8, 3))
- (5, 4, 24, 31, 3, 76, boost::rational<long>(10, 3))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (3, 2, 6, 7, 1, 13, boost::rational<long>(2, 1))
- (4, 5, 35, 46, 4, 130, boost::rational<long>(143, 35))
- (5, 6, 47, 62, 5, 197, boost::rational<long>(222, 47));
- emplacer[df_vals]
- (boost::tree_node::pre_order_traversal, 5, 6, 47,
- 62, 5, 197, boost::rational<long>(222, 47))
- (boost::tree_node::pre_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::post_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::pre_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::pre_order_traversal, 2, 1, 3,
- 3, 0, 5, boost::rational<long>(4, 3))
- (boost::tree_node::pre_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::post_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::pre_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 2, 1, 3,
- 3, 0, 5, boost::rational<long>(4, 3))
- (boost::tree_node::pre_order_traversal, 3, 2, 6,
- 7, 1, 13, boost::rational<long>(2, 1))
- (boost::tree_node::pre_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::post_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::pre_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::pre_order_traversal, 2, 1, 3,
- 3, 0, 5, boost::rational<long>(4, 3))
- (boost::tree_node::pre_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::post_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::pre_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 2, 1, 3,
- 3, 0, 5, boost::rational<long>(4, 3))
- (boost::tree_node::post_order_traversal, 3, 2, 6,
- 7, 1, 13, boost::rational<long>(2, 1))
- (boost::tree_node::pre_order_traversal, 4, 5, 35,
- 46, 4, 130, boost::rational<long>(143, 35))
- (boost::tree_node::pre_order_traversal, 5, 4, 24,
- 31, 3, 76, boost::rational<long>(10, 3))
- (boost::tree_node::pre_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::post_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::pre_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::pre_order_traversal, 2, 2, 7,
- 7, 1, 15, boost::rational<long>(13, 7))
- (boost::tree_node::pre_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::post_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::pre_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::pre_order_traversal, 2, 1, 3,
- 3, 0, 5, boost::rational<long>(4, 3))
- (boost::tree_node::pre_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::post_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::pre_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 2, 1, 3,
- 3, 0, 5, boost::rational<long>(4, 3))
- (boost::tree_node::pre_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 2, 2, 7,
- 7, 1, 15, boost::rational<long>(13, 7))
- (boost::tree_node::pre_order_traversal, 3, 1, 2,
- 3, 0, 3, boost::rational<long>(3, 2))
- (boost::tree_node::pre_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::post_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::post_order_traversal, 3, 1, 2,
- 3, 0, 3, boost::rational<long>(3, 2))
- (boost::tree_node::pre_order_traversal, 4, 3, 12,
- 15, 2, 32, boost::rational<long>(8, 3))
- (boost::tree_node::pre_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::post_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::pre_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::pre_order_traversal, 2, 1, 3,
- 3, 0, 5, boost::rational<long>(4, 3))
- (boost::tree_node::pre_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::post_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::pre_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 2, 1, 3,
- 3, 0, 5, boost::rational<long>(4, 3))
- (boost::tree_node::pre_order_traversal, 3, 2, 6,
- 7, 1, 13, boost::rational<long>(2, 1))
- (boost::tree_node::pre_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::post_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::pre_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::pre_order_traversal, 2, 1, 3,
- 3, 0, 5, boost::rational<long>(4, 3))
- (boost::tree_node::pre_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::post_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::pre_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 2, 1, 3,
- 3, 0, 5, boost::rational<long>(4, 3))
- (boost::tree_node::post_order_traversal, 3, 2, 6,
- 7, 1, 13, boost::rational<long>(2, 1))
- (boost::tree_node::post_order_traversal, 4, 3, 12,
- 15, 2, 32, boost::rational<long>(8, 3))
- (boost::tree_node::post_order_traversal, 5, 4, 24,
- 31, 3, 76, boost::rational<long>(10, 3))
- (boost::tree_node::pre_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::pre_order_traversal, 2, 1, 3,
- 3, 0, 5, boost::rational<long>(4, 3))
- (boost::tree_node::pre_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::post_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::pre_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 2, 1, 3,
- 3, 0, 5, boost::rational<long>(4, 3))
- (boost::tree_node::pre_order_traversal, 3, 2, 6,
- 7, 1, 13, boost::rational<long>(2, 1))
- (boost::tree_node::pre_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::post_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::pre_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::pre_order_traversal, 2, 1, 3,
- 3, 0, 5, boost::rational<long>(4, 3))
- (boost::tree_node::pre_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::post_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::pre_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 2, 1, 3,
- 3, 0, 5, boost::rational<long>(4, 3))
- (boost::tree_node::post_order_traversal, 3, 2, 6,
- 7, 1, 13, boost::rational<long>(2, 1))
- (boost::tree_node::post_order_traversal, 4, 5, 35,
- 46, 4, 130, boost::rational<long>(143, 35))
- (boost::tree_node::post_order_traversal, 5, 6, 47,
- 62, 5, 197, boost::rational<long>(222, 47));
-#else // !defined BOOST_TREE_NODE_CAN_USE_FUSION
- emplacer[bf_vals]
- (5, 6, 47)(0, 0, 1)(1, 0, 1)(2, 1, 3)(3, 2, 6)(4, 5, 35)(0, 0, 1)
- (1, 0, 1)(0, 0, 1)(1, 0, 1)(2, 1, 3)(5, 4, 24)(1, 0, 1)(2, 1, 3)
- (3, 2, 6)(0, 0, 1)(1, 0, 1)(0, 0, 1)(1, 0, 1)(2, 2, 7)(3, 1, 2)
- (4, 3, 12)(0, 0, 1)(1, 0, 1)(0, 0, 1)(1, 0, 1)(2, 1, 3)(0, 0, 1)
- (1, 0, 1)(2, 1, 3)(1, 0, 1)(0, 0, 1)(0, 0, 1)(1, 0, 1)(2, 1, 3)
- (3, 2, 6)(0, 0, 1)(1, 0, 1)(0, 0, 1)(1, 0, 1)(0, 0, 1)(1, 0, 1)
- (0, 0, 1)(1, 0, 1)(2, 1, 3)(0, 0, 1)(1, 0, 1);
- emplacer[pre_vals]
- (5, 6, 47)(0, 0, 1)(1, 0, 1)(2, 1, 3)(0, 0, 1)(1, 0, 1)(3, 2, 6)
- (0, 0, 1)(1, 0, 1)(2, 1, 3)(0, 0, 1)(1, 0, 1)(4, 5, 35)(5, 4, 24)
- (0, 0, 1)(1, 0, 1)(2, 2, 7)(0, 0, 1)(1, 0, 1)(2, 1, 3)(0, 0, 1)
- (1, 0, 1)(1, 0, 1)(3, 1, 2)(0, 0, 1)(4, 3, 12)(0, 0, 1)(1, 0, 1)
- (2, 1, 3)(0, 0, 1)(1, 0, 1)(3, 2, 6)(0, 0, 1)(1, 0, 1)(2, 1, 3)
- (0, 0, 1)(1, 0, 1)(1, 0, 1)(2, 1, 3)(0, 0, 1)(1, 0, 1)(3, 2, 6)
- (0, 0, 1)(1, 0, 1)(2, 1, 3)(0, 0, 1)(1, 0, 1);
- emplacer[post_vals]
- (0, 0, 1)(1, 0, 1)(0, 0, 1)(1, 0, 1)(2, 1, 3)(0, 0, 1)(1, 0, 1)
- (0, 0, 1)(1, 0, 1)(2, 1, 3)(3, 2, 6)(0, 0, 1)(1, 0, 1)(0, 0, 1)
- (1, 0, 1)(0, 0, 1)(1, 0, 1)(2, 1, 3)(1, 0, 1)(2, 2, 7)(0, 0, 1)
- (3, 1, 2)(0, 0, 1)(1, 0, 1)(0, 0, 1)(1, 0, 1)(2, 1, 3)(0, 0, 1)
- (1, 0, 1)(0, 0, 1)(1, 0, 1)(2, 1, 3)(3, 2, 6)(4, 3, 12)(5, 4, 24)
- (1, 0, 1)(0, 0, 1)(1, 0, 1)(2, 1, 3)(0, 0, 1)(1, 0, 1)(0, 0, 1)
- (1, 0, 1)(2, 1, 3)(3, 2, 6)(4, 5, 35)(5, 6, 47);
- emplacer[df_vals]
- (boost::tree_node::pre_order_traversal, 5, 6, 47)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 2, 1, 3)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 2, 1, 3)
- (boost::tree_node::pre_order_traversal, 3, 2, 6)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 2, 1, 3)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 2, 1, 3)
- (boost::tree_node::post_order_traversal, 3, 2, 6)
- (boost::tree_node::pre_order_traversal, 4, 5, 35)
- (boost::tree_node::pre_order_traversal, 5, 4, 24)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 2, 2, 7)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 2, 1, 3)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 2, 1, 3)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 2, 2, 7)
- (boost::tree_node::pre_order_traversal, 3, 1, 2)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 3, 1, 2)
- (boost::tree_node::pre_order_traversal, 4, 3, 12)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 2, 1, 3)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 2, 1, 3)
- (boost::tree_node::pre_order_traversal, 3, 2, 6)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 2, 1, 3)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 2, 1, 3)
- (boost::tree_node::post_order_traversal, 3, 2, 6)
- (boost::tree_node::post_order_traversal, 4, 3, 12)
- (boost::tree_node::post_order_traversal, 5, 4, 24)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 2, 1, 3)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 2, 1, 3)
- (boost::tree_node::pre_order_traversal, 3, 2, 6)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 2, 1, 3)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 2, 1, 3)
- (boost::tree_node::post_order_traversal, 3, 2, 6)
- (boost::tree_node::post_order_traversal, 4, 5, 35)
- (boost::tree_node::post_order_traversal, 5, 6, 47);
-#endif // BOOST_TREE_NODE_CAN_USE_FUSION
- test_node<a_node_case>(a_root, bf_vals, pre_vals, post_vals, df_vals);
- }
-
- {
- typename ANode::iterator a_child_itr(a_root.begin());
-
- std::advance(a_child_itr, 3);
- (*a_child_itr).clear();
-
- Values bf_vals, pre_vals, post_vals;
- DFValues df_vals;
- Emplacer emplacer;
-
-#if defined BOOST_TREE_NODE_CAN_USE_FUSION
- emplacer[bf_vals]
- (5, 6, 42, 58, 5, 180, boost::rational<long>(209, 42))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (3, 0, 1, 3, 0, 1, boost::rational<long>(3, 1))
- (4, 5, 35, 46, 4, 130, boost::rational<long>(143, 35))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (5, 4, 24, 31, 3, 76, boost::rational<long>(10, 3))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (3, 2, 6, 7, 1, 13, boost::rational<long>(2, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 2, 7, 7, 1, 15, boost::rational<long>(13, 7))
- (3, 1, 2, 3, 0, 3, boost::rational<long>(3, 2))
- (4, 3, 12, 15, 2, 32, boost::rational<long>(8, 3))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (3, 2, 6, 7, 1, 13, boost::rational<long>(2, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1));
- emplacer[pre_vals]
- (5, 6, 42, 58, 5, 180, boost::rational<long>(209, 42))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (3, 0, 1, 3, 0, 1, boost::rational<long>(3, 1))
- (4, 5, 35, 46, 4, 130, boost::rational<long>(143, 35))
- (5, 4, 24, 31, 3, 76, boost::rational<long>(10, 3))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 2, 7, 7, 1, 15, boost::rational<long>(13, 7))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (3, 1, 2, 3, 0, 3, boost::rational<long>(3, 2))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (4, 3, 12, 15, 2, 32, boost::rational<long>(8, 3))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (3, 2, 6, 7, 1, 13, boost::rational<long>(2, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (3, 2, 6, 7, 1, 13, boost::rational<long>(2, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1));
- emplacer[post_vals]
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (3, 0, 1, 3, 0, 1, boost::rational<long>(3, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 2, 7, 7, 1, 15, boost::rational<long>(13, 7))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (3, 1, 2, 3, 0, 3, boost::rational<long>(3, 2))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (3, 2, 6, 7, 1, 13, boost::rational<long>(2, 1))
- (4, 3, 12, 15, 2, 32, boost::rational<long>(8, 3))
- (5, 4, 24, 31, 3, 76, boost::rational<long>(10, 3))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (0, 0, 1, 0, 0, 1, boost::rational<long>(0, 1))
- (1, 0, 1, 1, 0, 1, boost::rational<long>(1, 1))
- (2, 1, 3, 3, 0, 5, boost::rational<long>(4, 3))
- (3, 2, 6, 7, 1, 13, boost::rational<long>(2, 1))
- (4, 5, 35, 46, 4, 130, boost::rational<long>(143, 35))
- (5, 6, 42, 58, 5, 180, boost::rational<long>(209, 42));
- emplacer[df_vals]
- (boost::tree_node::pre_order_traversal, 5, 6, 42,
- 58, 5, 180, boost::rational<long>(209, 42))
- (boost::tree_node::pre_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::post_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::pre_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::pre_order_traversal, 2, 1, 3,
- 3, 0, 5, boost::rational<long>(4, 3))
- (boost::tree_node::pre_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::post_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::pre_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 2, 1, 3,
- 3, 0, 5, boost::rational<long>(4, 3))
- (boost::tree_node::pre_order_traversal, 3, 0, 1,
- 3, 0, 1, boost::rational<long>(3, 1))
- (boost::tree_node::post_order_traversal, 3, 0, 1,
- 3, 0, 1, boost::rational<long>(3, 1))
- (boost::tree_node::pre_order_traversal, 4, 5, 35,
- 46, 4, 130, boost::rational<long>(143, 35))
- (boost::tree_node::pre_order_traversal, 5, 4, 24,
- 31, 3, 76, boost::rational<long>(10, 3))
- (boost::tree_node::pre_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::post_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::pre_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::pre_order_traversal, 2, 2, 7,
- 7, 1, 15, boost::rational<long>(13, 7))
- (boost::tree_node::pre_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::post_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::pre_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::pre_order_traversal, 2, 1, 3,
- 3, 0, 5, boost::rational<long>(4, 3))
- (boost::tree_node::pre_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::post_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::pre_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 2, 1, 3,
- 3, 0, 5, boost::rational<long>(4, 3))
- (boost::tree_node::pre_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 2, 2, 7,
- 7, 1, 15, boost::rational<long>(13, 7))
- (boost::tree_node::pre_order_traversal, 3, 1, 2,
- 3, 0, 3, boost::rational<long>(3, 2))
- (boost::tree_node::pre_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::post_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::post_order_traversal, 3, 1, 2,
- 3, 0, 3, boost::rational<long>(3, 2))
- (boost::tree_node::pre_order_traversal, 4, 3, 12,
- 15, 2, 32, boost::rational<long>(8, 3))
- (boost::tree_node::pre_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::post_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::pre_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::pre_order_traversal, 2, 1, 3,
- 3, 0, 5, boost::rational<long>(4, 3))
- (boost::tree_node::pre_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::post_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::pre_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 2, 1, 3,
- 3, 0, 5, boost::rational<long>(4, 3))
- (boost::tree_node::pre_order_traversal, 3, 2, 6,
- 7, 1, 13, boost::rational<long>(2, 1))
- (boost::tree_node::pre_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::post_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::pre_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::pre_order_traversal, 2, 1, 3,
- 3, 0, 5, boost::rational<long>(4, 3))
- (boost::tree_node::pre_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::post_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::pre_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 2, 1, 3,
- 3, 0, 5, boost::rational<long>(4, 3))
- (boost::tree_node::post_order_traversal, 3, 2, 6,
- 7, 1, 13, boost::rational<long>(2, 1))
- (boost::tree_node::post_order_traversal, 4, 3, 12,
- 15, 2, 32, boost::rational<long>(8, 3))
- (boost::tree_node::post_order_traversal, 5, 4, 24,
- 31, 3, 76, boost::rational<long>(10, 3))
- (boost::tree_node::pre_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::pre_order_traversal, 2, 1, 3,
- 3, 0, 5, boost::rational<long>(4, 3))
- (boost::tree_node::pre_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::post_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::pre_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 2, 1, 3,
- 3, 0, 5, boost::rational<long>(4, 3))
- (boost::tree_node::pre_order_traversal, 3, 2, 6,
- 7, 1, 13, boost::rational<long>(2, 1))
- (boost::tree_node::pre_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::post_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::pre_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::pre_order_traversal, 2, 1, 3,
- 3, 0, 5, boost::rational<long>(4, 3))
- (boost::tree_node::pre_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::post_order_traversal, 0, 0, 1,
- 0, 0, 1, boost::rational<long>(0, 1))
- (boost::tree_node::pre_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 1, 0, 1,
- 1, 0, 1, boost::rational<long>(1, 1))
- (boost::tree_node::post_order_traversal, 2, 1, 3,
- 3, 0, 5, boost::rational<long>(4, 3))
- (boost::tree_node::post_order_traversal, 3, 2, 6,
- 7, 1, 13, boost::rational<long>(2, 1))
- (boost::tree_node::post_order_traversal, 4, 5, 35,
- 46, 4, 130, boost::rational<long>(143, 35))
- (boost::tree_node::post_order_traversal, 5, 6, 42,
- 58, 5, 180, boost::rational<long>(209, 42));
-#else // !defined BOOST_TREE_NODE_CAN_USE_FUSION
- emplacer[bf_vals]
- (5, 6, 42)(0, 0, 1)(1, 0, 1)(2, 1, 3)(3, 0, 1)(4, 5, 35)(0, 0, 1)
- (1, 0, 1)(5, 4, 24)(1, 0, 1)(2, 1, 3)(3, 2, 6)(0, 0, 1)(1, 0, 1)
- (2, 2, 7)(3, 1, 2)(4, 3, 12)(0, 0, 1)(1, 0, 1)(0, 0, 1)(1, 0, 1)
- (2, 1, 3)(0, 0, 1)(1, 0, 1)(2, 1, 3)(1, 0, 1)(0, 0, 1)(0, 0, 1)
- (1, 0, 1)(2, 1, 3)(3, 2, 6)(0, 0, 1)(1, 0, 1)(0, 0, 1)(1, 0, 1)
- (0, 0, 1)(1, 0, 1)(0, 0, 1)(1, 0, 1)(2, 1, 3)(0, 0, 1)(1, 0, 1);
- emplacer[pre_vals]
- (5, 6, 42)(0, 0, 1)(1, 0, 1)(2, 1, 3)(0, 0, 1)(1, 0, 1)(3, 0, 1)
- (4, 5, 35)(5, 4, 24)(0, 0, 1)(1, 0, 1)(2, 2, 7)(0, 0, 1)(1, 0, 1)
- (2, 1, 3)(0, 0, 1)(1, 0, 1)(1, 0, 1)(3, 1, 2)(0, 0, 1)(4, 3, 12)
- (0, 0, 1)(1, 0, 1)(2, 1, 3)(0, 0, 1)(1, 0, 1)(3, 2, 6)(0, 0, 1)
- (1, 0, 1)(2, 1, 3)(0, 0, 1)(1, 0, 1)(1, 0, 1)(2, 1, 3)(0, 0, 1)
- (1, 0, 1)(3, 2, 6)(0, 0, 1)(1, 0, 1)(2, 1, 3)(0, 0, 1)(1, 0, 1);
- emplacer[post_vals]
- (0, 0, 1)(1, 0, 1)(0, 0, 1)(1, 0, 1)(2, 1, 3)(3, 0, 1)(0, 0, 1)
- (1, 0, 1)(0, 0, 1)(1, 0, 1)(0, 0, 1)(1, 0, 1)(2, 1, 3)(1, 0, 1)
- (2, 2, 7)(0, 0, 1)(3, 1, 2)(0, 0, 1)(1, 0, 1)(0, 0, 1)(1, 0, 1)
- (2, 1, 3)(0, 0, 1)(1, 0, 1)(0, 0, 1)(1, 0, 1)(2, 1, 3)(3, 2, 6)
- (4, 3, 12)(5, 4, 24)(1, 0, 1)(0, 0, 1)(1, 0, 1)(2, 1, 3)(0, 0, 1)
- (1, 0, 1)(0, 0, 1)(1, 0, 1)(2, 1, 3)(3, 2, 6)(4, 5, 35)(5, 6, 42);
- emplacer[df_vals]
- (boost::tree_node::pre_order_traversal, 5, 6, 42)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 2, 1, 3)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 2, 1, 3)
- (boost::tree_node::pre_order_traversal, 3, 0, 1)
- (boost::tree_node::post_order_traversal, 3, 0, 1)
- (boost::tree_node::pre_order_traversal, 4, 5, 35)
- (boost::tree_node::pre_order_traversal, 5, 4, 24)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 2, 2, 7)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 2, 1, 3)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 2, 1, 3)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 2, 2, 7)
- (boost::tree_node::pre_order_traversal, 3, 1, 2)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 3, 1, 2)
- (boost::tree_node::pre_order_traversal, 4, 3, 12)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 2, 1, 3)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 2, 1, 3)
- (boost::tree_node::pre_order_traversal, 3, 2, 6)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 2, 1, 3)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 2, 1, 3)
- (boost::tree_node::post_order_traversal, 3, 2, 6)
- (boost::tree_node::post_order_traversal, 4, 3, 12)
- (boost::tree_node::post_order_traversal, 5, 4, 24)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 2, 1, 3)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 2, 1, 3)
- (boost::tree_node::pre_order_traversal, 3, 2, 6)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::pre_order_traversal, 2, 1, 3)
- (boost::tree_node::pre_order_traversal, 0, 0, 1)
- (boost::tree_node::post_order_traversal, 0, 0, 1)
- (boost::tree_node::pre_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 1, 0, 1)
- (boost::tree_node::post_order_traversal, 2, 1, 3)
- (boost::tree_node::post_order_traversal, 3, 2, 6)
- (boost::tree_node::post_order_traversal, 4, 5, 35)
- (boost::tree_node::post_order_traversal, 5, 6, 42);
-#endif // BOOST_TREE_NODE_CAN_USE_FUSION
- test_node<a_node_case>(a_root, bf_vals, pre_vals, post_vals, df_vals);
- }
-
-#if defined BOOST_TREE_NODE_CAN_USE_FUSION
- typedef boost::tree_node::with_accumulation<
- boost::tree_node::nary_node_base_gen<Selector>
- , DataMap
- , void
- , AccuYourUintKey
- >
- FNode;
- typedef typename boost::container_gen<
- boost::dequeS
- , boost::tuples::tuple<
- typename boost::tree_node::result_of::value_at_key<
- FNode const
- , example_keys::your_uint
- >::type
- , typename boost::tree_node::result_of::value_at_key<
- FNode const
- , example_keys::your_char
- >::type
- , typename boost::tree_node::result_of::value_at_key<
- FNode const
- , AccuYourUintKey
- >::type
- >
- >::type
- MoreValues;
- typedef typename boost::container_gen<
- boost::dequeS
- , boost::tuples::tuple<
- boost::tree_node::traversal_state
- , typename boost::tree_node::result_of::value_at_key<
- FNode const
- , example_keys::your_uint
- >::type
- , typename boost::tree_node::result_of::value_at_key<
- FNode const
- , example_keys::your_char
- >::type
- , typename boost::tree_node::result_of::value_at_key<
- FNode const
- , AccuYourUintKey
- >::type
- >
- >::type
- DFMoreValues;
-
- FNode f_root(
- boost::fusion::make_pair<example_keys::your_uint>(5)
- , boost::fusion::make_pair<example_keys::your_char>('5')
- );
-
- for (
- boost::tree_node::breadth_first_iterator<FNode> itr(f_root);
- itr;
- ++itr
- )
- {
- typename boost::tree_node::result_of::value_at_key<
- FNode const
- , example_keys::your_uint
- >::type data = boost::tree_node::get<example_keys::your_uint>(*itr);
-
- if (1 < data)
- {
- for (unsigned int i = 0; i < data; ++i)
- {
- if (std::tr1::is_same<Selector,boost::slistS>::value)
- {
- (*itr).emplace(
- boost::fusion::make_pair<example_keys::your_uint>(
- data - 1 - i
- )
- , boost::fusion::make_pair<example_keys::your_char>(
- '0' + data - 1 - i
- )
- );
- }
- else
- {
- (*itr).emplace(
- boost::fusion::make_pair<example_keys::your_uint>(i)
- , boost::fusion::make_pair<example_keys::your_char>(
- '0' + i
- )
- );
- }
- }
-
- }
- }
-
- {
- MoreValues bf_vals, pre_vals, post_vals;
- DFMoreValues df_vals;
- Emplacer emplacer;
-
- emplacer[bf_vals]
- (5, '5', 31)(0, '0', 0)(1, '1', 1)(2, '2', 3)(3, '3', 7)
- (4, '4', 15)(0, '0', 0)(1, '1', 1)(0, '0', 0)(1, '1', 1)
- (2, '2', 3)(0, '0', 0)(1, '1', 1)(2, '2', 3)(3, '3', 7)
- (0, '0', 0)(1, '1', 1)(0, '0', 0)(1, '1', 1)(0, '0', 0)
- (1, '1', 1)(2, '2', 3)(0, '0', 0)(1, '1', 1);
- emplacer[pre_vals]
- (5, '5', 31)(0, '0', 0)(1, '1', 1)(2, '2', 3)(0, '0', 0)
- (1, '1', 1)(3, '3', 7)(0, '0', 0)(1, '1', 1)(2, '2', 3)
- (0, '0', 0)(1, '1', 1)(4, '4', 15)(0, '0', 0)(1, '1', 1)
- (2, '2', 3)(0, '0', 0)(1, '1', 1)(3, '3', 7)(0, '0', 0)
- (1, '1', 1)(2, '2', 3)(0, '0', 0)(1, '1', 1);
- emplacer[post_vals]
- (0, '0', 0)(1, '1', 1)(0, '0', 0)(1, '1', 1)(2, '2', 3)
- (0, '0', 0)(1, '1', 1)(0, '0', 0)(1, '1', 1)(2, '2', 3)
- (3, '3', 7)(0, '0', 0)(1, '1', 1)(0, '0', 0)(1, '1', 1)
- (2, '2', 3)(0, '0', 0)(1, '1', 1)(0, '0', 0)(1, '1', 1)
- (2, '2', 3)(3, '3', 7)(4, '4', 15)(5, '5', 31);
- emplacer[df_vals]
- (boost::tree_node::pre_order_traversal, 5, '5', 31)
- (boost::tree_node::pre_order_traversal, 0, '0', 0)
- (boost::tree_node::post_order_traversal, 0, '0', 0)
- (boost::tree_node::pre_order_traversal, 1, '1', 1)
- (boost::tree_node::post_order_traversal, 1, '1', 1)
- (boost::tree_node::pre_order_traversal, 2, '2', 3)
- (boost::tree_node::pre_order_traversal, 0, '0', 0)
- (boost::tree_node::post_order_traversal, 0, '0', 0)
- (boost::tree_node::pre_order_traversal, 1, '1', 1)
- (boost::tree_node::post_order_traversal, 1, '1', 1)
- (boost::tree_node::post_order_traversal, 2, '2', 3)
- (boost::tree_node::pre_order_traversal, 3, '3', 7)
- (boost::tree_node::pre_order_traversal, 0, '0', 0)
- (boost::tree_node::post_order_traversal, 0, '0', 0)
- (boost::tree_node::pre_order_traversal, 1, '1', 1)
- (boost::tree_node::post_order_traversal, 1, '1', 1)
- (boost::tree_node::pre_order_traversal, 2, '2', 3)
- (boost::tree_node::pre_order_traversal, 0, '0', 0)
- (boost::tree_node::post_order_traversal, 0, '0', 0)
- (boost::tree_node::pre_order_traversal, 1, '1', 1)
- (boost::tree_node::post_order_traversal, 1, '1', 1)
- (boost::tree_node::post_order_traversal, 2, '2', 3)
- (boost::tree_node::post_order_traversal, 3, '3', 7)
- (boost::tree_node::pre_order_traversal, 4, '4', 15)
- (boost::tree_node::pre_order_traversal, 0, '0', 0)
- (boost::tree_node::post_order_traversal, 0, '0', 0)
- (boost::tree_node::pre_order_traversal, 1, '1', 1)
- (boost::tree_node::post_order_traversal, 1, '1', 1)
- (boost::tree_node::pre_order_traversal, 2, '2', 3)
- (boost::tree_node::pre_order_traversal, 0, '0', 0)
- (boost::tree_node::post_order_traversal, 0, '0', 0)
- (boost::tree_node::pre_order_traversal, 1, '1', 1)
- (boost::tree_node::post_order_traversal, 1, '1', 1)
- (boost::tree_node::post_order_traversal, 2, '2', 3)
- (boost::tree_node::pre_order_traversal, 3, '3', 7)
- (boost::tree_node::pre_order_traversal, 0, '0', 0)
- (boost::tree_node::post_order_traversal, 0, '0', 0)
- (boost::tree_node::pre_order_traversal, 1, '1', 1)
- (boost::tree_node::post_order_traversal, 1, '1', 1)
- (boost::tree_node::pre_order_traversal, 2, '2', 3)
- (boost::tree_node::pre_order_traversal, 0, '0', 0)
- (boost::tree_node::post_order_traversal, 0, '0', 0)
- (boost::tree_node::pre_order_traversal, 1, '1', 1)
- (boost::tree_node::post_order_traversal, 1, '1', 1)
- (boost::tree_node::post_order_traversal, 2, '2', 3)
- (boost::tree_node::post_order_traversal, 3, '3', 7)
- (boost::tree_node::post_order_traversal, 4, '4', 15)
- (boost::tree_node::post_order_traversal, 5, '5', 31);
- test_node<f_node_case>(f_root, bf_vals, pre_vals, post_vals, df_vals);
-
- typename FNode::iterator f_child_itr(f_root.begin());
-
- std::advance(f_child_itr, 3);
- f_child_itr = (*f_child_itr).begin();
- std::advance(f_child_itr, 2);
- boost::tree_node::put(*f_child_itr, example_keys::your_uint(), 7);
- bf_vals.clear();
- pre_vals.clear();
- post_vals.clear();
- df_vals.clear();
-
- emplacer[bf_vals]
- (5, '5', 36)(0, '0', 0)(1, '1', 1)(2, '2', 3)(3, '3', 12)
- (4, '4', 15)(0, '0', 0)(1, '1', 1)(0, '0', 0)(1, '1', 1)
- (7, '2', 8)(0, '0', 0)(1, '1', 1)(2, '2', 3)(3, '3', 7)
- (0, '0', 0)(1, '1', 1)(0, '0', 0)(1, '1', 1)(0, '0', 0)
- (1, '1', 1)(2, '2', 3)(0, '0', 0)(1, '1', 1);
- emplacer[pre_vals]
- (5, '5', 36)(0, '0', 0)(1, '1', 1)(2, '2', 3)(0, '0', 0)
- (1, '1', 1)(3, '3', 12)(0, '0', 0)(1, '1', 1)(7, '2', 8)
- (0, '0', 0)(1, '1', 1)(4, '4', 15)(0, '0', 0)(1, '1', 1)
- (2, '2', 3)(0, '0', 0)(1, '1', 1)(3, '3', 7)(0, '0', 0)
- (1, '1', 1)(2, '2', 3)(0, '0', 0)(1, '1', 1);
- emplacer[post_vals]
- (0, '0', 0)(1, '1', 1)(0, '0', 0)(1, '1', 1)(2, '2', 3)
- (0, '0', 0)(1, '1', 1)(0, '0', 0)(1, '1', 1)(7, '2', 8)
- (3, '3', 12)(0, '0', 0)(1, '1', 1)(0, '0', 0)(1, '1', 1)
- (2, '2', 3)(0, '0', 0)(1, '1', 1)(0, '0', 0)(1, '1', 1)
- (2, '2', 3)(3, '3', 7)(4, '4', 15)(5, '5', 36);
- emplacer[df_vals]
- (boost::tree_node::pre_order_traversal, 5, '5', 36)
- (boost::tree_node::pre_order_traversal, 0, '0', 0)
- (boost::tree_node::post_order_traversal, 0, '0', 0)
- (boost::tree_node::pre_order_traversal, 1, '1', 1)
- (boost::tree_node::post_order_traversal, 1, '1', 1)
- (boost::tree_node::pre_order_traversal, 2, '2', 3)
- (boost::tree_node::pre_order_traversal, 0, '0', 0)
- (boost::tree_node::post_order_traversal, 0, '0', 0)
- (boost::tree_node::pre_order_traversal, 1, '1', 1)
- (boost::tree_node::post_order_traversal, 1, '1', 1)
- (boost::tree_node::post_order_traversal, 2, '2', 3)
- (boost::tree_node::pre_order_traversal, 3, '3', 12)
- (boost::tree_node::pre_order_traversal, 0, '0', 0)
- (boost::tree_node::post_order_traversal, 0, '0', 0)
- (boost::tree_node::pre_order_traversal, 1, '1', 1)
- (boost::tree_node::post_order_traversal, 1, '1', 1)
- (boost::tree_node::pre_order_traversal, 7, '2', 8)
- (boost::tree_node::pre_order_traversal, 0, '0', 0)
- (boost::tree_node::post_order_traversal, 0, '0', 0)
- (boost::tree_node::pre_order_traversal, 1, '1', 1)
- (boost::tree_node::post_order_traversal, 1, '1', 1)
- (boost::tree_node::post_order_traversal, 7, '2', 8)
- (boost::tree_node::post_order_traversal, 3, '3', 12)
- (boost::tree_node::pre_order_traversal, 4, '4', 15)
- (boost::tree_node::pre_order_traversal, 0, '0', 0)
- (boost::tree_node::post_order_traversal, 0, '0', 0)
- (boost::tree_node::pre_order_traversal, 1, '1', 1)
- (boost::tree_node::post_order_traversal, 1, '1', 1)
- (boost::tree_node::pre_order_traversal, 2, '2', 3)
- (boost::tree_node::pre_order_traversal, 0, '0', 0)
- (boost::tree_node::post_order_traversal, 0, '0', 0)
- (boost::tree_node::pre_order_traversal, 1, '1', 1)
- (boost::tree_node::post_order_traversal, 1, '1', 1)
- (boost::tree_node::post_order_traversal, 2, '2', 3)
- (boost::tree_node::pre_order_traversal, 3, '3', 7)
- (boost::tree_node::pre_order_traversal, 0, '0', 0)
- (boost::tree_node::post_order_traversal, 0, '0', 0)
- (boost::tree_node::pre_order_traversal, 1, '1', 1)
- (boost::tree_node::post_order_traversal, 1, '1', 1)
- (boost::tree_node::pre_order_traversal, 2, '2', 3)
- (boost::tree_node::pre_order_traversal, 0, '0', 0)
- (boost::tree_node::post_order_traversal, 0, '0', 0)
- (boost::tree_node::pre_order_traversal, 1, '1', 1)
- (boost::tree_node::post_order_traversal, 1, '1', 1)
- (boost::tree_node::post_order_traversal, 2, '2', 3)
- (boost::tree_node::post_order_traversal, 3, '3', 7)
- (boost::tree_node::post_order_traversal, 4, '4', 15)
- (boost::tree_node::post_order_traversal, 5, '5', 36);
- test_node<f_node_case>(f_root, bf_vals, pre_vals, post_vals, df_vals);
- }
-#endif // BOOST_TREE_NODE_CAN_USE_FUSION
-}
-
-#if defined BOOST_MSVC
- #pragma warning (pop)
-#endif
-
-#if defined BOOST_TYPEOF_EMULATION
-#include <boost/typeof/boost/ptr_container/ptr_vector.hpp>
-#include <boost/typeof/boost/ptr_container/ptr_deque.hpp>
-#include <boost/typeof/boost/ptr_container/ptr_list.hpp>
-#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-#include <boost/typeof/boost/container/vector.hpp>
-#include <boost/typeof/boost/container/stable_vector.hpp>
-#include <boost/typeof/boost/container/deque.hpp>
-#include <boost/typeof/boost/container/slist.hpp>
-#include <boost/typeof/boost/container/list.hpp>
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-#endif // BOOST_TYPEOF_EMULATION
-
-int test_main(int argc, char** argv)
-{
- test<boost::ptr_vecS>();
- test<boost::ptr_dequeS>();
- test<boost::ptr_listS>();
-#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- test<boost::vector_selector<boost::mpl::true_> >();
- test<boost::stable_vecS>();
- test<boost::deque_selector<boost::mpl::true_> >();
- test<boost::slistS>();
- test<boost::list_selector<boost::mpl::true_> >();
-#endif
-
- return 0;
-}
-

Deleted: sandbox/tree_node/libs/tree_node/test/red_black_tree.hpp
==============================================================================
--- sandbox/tree_node/libs/tree_node/test/red_black_tree.hpp 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84956)
+++ /dev/null 00:00:00 1970 (deleted)
@@ -1,305 +0,0 @@
-// 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)
-
-#ifndef LIBS_TREE_NODE_TEST_RED_BLACK_TREE_HPP_INCLUDED
-#define LIBS_TREE_NODE_TEST_RED_BLACK_TREE_HPP_INCLUDED
-
-#include "container_functions.hpp"
-
-template <typename Tree, typename Values>
-void test_red_black_tree()
-{
- Tree red_black_tree;
- Values values;
-
- BOOST_CHECK(red_black_tree.empty());
- BOOST_CHECK(0 == red_black_tree.size());
- test_insert(red_black_tree, values, 1);
- test_insert(red_black_tree, values, 2);
- test_insert(red_black_tree, values, 4);
- test_insert(red_black_tree, values, 3);
- test_erase(red_black_tree, values, 1);
- test_clear(red_black_tree, values);
- test_insert(red_black_tree, values, -1);
- test_insert(red_black_tree, values, -2);
- test_insert(red_black_tree, values, -4);
- test_insert(red_black_tree, values, -3);
- test_erase(red_black_tree, values, -1);
- test_clear(red_black_tree, values);
-
- for (int i = 5; i < 10; ++i)
- {
- test_insert(red_black_tree, values, i);
- }
-
- for (int i = 15; 9 < i; --i)
- {
- test_insert(red_black_tree, values, i);
- }
-
- test_erase(red_black_tree, values, 5);
- test_clear(red_black_tree, values);
-
- for (int i = 5; i < 10; ++i)
- {
- test_insert(red_black_tree, values, -i);
- }
-
- for (int i = 15; 9 < i; --i)
- {
- test_insert(red_black_tree, values, -i);
- }
-
- test_erase(red_black_tree, values, -5);
- test_clear(red_black_tree, values);
- test_insert(red_black_tree, values, 13);
- test_insert(red_black_tree, values, 8);
- test_insert(red_black_tree, values, 1);
- test_insert(red_black_tree, values, 6);
- test_insert(red_black_tree, values, 11);
- test_insert(red_black_tree, values, 17);
- test_insert(red_black_tree, values, 15);
- test_insert(red_black_tree, values, 22);
- test_insert(red_black_tree, values, 25);
- test_insert(red_black_tree, values, 28);
-
- Tree red_black_copy(red_black_tree);
-
- test_tree_container(red_black_copy, values);
- test_insert(red_black_copy, values, 26);
- test_insert(red_black_copy, values, 27);
- test_erase(red_black_copy, values, 15);
- test_value_insert(values, 15);
- values.erase(27);
- values.erase(26);
- test_insert(red_black_tree, values, 20);
- test_insert(red_black_tree, values, 21);
- red_black_copy = red_black_tree;
- test_tree_container(red_black_copy, values);
- test_erase(red_black_copy, values, 11);
- red_black_copy = red_black_tree;
- test_value_insert(values, 11);
- test_tree_container(red_black_copy, values);
- test_erase(red_black_copy, values, 15);
- test_clear(red_black_tree, values);
- test_insert(red_black_tree, values, -13);
- test_insert(red_black_tree, values, -8);
- test_insert(red_black_tree, values, -1);
- test_insert(red_black_tree, values, -6);
- test_insert(red_black_tree, values, -11);
- test_insert(red_black_tree, values, -17);
- test_insert(red_black_tree, values, -15);
- test_insert(red_black_tree, values, -22);
- test_insert(red_black_tree, values, -25);
- test_insert(red_black_tree, values, -28);
- red_black_copy = red_black_tree;
- test_tree_container(red_black_copy, values);
- test_insert(red_black_copy, values, -26);
- test_insert(red_black_copy, values, -27);
- test_erase(red_black_copy, values, -15);
- test_value_insert(values, -15);
- values.erase(-27);
- values.erase(-26);
- test_insert(red_black_tree, values, -20);
- test_insert(red_black_tree, values, -21);
- red_black_copy = red_black_tree;
- test_tree_container(red_black_copy, values);
- test_erase(red_black_copy, values, -11);
- red_black_copy = red_black_tree;
- test_value_insert(values, -11);
- test_tree_container(red_black_copy, values);
- test_erase(red_black_copy, values, -15);
- test_clear(red_black_tree, values);
- test_insert(red_black_tree, values, 8);
- test_insert(red_black_tree, values, 4);
- test_insert(red_black_tree, values, 9);
- test_insert(red_black_tree, values, 2);
- test_insert(red_black_tree, values, 6);
- test_insert(red_black_tree, values, 1);
- test_insert(red_black_tree, values, 3);
- test_insert(red_black_tree, values, 5);
- test_insert(red_black_tree, values, 7);
- red_black_copy = red_black_tree;
- test_tree_container(red_black_copy, values);
- test_erase(red_black_copy, values, 9);
- test_erase(red_black_copy, values, 2);
- test_erase(red_black_copy, values, 3);
- test_erase(red_black_copy, values, 1);
- test_clear(red_black_tree, values);
- test_insert(red_black_tree, values, -8);
- test_insert(red_black_tree, values, -4);
- test_insert(red_black_tree, values, -9);
- test_insert(red_black_tree, values, -2);
- test_insert(red_black_tree, values, -6);
- test_insert(red_black_tree, values, -1);
- test_insert(red_black_tree, values, -3);
- test_insert(red_black_tree, values, -5);
- test_insert(red_black_tree, values, -7);
- red_black_copy = red_black_tree;
- test_tree_container(red_black_copy, values);
- test_erase(red_black_copy, values, -9);
- test_erase(red_black_copy, values, -2);
- test_erase(red_black_copy, values, -3);
- test_erase(red_black_copy, values, -1);
- test_clear(red_black_tree, values);
-
- for (int i = 1; i < 10; ++i)
- {
- test_insert(red_black_tree, values, i);
- }
-
- for (int i = 15; 9 < i; --i)
- {
- test_insert(red_black_tree, values, i);
- }
-
- red_black_copy = red_black_tree;
- test_tree_container(red_black_copy, values);
- test_erase(red_black_copy, values, 1);
- red_black_copy = red_black_tree;
- test_value_insert(values, 1);
- test_tree_container(red_black_copy, values);
- test_erase(red_black_copy, values, 3);
- red_black_copy = red_black_tree;
- test_value_insert(values, 3);
- test_tree_container(red_black_copy, values);
- test_erase(red_black_copy, values, 5);
- red_black_copy = red_black_tree;
- test_value_insert(values, 5);
- test_tree_container(red_black_copy, values);
- test_erase(red_black_copy, values, 7);
- test_erase(red_black_copy, values, 6);
- test_erase(red_black_copy, values, 5);
- test_erase(red_black_copy, values, 8);
- test_erase(red_black_copy, values, 9);
- red_black_copy = red_black_tree;
- test_value_insert(values, 9);
- test_value_insert(values, 8);
- test_value_insert(values, 5);
- test_value_insert(values, 6);
- test_value_insert(values, 7);
- test_tree_container(red_black_copy, values);
- test_erase(red_black_copy, values, 15);
- test_clear(red_black_tree, values);
-
- for (int i = 1; i < 10; ++i)
- {
- test_insert(red_black_tree, values, -i);
- }
-
- for (int i = 15; 9 < i; --i)
- {
- test_insert(red_black_tree, values, -i);
- }
-
- red_black_copy = red_black_tree;
- test_tree_container(red_black_copy, values);
- test_erase(red_black_copy, values, -1);
- red_black_copy = red_black_tree;
- test_value_insert(values, -1);
- test_tree_container(red_black_copy, values);
- test_erase(red_black_copy, values, -3);
- red_black_copy = red_black_tree;
- test_value_insert(values, -3);
- test_tree_container(red_black_copy, values);
- test_erase(red_black_copy, values, -5);
- red_black_copy = red_black_tree;
- test_value_insert(values, -5);
- test_tree_container(red_black_copy, values);
- test_erase(red_black_copy, values, -7);
- test_erase(red_black_copy, values, -6);
- test_erase(red_black_copy, values, -5);
- test_erase(red_black_copy, values, -8);
- test_erase(red_black_copy, values, -9);
- red_black_copy = red_black_tree;
- test_value_insert(values, -9);
- test_value_insert(values, -8);
- test_value_insert(values, -5);
- test_value_insert(values, -6);
- test_value_insert(values, -7);
- test_tree_container(red_black_copy, values);
- test_erase(red_black_copy, values, -15);
- test_clear(red_black_tree, values);
-
- for (int i = 1; i < 16; ++i)
- {
- test_insert(red_black_tree, values, i);
- }
-
- test_erase(red_black_tree, values, 5);
- test_clear(red_black_tree, values);
-
- for (int i = 1; i < 16; ++i)
- {
- test_insert(red_black_tree, values, -i);
- }
-
- test_erase(red_black_tree, values, -5);
- test_clear(red_black_tree, values);
- test_insert(red_black_tree, values, 0);
- test_insert(red_black_tree, values, -8);
- test_insert(red_black_tree, values, 8);
- test_insert(red_black_tree, values, -16);
- test_insert(red_black_tree, values, -4);
- test_insert(red_black_tree, values, 4);
- test_insert(red_black_tree, values, 16);
- test_insert(red_black_tree, values, -18);
- test_insert(red_black_tree, values, -12);
- test_insert(red_black_tree, values, -6);
- test_insert(red_black_tree, values, -2);
- test_insert(red_black_tree, values, 2);
- test_insert(red_black_tree, values, 6);
- test_insert(red_black_tree, values, 12);
- test_insert(red_black_tree, values, 18);
- test_insert(red_black_tree, values, -19);
- test_insert(red_black_tree, values, -17);
- test_insert(red_black_tree, values, -14);
- test_insert(red_black_tree, values, -10);
- test_insert(red_black_tree, values, -7);
- test_insert(red_black_tree, values, -5);
- test_insert(red_black_tree, values, -3);
- test_insert(red_black_tree, values, -1);
- test_insert(red_black_tree, values, 1);
- test_insert(red_black_tree, values, 3);
- test_insert(red_black_tree, values, 5);
- test_insert(red_black_tree, values, 7);
- test_insert(red_black_tree, values, 10);
- test_insert(red_black_tree, values, 14);
- test_insert(red_black_tree, values, 17);
- test_insert(red_black_tree, values, 19);
- test_insert(red_black_tree, values, -15);
- test_insert(red_black_tree, values, -13);
- test_insert(red_black_tree, values, -11);
- test_insert(red_black_tree, values, -9);
- test_insert(red_black_tree, values, 9);
- test_insert(red_black_tree, values, 11);
- test_insert(red_black_tree, values, 13);
- test_insert(red_black_tree, values, 15);
- test_erase(red_black_tree, values, -19);
- test_erase(red_black_tree, values, -17);
- test_erase(red_black_tree, values, -7);
- test_erase(red_black_tree, values, -5);
- test_erase(red_black_tree, values, -3);
- test_erase(red_black_tree, values, -1);
- test_erase(red_black_tree, values, 1);
- test_erase(red_black_tree, values, 3);
- test_erase(red_black_tree, values, 5);
- test_erase(red_black_tree, values, 7);
- test_erase(red_black_tree, values, 17);
- test_erase(red_black_tree, values, 19);
- red_black_copy = red_black_tree;
- test_tree_container(red_black_copy, values);
- test_erase(red_black_copy, values, 0);
- test_erase(red_black_copy, values, 2);
- test_value_insert(values, 2);
- test_value_insert(values, 0);
- red_black_copy = red_black_tree;
- test_tree_container(red_black_copy, values);
- test_erase(red_black_copy, values, -2);
- test_erase(red_black_copy, values, 0);
-}
-
-#endif // LIBS_TREE_NODE_TEST_RED_BLACK_TREE_HPP_INCLUDED
-

Deleted: sandbox/tree_node/libs/tree_node/test/sequence.hpp
==============================================================================
--- sandbox/tree_node/libs/tree_node/test/sequence.hpp 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84956)
+++ /dev/null 00:00:00 1970 (deleted)
@@ -1,38 +0,0 @@
-// 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)
-
-#ifndef LIBS_TREE_NODE_TEST_SEQUENCE_HPP_INCLUDED
-#define LIBS_TREE_NODE_TEST_SEQUENCE_HPP_INCLUDED
-
-#include <boost/cstdint.hpp>
-
-template <typename TreeSequence>
-void test_sequence(TreeSequence& tree_sequence, ValueSequence& values)
-{
- BOOST_CHECK(tree_sequence.empty());
- BOOST_CHECK(0 == tree_sequence.size());
-
- for (boost::int32_t i = -5; -15 < i; --i)
- {
- test_push_back(tree_sequence, values, i);
- }
-
- for (boost::int32_t i = 5; i < 15; ++i)
- {
- test_push_front(tree_sequence, values, i);
- }
-
- test_pop_back(tree_sequence, values);
- test_pop_front(tree_sequence, values);
- typename TreeSequence::size_type index = 0;
-
- for (boost::int32_t i = -4; i < 5; ++i)
- {
- test_insert(tree_sequence, values, index += 2, i);
- }
-}
-
-#endif // LIBS_TREE_NODE_TEST_SEQUENCE_HPP_INCLUDED
-

Deleted: sandbox/tree_node/libs/tree_node/test/type_definitions.hpp
==============================================================================
--- sandbox/tree_node/libs/tree_node/test/type_definitions.hpp 2013-07-06 13:49:36 EDT (Sat, 06 Jul 2013) (r84956)
+++ /dev/null 00:00:00 1970 (deleted)
@@ -1,43 +0,0 @@
-// 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)
-
-#ifndef LIBS_TREE_NODE_TEST_TYPE_DEFINITIONS_HPP_INCLUDED
-#define LIBS_TREE_NODE_TEST_TYPE_DEFINITIONS_HPP_INCLUDED
-
-#include <deque>
-#include <set>
-#include <map>
-#include <boost/cstdint.hpp>
-#include <boost/typeof/boost/tree_node/with_count.hpp>
-#include <boost/typeof/boost/tree_node/with_height.hpp>
-#include <boost/typeof/boost/tree_node/with_red_black_flag.hpp>
-#include <boost/typeof/boost/tree_node/binary_node.hpp>
-
-//[test__container_types
-typedef std::deque<boost::int32_t>
- ValueSequence;
-typedef std::set<boost::int32_t>
- ValueSet;
-typedef std::map<boost::int32_t,boost::int32_t>
- ValueMap;
-//]
-
-//[test__node_types
-typedef boost::tree_node::with_red_black_flag_gen<
- boost::tree_node::with_count_base_gen<
- boost::tree_node::binary_node_base_gen<>
- >
- >
- RedBlackNodeGen;
-typedef boost::tree_node::with_height_gen<
- boost::tree_node::with_count_base_gen<
- boost::tree_node::binary_node_base_gen<>
- >
- >
- AVLNodeGen;
-//]
-
-#endif // LIBS_TREE_NODE_TEST_TYPE_DEFINITIONS_HPP_INCLUDED
-


Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk