$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r66593 - in sandbox/statistics/support/boost/assign/v2: . anon chain chain/aux_ chain/checking chain/traits detail detail/checking detail/config detail/functor detail/fwd detail/keyword detail/mpl detail/pp detail/relational_op detail/type_traits detail/type_traits/container put put/compose put/compose/common put/compose/csv put/compose/functor put/generic put/modifier put/range put/range/modifier put/sub put/wrapper ref ref/anon ref/anon/csv ref/anon/generic ref/anon/unary ref/detail ref/detail/convert_traits ref/detail/fusion_list ref/detail/unwrap ref/fusion ref/fusion_matrix ref/static_array ref/static_array/alloc ref/wrapper
From: erwann.rogard_at_[hidden]
Date: 2010-11-15 16:08:15
Author: e_r
Date: 2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
New Revision: 66593
URL: http://svn.boost.org/trac/boost/changeset/66593
Log:
re-adding boost/assign/v2
Added:
   sandbox/statistics/support/boost/assign/v2/
   sandbox/statistics/support/boost/assign/v2/anon/
   sandbox/statistics/support/boost/assign/v2/anon/anon.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/anon/cont.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/anon/csv.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/anon/make.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/chain/
   sandbox/statistics/support/boost/assign/v2/chain/aux_/
   sandbox/statistics/support/boost/assign/v2/chain/aux_/adaptor.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/chain/aux_/bitwise_or.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/chain/aux_/logical_and.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/chain/aux_/sub.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/chain/chain.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/chain/checking/
   sandbox/statistics/support/boost/assign/v2/chain/checking/distinct_values.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/chain/checking/twin_values.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/chain/traits/
   sandbox/statistics/support/boost/assign/v2/chain/traits/iterator.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/chain/traits/range.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/chain/traits/result.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/chain/traits/use_lvalue.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/detail/
   sandbox/statistics/support/boost/assign/v2/detail/checking/
   sandbox/statistics/support/boost/assign/v2/detail/checking/array.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/detail/checking/assert.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/detail/checking/check_convert.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/detail/checking/check_equal.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/detail/checking/checking.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/detail/checking/constants.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/detail/checking/container.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/detail/checking/deduce_check.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/detail/checking/fifo.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/detail/checking/iterator.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/detail/checking/lifo.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/detail/checking/map.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/detail/checking/range.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/detail/checking/relational_op.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/detail/config/
   sandbox/statistics/support/boost/assign/v2/detail/config/arity_bound.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/detail/config/borland_workaround.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/detail/config/enable_cpp0x.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/detail/config/limit_arity.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/detail/config/limit_csv_arity.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/detail/config/limit_lvalue_const_arity.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/detail/detail.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/detail/functor/
   sandbox/statistics/support/boost/assign/v2/detail/functor/constructor.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/detail/functor/crtp_unary_and_up.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/detail/functor/functor.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/detail/functor/identity.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/detail/functor/new.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/detail/fwd/
   sandbox/statistics/support/boost/assign/v2/detail/fwd/container.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/detail/fwd/fwd.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/detail/fwd/ptr_container.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/detail/keyword/
   sandbox/statistics/support/boost/assign/v2/detail/keyword/keyword.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/detail/keyword/nil.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/detail/keyword/unwrap.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/detail/mpl/
   sandbox/statistics/support/boost/assign/v2/detail/mpl/always.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/detail/mpl/mpl.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/detail/mpl/switch.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/detail/mpl/uniform_vector.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/detail/pp/
   sandbox/statistics/support/boost/assign/v2/detail/pp/args.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/detail/pp/params.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/detail/pp/seq.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/detail/relational_op/
   sandbox/statistics/support/boost/assign/v2/detail/relational_op/crtp.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/detail/relational_op/relational_op.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/detail/type_traits/
   sandbox/statistics/support/boost/assign/v2/detail/type_traits/container/
   sandbox/statistics/support/boost/assign/v2/detail/type_traits/container/container.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/detail/type_traits/container/forward_to_value.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/detail/type_traits/container/has_push.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/detail/type_traits/container/has_static_size.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/detail/type_traits/container/is_associative.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/detail/type_traits/container/is_fifo.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/detail/type_traits/container/is_lifo.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/detail/type_traits/container/is_map.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/detail/type_traits/container/is_ptr_container.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/detail/type_traits/container/is_range.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/detail/type_traits/container/is_set.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/detail/type_traits/container/is_sorted.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/detail/type_traits/container/is_static_array.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/detail/type_traits/container/ptr_to_value.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/detail/type_traits/container/ptr_to_value_container.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/detail/type_traits/container/static_size.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/detail/type_traits/container/value.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/detail/type_traits/container/value_container.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/detail/type_traits/decay.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/detail/type_traits/has_value_type.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/detail/type_traits/is_stl_pair.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/detail/type_traits/meta_convert.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/detail/type_traits/same_remove_cv.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/detail/type_traits/type_traits.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/detail/type_traits/value.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/put/
   sandbox/statistics/support/boost/assign/v2/put/compose/
   sandbox/statistics/support/boost/assign/v2/put/compose/common/
   sandbox/statistics/support/boost/assign/v2/put/compose/common/common.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/put/compose/common/forward_parameter.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/put/compose/compose.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/put/compose/csv/
   sandbox/statistics/support/boost/assign/v2/put/compose/csv/composer.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/put/compose/csv/csv.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/put/compose/csv/forward_seq_arg.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/put/compose/csv/held.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/put/compose/csv/sub.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/put/compose/functor/
   sandbox/statistics/support/boost/assign/v2/put/compose/functor/composer.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/put/compose/functor/forward_args.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/put/compose/functor/forward_seq_args.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/put/compose/functor/functor.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/put/compose/functor/sub.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/put/compose/tag.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/put/generic/
   sandbox/statistics/support/boost/assign/v2/put/generic/base.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/put/generic/crtp.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/put/generic/expose_fun.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/put/generic/expose_modifier.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/put/generic/generic.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/put/generic/new_fun.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/put/generic/new_modifier.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/put/generic/result_of_modulo.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/put/modifier/
   sandbox/statistics/support/boost/assign/v2/put/modifier/at_next.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/put/modifier/deduce.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/put/modifier/def.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/put/modifier/incr_lookup.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/put/modifier/insert.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/put/modifier/keyword.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/put/modifier/modifier.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/put/modifier/push.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/put/modifier/push_back.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/put/modifier/push_front.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/put/modifier/repeat.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/put/modifier/xxx.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/put/put.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/put/range/
   sandbox/statistics/support/boost/assign/v2/put/range/adaptor.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/put/range/convert.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/put/range/modifier/
   sandbox/statistics/support/boost/assign/v2/put/range/modifier/copy.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/put/range/modifier/deduce.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/put/range/modifier/modifier.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/put/range/modifier/put.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/put/range/modifier/range.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/put/range/range.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/put/sub/
   sandbox/statistics/support/boost/assign/v2/put/sub/csv.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/put/sub/make.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/put/sub/sub.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/put/wrapper/
   sandbox/statistics/support/boost/assign/v2/put/wrapper/crtp.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/put/wrapper/make.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/put/wrapper/wrapper.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/ref/
   sandbox/statistics/support/boost/assign/v2/ref/anon/
   sandbox/statistics/support/boost/assign/v2/ref/anon/anon.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/ref/anon/csv/
   sandbox/statistics/support/boost/assign/v2/ref/anon/csv/assign_copy.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/ref/anon/csv/assign_rebind.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/ref/anon/csv/assign_xxx.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/ref/anon/csv/csv.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/ref/anon/csv/make.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/ref/anon/csv/nth_result_of.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/ref/anon/csv/pp.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/ref/anon/generic/
   sandbox/statistics/support/boost/assign/v2/ref/anon/generic/cont.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/ref/anon/generic/fwd.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/ref/anon/generic/generic.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/ref/anon/generic/make.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/ref/anon/generic/nth_result_of.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/ref/anon/generic/policy.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/ref/anon/generic/traits.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/ref/anon/unary/
   sandbox/statistics/support/boost/assign/v2/ref/anon/unary/assign_copy.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/ref/anon/unary/assign_rebind.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/ref/anon/unary/assign_xxx.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/ref/anon/unary/make.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/ref/anon/unary/nth_result_of.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/ref/anon/unary/tag2.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/ref/anon/unary/unary.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/ref/detail/
   sandbox/statistics/support/boost/assign/v2/ref/detail/convert_traits/
   sandbox/statistics/support/boost/assign/v2/ref/detail/convert_traits/add_const.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/ref/detail/convert_traits/checking.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/ref/detail/convert_traits/distinct_values.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/ref/detail/convert_traits/result.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/ref/detail/convert_traits/twin_values.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/ref/detail/fusion_list/
   sandbox/statistics/support/boost/assign/v2/ref/detail/fusion_list/assign_array.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/ref/detail/fusion_list/container.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/ref/detail/fusion_list/fusion_list.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/ref/detail/fusion_list/fwd.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/ref/detail/fusion_list/make.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/ref/detail/fusion_list/nth_result_of.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/ref/detail/unwrap/
   sandbox/statistics/support/boost/assign/v2/ref/detail/unwrap/iterator.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/ref/detail/unwrap/range.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/ref/detail/unwrap/reference.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/ref/fusion/
   sandbox/statistics/support/boost/assign/v2/ref/fusion/assign_array.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/ref/fusion/assign_copy.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/ref/fusion/assign_rebind.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/ref/fusion/assign_xxx.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/ref/fusion/container.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/ref/fusion/fusion.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/ref/fusion/fwd.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/ref/fusion/head_holder.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/ref/fusion/link_holder.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/ref/fusion/make.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/ref/fusion/most_const.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/ref/fusion/nil_arg.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/ref/fusion/nth_result_of.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/ref/fusion/policy.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/ref/fusion/root.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/ref/fusion_matrix/
   sandbox/statistics/support/boost/assign/v2/ref/fusion_matrix/container.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/ref/fusion_matrix/fusion_matrix.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/ref/fusion_matrix/fwd.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/ref/fusion_matrix/nth_result_of.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/ref/ref.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/ref/static_array/
   sandbox/statistics/support/boost/assign/v2/ref/static_array/alloc/
   sandbox/statistics/support/boost/assign/v2/ref/static_array/alloc/alloc.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/ref/static_array/alloc/fast_alloc.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/ref/static_array/alloc/fast_alloc_fwd.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/ref/static_array/alloc/lazy_alloc.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/ref/static_array/alloc/lazy_alloc_fwd.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/ref/static_array/interface.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/ref/static_array/static_array.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/ref/wrapper/
   sandbox/statistics/support/boost/assign/v2/ref/wrapper/base.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/ref/wrapper/copy.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/ref/wrapper/crtp.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/ref/wrapper/deduce_assign_tag.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/ref/wrapper/framework.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/ref/wrapper/rebind.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/ref/wrapper/wrapper.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/v2.hpp   (contents, props changed)
Added: sandbox/statistics/support/boost/assign/v2/anon/anon.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/anon/anon.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,17 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_ANON_ANON_ER_2010_HPP
+#define BOOST_ASSIGN_V2_ANON_ANON_ER_2010_HPP
+
+#include <boost/assign/v2/anon/make.hpp>
+#include <boost/assign/v2/anon/cont.hpp>
+#include <boost/assign/v2/anon/csv.hpp>
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/anon/cont.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/anon/cont.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,190 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_ANON_CONT_ER_2010_HPP
+#define BOOST_ASSIGN_V2_ANON_CONT_ER_2010_HPP
+#include <deque>
+#include <boost/range/iterator.hpp>
+#include <boost/range/begin.hpp>
+#include <boost/range/end.hpp>
+#include <boost/range/size.hpp>
+#include <boost/range/size_type.hpp>
+#include <boost/range/iterator_range.hpp> //iterator_range_detail::
+#include <boost/assign/v2/put/put.hpp>
+#include <boost/assign/v2/put/range/range.hpp>
+#include <boost/assign/v2/put/generic/result_of_modulo.hpp>
+#include <boost/assign/v2/put/generic/crtp.hpp>
+#include <boost/assign/v2/detail/relational_op/relational_op.hpp>
+
+namespace boost{
+namespace assign{
+namespace v2{
+namespace anon_aux{
+
+	template<typename T,typename F,typename Tag> class cont;
+
+}// anon_aux
+namespace result_of_modulo{
+	
+    template<typename T,typename F,typename Tag>
+    struct new_fun<anon_aux::cont<T,F,Tag> >
+    {
+
+    	template<typename F1>
+        struct apply{ typedef anon_aux::cont<T, F1, Tag> type; };
+        
+    };
+
+    template<typename T,typename F,typename Tag>
+    struct new_modifier<anon_aux::cont<T,F,Tag> >
+    {
+
+    	template<typename NewTag>
+        struct apply{ typedef anon_aux::cont<T, F, NewTag> type; };
+        
+    };
+    
+}//result_of_modulo
+namespace anon_aux{
+
+	template<typename T>
+    struct impl{ typedef std::deque<T> type; };
+
+	template<typename T,typename F,typename Tag>
+    struct cont_modifier_traits
+    { };
+
+
+	template<typename T,typename F,typename Tag>
+	class cont : 
+    	public relational_op_aux::crtp< cont<T,F,Tag> >,
+        public put_aux::crtp< 
+        	typename anon_aux::impl<T>::type, F, Tag,
+            cont<T,F,Tag>,
+            cont_modifier_traits<T,F,Tag> 
+        >
+    {
+        typedef typename anon_aux::impl<T>::type impl_;
+        typedef cont_modifier_traits<T,F,Tag> modifier_traits_;
+        typedef put_aux::crtp< impl_, F, Tag, cont, modifier_traits_> put_crtp_;
+    
+		typedef put_aux::modifier<Tag> modifier_;
+    
+    	public:
+    
+    	typedef T value_type;
+        typedef typename boost::range_size<impl_>::type size_type;
+		typedef typename boost::range_iterator<impl_>::type iterator;
+        typedef typename boost::range_iterator<
+        	const impl_>::type const_iterator;
+
+		// Construct
+        cont(){}
+        explicit cont(const F& f) : put_crtp_( f ){}
+        explicit cont(impl_ const& v, F const& f): put_crtp_( f ), impl( v )
+        {
+        	// Required by crtp when Tag or F is modified.
+        }
+
+		explicit cont( impl_ const& v, F const& f, modifier_ const& m ) 
+        	: put_crtp_( f, m ), impl( v )
+        {
+        	// Required by crtp when Tag or F is modified.
+        }
+        
+        // Deque interface
+		iterator begin(){ 
+        	return boost::begin( this->impl ); 
+        }
+		iterator end(){ 
+        	return boost::end( this->impl ); 
+        }
+		const_iterator begin()const{ 
+        	return boost::begin( this->impl ); 
+        }
+		const_iterator end()const{ 
+        	return boost::end( this->impl ); 
+        }
+
+		typedef typename impl_::reference reference;
+		typedef typename impl_::const_reference const_reference;
+		typedef typename impl_::difference_type difference_type;
+
+		size_type size()const{ 
+        	return this->unwrap().size(); 
+        }
+		size_type max_size()const{ 
+        	return this->unwrap().max_size(); 
+        }
+		bool empty()const{ 
+        	return this->unwrap().empty(); 
+        }
+		reference operator[](size_type n){ 
+        	return this->unwrap()[n]; 
+        }
+		const_reference operator[](size_type n)const{ 
+        	return this->unwrap()[n]; 
+        }
+		reference front(){ 
+        	return this->unwrap().front(); 
+        }
+		const_reference front()const{ 
+        	return this->unwrap().front(); 
+        }
+		reference back(){ 
+        	return this->unwrap().back(); 
+        }
+		const_reference back()const{ 
+        	return this->unwrap().back(); 
+        }
+		void pop_front(){ 
+        	this->unwrap().pop_front(); 
+        }
+		void pop_back(){ 
+        	this->unwrap().pop_back(); 
+        }
+		void swap(cont& that){ 
+        	this->unwrap().swap( that.unwrap() ); 
+        }
+
+		// Note : the modifiers such as push_back() are ommitted as they 
+        // accessible through the put interface.
+
+		// Convert
+
+		BOOST_ASSIGN_V2_CONVERT_CONVERT_MF
+		BOOST_ASSIGN_V2_CONVERT_OPERATOR_MF
+
+		impl_& unwrap()const{ return this->impl; }
+        
+        // Relational op
+
+		template<typename R>
+        bool equal_to(const R& r)const{
+         	return ::boost::iterator_range_detail::equal( 
+            	(*this), r );
+		}
+
+		template<typename R>
+        bool less_than(const R& r)const{
+         	return ::boost::iterator_range_detail::less_than( 
+            	(*this), r );
+		}
+
+        protected:
+        mutable impl_ impl;
+                
+    };
+
+}// anon_aux
+}// v2
+}// assign
+}// boost
+
+#endif
\ No newline at end of file
Added: sandbox/statistics/support/boost/assign/v2/anon/csv.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/anon/csv.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,49 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_ANON_CSV_ER_2010_HPP
+#define BOOST_ASSIGN_V2_ANON_CSV_ER_2010_HPP
+#include <boost/preprocessor/repetition/enum_params.hpp>
+#include <boost/preprocessor/repetition/repeat.hpp>
+#include <boost/preprocessor/repetition/repeat_from_to.hpp>
+#include <boost/preprocessor/arithmetic/inc.hpp>
+
+#include <boost/assign/v2/detail/keyword/nil.hpp>
+#include <boost/assign/v2/detail/config/limit_csv_arity.hpp>
+
+#include <boost/assign/v2/anon/make.hpp>
+#include <boost/assign/v2/anon/cont.hpp>
+
+namespace boost{
+namespace assign{
+namespace v2{
+
+#define MACRO1(z, i, data) ( BOOST_PP_CAT(_, i) )
+#define MACRO2(z, N, data)\
+	template<typename T>\
+    typename result_of::anon<T>::type\
+    csv_anon( BOOST_PP_ENUM_PARAMS(N, T const & _) )\
+    {\
+        return anon<T>( v2::_nil) BOOST_PP_REPEAT(N, MACRO1, ~ );\
+    }\
+/**/
+BOOST_PP_REPEAT_FROM_TO(
+	1, 
+    BOOST_PP_INC(BOOST_ASSIGN_V2_LIMIT_CSV_ARITY),
+    MACRO2,
+    ~
+)
+#undef MACRO1
+#undef MACRO2
+
+}// v2
+}// assign
+}// boost
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/anon/make.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/anon/make.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,49 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_ANON_MAKE_ER_2010_HPP
+#define BOOST_ASSIGN_V2_ANON_MAKE_ER_2010_HPP
+#include <boost/mpl/bool.hpp>
+#include <boost/mpl/assert.hpp>
+#include <boost/utility/enable_if.hpp>
+#include <boost/type_traits/remove_cv.hpp>
+#include <boost/assign/v2/detail/keyword/nil.hpp>
+#include <boost/assign/v2/anon/cont.hpp>
+
+namespace boost{
+namespace assign{
+namespace v2{
+namespace result_of{
+
+	template<typename T>
+    struct anon
+    {
+    	typedef typename boost::remove_cv<T>::type t_;
+    	typedef typename anon_aux::impl<t_>::type cont_;
+        typedef result_of::put<cont_> traits_;
+        typedef typename traits_::f_ f_;
+        typedef typename traits_::modifier_tag_ modifier_tag_;
+        typedef anon_aux::cont<t_,f_,modifier_tag_> type;
+    };
+
+}// result_of
+
+	template<typename T>
+    typename result_of::anon<T>::type
+	anon( keyword_aux::nil )
+    {
+    	typedef typename result_of::anon<T>::type result_;
+        return result_();
+    }
+
+}// v2
+}// assign
+}// boost
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/chain/aux_/adaptor.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/chain/aux_/adaptor.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,65 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2009 Neil Groves                                          //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_RANGE_CHAIN_AUX_ADAPTOR_ER_2010_HPP
+#define BOOST_ASSIGN_V2_RANGE_CHAIN_AUX_ADAPTOR_ER_2010_HPP
+#include <boost/mpl/void.hpp>
+
+namespace boost{
+namespace assign{
+namespace v2{
+namespace chain_aux{
+
+	typedef boost::mpl::void_ void_;
+
+	// Tag1 controls conversion. Seet type_traits/meta_convert.hpp
+
+    template<typename U,typename Tag1 = use_default,typename Tag2 = void_>
+    struct adaptor1
+    {
+        adaptor1( U& r ) : value( r ){}
+        mutable U& value;
+    };
+
+    template<
+    	typename Tag1 = use_default,
+        typename Tag2 = void_
+    >
+    struct adaptor2
+    {
+    
+        adaptor2(){}
+    
+        template<typename U>
+        struct result{ 
+           typedef chain_aux::adaptor1<U, Tag1, Tag2> type; 
+           static type call(U& u){ return type( u ); }
+        };
+    
+        template<typename R>
+        typename result<R>::type
+        operator()(R& r)const{ 
+        	return result<R>::call ( r ); 
+        }
+
+        template<typename R>
+        typename result<R const>::type
+        operator()(R const& r)const{ 
+        	return result<R const>::call( r ); 
+        }
+        
+    };
+    
+}// chain_aux
+}// v2
+}// assign
+}// boost
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/chain/aux_/bitwise_or.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/chain/aux_/bitwise_or.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,82 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2009 Neil Groves                                          //
+//  Copyright (C) 2010 Manuel Peinado Gallego                               //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_RANGE_CHAIN_AUX_BITWISE_OR_ER_2010_HPP
+#define BOOST_ASSIGN_V2_RANGE_CHAIN_AUX_BITWISE_OR_ER_2010_HPP
+#include <boost/mpl/void.hpp>
+#include <boost/assign/v2/chain/traits/result.hpp>
+#include <boost/assign/v2/chain/aux_/adaptor.hpp>
+#include <boost/assign/v2/chain/aux_/sub.hpp>
+
+// Design:
+// - The original design is boost::chain in RangeEx
+// - ER modified as follows:
+// 	- sets the underlying iterator's Reference to one which both inputs are
+// 	convertible to.
+// 	- Constness is determined by that of the elements in each range, not that
+//  of the range.
+// - Finally, MPG proposed a way to compose chains http://gist.github.com/287791
+// and a variant of it is used below.
+
+namespace boost{
+namespace assign{
+namespace v2{
+namespace adaptor{
+namespace{
+	const chain_aux::adaptor2<> _chain = chain_aux::adaptor2<>();
+}
+}// adaptor
+namespace result_of{
+
+    template<typename R1, typename R2, typename Tag = use_default>
+    struct chain : chain_aux::result<R1, R2, Tag>{};
+
+}// result_of
+namespace chain_aux{
+
+#define BOOST_ASSIGN_V2_FRAMEWORK_CHAIN(U1) \
+    template<typename R1,typename U2,typename Tag> \
+    typename chain_aux::result<U1, U2, Tag>::type \
+    operator|(U1 & r1, chain_aux::adaptor1<U2, Tag> const & h) \
+    { \
+        typedef chain_aux::result<U1, U2, Tag> caller_; \
+        return chain_aux::make_sub( caller_::call( r1, h.value ) ); \
+    } \
+\
+/**/
+
+BOOST_ASSIGN_V2_FRAMEWORK_CHAIN(R1      )
+BOOST_ASSIGN_V2_FRAMEWORK_CHAIN(R1 const)
+#undef BOOST_ASSIGN_V2_FRAMEWORK_CHAIN
+
+}// chain_aux
+
+//#define BOOST_ASSIGN_V2_FRAMEWORK_CHAIN(U1, U2) \
+//    template<typename Tag,typename R1,typename R2> \
+//    typename chain_aux::result<U1, U2, Tag>::type \
+//    chain(U1 & r1, U2 & r2) \
+//    { \
+//        return r1 | adaptor::_chain( r2 ); \
+//    } \
+//\
+///**/
+
+//BOOST_ASSIGN_V2_FRAMEWORK_CHAIN(R1      , R2        )
+//BOOST_ASSIGN_V2_FRAMEWORK_CHAIN(R1      , R2 const  )
+//BOOST_ASSIGN_V2_FRAMEWORK_CHAIN(R1 const, R2        )
+//BOOST_ASSIGN_V2_FRAMEWORK_CHAIN(R1 const, R2 const  )
+//#undef BOOST_ASSIGN_V2_FRAMEWORK_CHAIN
+
+}// v2
+}// assign
+}// boost
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/chain/aux_/logical_and.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/chain/aux_/logical_and.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,44 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2009 Neil Groves                                          //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_CHAIN_FUNCTION_LOGICAL_AND_ER_2010_HPP
+#define BOOST_ASSIGN_V2_CHAIN_FUNCTION_LOGICAL_AND_ER_2010_HPP
+#include <boost/assign/v2/chain/aux_/bitwise_or.hpp>
+#include <boost/assign/v2/chain/traits/result.hpp>
+
+// This is an alternative syntax for chaining
+
+namespace boost{
+namespace assign{
+namespace v2{
+
+#define BOOST_ASSIGN_V2_CHAIN_OPERATOR(U1, U2) \
+template<typename R1,typename R2> \
+typename chain_aux::result< \
+    U1, \
+    U2  \
+>::type \
+operator&&(U1& r1, U2 & r2) \
+{ \
+    return r1 | adaptor::_chain( r2 ); \
+} \
+/**/
+
+BOOST_ASSIGN_V2_CHAIN_OPERATOR( R1      , R2       )
+BOOST_ASSIGN_V2_CHAIN_OPERATOR( R1      , R2 const )
+BOOST_ASSIGN_V2_CHAIN_OPERATOR( R1 const, R2       )
+BOOST_ASSIGN_V2_CHAIN_OPERATOR( R1 const, R2 const )
+#undef BOOST_ASSIGN_V2_CHAIN_OPERATOR
+
+}// v2
+}// assign
+}// boost
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/chain/aux_/sub.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/chain/aux_/sub.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,60 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2009 Neil Groves                                          //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_RANGE_CHAIN_AUX_SUB_ER_2010_HPP
+#define BOOST_ASSIGN_V2_RANGE_CHAIN_AUX_SUB_ER_2010_HPP
+#include <boost/range/iterator_range.hpp> //iterator_range_detail::
+#include <boost/assign/v2/put/range/convert.hpp>
+#include <boost/assign/v2/detail/relational_op/relational_op.hpp>
+
+namespace boost{
+namespace assign{
+namespace v2{
+namespace chain_aux{
+
+    // Adds a conversion capability to a range
+    //
+    // TODO : for now relational_op is disabled as conflicts with
+    // iterator_range's implem.
+    template<typename R>
+    struct sub : R //, relational_op_aux::crtp< sub<R> >
+    {
+
+        typedef R super_t;
+
+        sub(){}
+        sub(super_t const& s):super_t( s ){}
+
+        BOOST_ASSIGN_V2_CONVERT_CONVERT_MF
+        BOOST_ASSIGN_V2_CONVERT_OPERATOR_MF
+
+        // Relational op
+		//template<typename R1>
+        //bool equal_to(const R1& r)const{
+        // 	return ::boost::iterator_range_detail::equal(
+        //    	(*this), r );
+		//}
+		//template<typename R1>
+        //bool less_than(const R& r)const{
+        // 	return ::boost::iterator_range_detail::less_than(
+        //    	(*this), r );
+		//}
+
+    };
+
+	template<typename R>
+    sub<R> make_sub(const R& r){ return sub<R>( r ); }
+
+}// chain_aux
+}// v2
+}// assign
+}// boost
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/chain/chain.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/chain/chain.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,23 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_CHAIN_CHAIN_ER_2010_HPP
+#define BOOST_ASSIGN_V2_CHAIN_CHAIN_ER_2010_HPP
+#include <boost/assign/v2/chain/traits/result.hpp>
+#include <boost/assign/v2/chain/aux_/bitwise_or.hpp>
+#include <boost/assign/v2/chain/aux_/logical_and.hpp>
+
+// Usage
+//	using namespace boost::assign::v2;
+//	v = r1 && r2 && r3;
+//  using namespace adaptor;
+//  w = r1 | chain( r2 ) | chain( r3 );
+//  BOOST_ASSERT(v == w);
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/chain/checking/distinct_values.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/chain/checking/distinct_values.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,73 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_CHAIN_CHECKING_DISTINCT_VALUES_ER_2010_HPP
+#define BOOST_ASSIGN_V2_CHAIN_CHECKING_DISTINCT_VALUES_ER_2010_HPP
+#include <vector>
+#include <boost/utility/enable_if.hpp>
+#include <boost/type_traits/is_same.hpp>
+#include <boost/assign/v2/detail/checking/constants.hpp>
+#include <boost/assign/v2/detail/checking/container.hpp>
+#include <boost/assign/v2/chain/chain.hpp>
+
+namespace boost{
+namespace assign{ 
+namespace v2{
+namespace checking{
+namespace chain{
+namespace distinct_values{
+
+// If the value types of the two ranges differ, their references must be 
+// converted to value_type. In particular, lvalue cannot be preserved.
+
+#define m(T1,T2)															   \
+    template<typename T>													   \
+    void do_check(typename boost::enable_if<boost::is_same<T,T1> >::type* = 0) \
+    {																		   \
+        typedef T1 t1_;														   \
+        typedef T2 t2_;														   \
+        typedef std::vector<T1> vec1_;                                         \
+        typedef std::vector<T2> vec2_;                                         \
+        vec1_ vec1, vec3;                                                      \
+        vec2_ vec2;                                                            \
+        {																       \
+            namespace ns = v2::checking::constants;			                   \
+            vec1.push_back( ns::a ); 									       \
+            vec1.push_back( ns::b );									       \
+            vec2.push_back( ns::c ); 									       \
+            vec2.push_back( ns::d );									       \
+            vec2.push_back( ns::e );									       \
+            vec3.push_back( ns::f ); 									       \
+            vec3.push_back( ns::g ); 									       \
+            vec3.push_back( ns::h );									       \
+        }																       \
+        namespace chk = checking::container;                                   \
+        {                                                                      \
+        	using namespace adaptor;										   \
+    		chk::do_check( vec1 | _chain( vec2 ) | _chain( vec3 ) );           \
+        }                                                                      \
+    }														                   \
+/**/
+
+
+m(short  , int)
+m(int    , long)
+m(float  , double)
+m(double , long double)
+
+#undef m
+
+}// distinct_values
+}// chain
+}// checking
+}// v2
+}// assign
+}// boost
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/chain/checking/twin_values.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/chain/checking/twin_values.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,180 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_CHAIN_CHECKING_TWIN_VALUES_ER_2010_HPP
+#define BOOST_ASSIGN_V2_CHAIN_CHECKING_TWIN_VALUES_ER_2010_HPP
+#include <boost/static_assert.hpp>
+#include <vector>
+#include <boost/mpl/eval_if.hpp>
+#include <boost/mpl/identity.hpp>
+#include <boost/assign/v2/detail/checking/range.hpp>
+#include <boost/assign/v2/ref/detail/unwrap/range.hpp>
+#include <boost/assign/v2/ref/wrapper/copy.hpp>
+#include <boost/assign/v2/chain/traits/use_lvalue.hpp>
+#include <boost/assign/v2/chain/chain.hpp>
+
+namespace boost{
+namespace assign{ 
+namespace v2{
+namespace checking{
+namespace chain{
+namespace twin_values{
+
+#define BOOST_ASSIGN_V2_CHAIN_CHECKING_mpl_inner( the_value )\
+    typedef v2::chain_traits::use_lvalue<cr1_, cr2_ >  use_lvalue_; \
+    BOOST_STATIC_ASSERT( use_lvalue_::value == the_value ); \
+    typedef typename boost::mpl::eval_if_c< \
+        the_value, \
+        boost::mpl::identity<boost::mpl::void_>, \
+        v2::result_of::chain<cr1_, cr2_> \
+    >::type result_; \
+/**/
+
+#define BOOST_ASSIGN_V2_CHAIN_CHECKING_mpl(qual_v1, qual_e2, qual_v2, \
+                                                                  the_value )\
+   { \
+        typedef std::vector<T> qual_v1 vec1_; \
+		typedef typename assign::v2::ref::type_traits::copy_wrapper< \
+        	T qual_e2>::type w_; \
+        typedef std::vector<w_> qual_v2 vec2_; \
+		typedef typename ref::result_of::unwrap_range<vec1_>::type r1_; \
+		typedef typename ref::result_of::unwrap_range<vec2_>::type r2_; \
+        {  \
+            typedef r1_       cr1_;\
+            typedef r2_       cr2_;\
+            BOOST_ASSIGN_V2_CHAIN_CHECKING_mpl_inner(the_value) \
+        } \
+        {  \
+            typedef r1_       cr1_;\
+            typedef r2_       cr2_;\
+            BOOST_ASSIGN_V2_CHAIN_CHECKING_mpl_inner(the_value) \
+        } \
+        {  \
+            typedef r1_       cr1_;\
+            typedef r2_ const cr2_;\
+            BOOST_ASSIGN_V2_CHAIN_CHECKING_mpl_inner(the_value) \
+        } \
+        {  \
+            typedef r1_ const cr1_;\
+            typedef r2_       cr2_;\
+            BOOST_ASSIGN_V2_CHAIN_CHECKING_mpl_inner(the_value) \
+        } \
+        {  \
+            typedef r1_ const cr1_;\
+            typedef r2_ const cr2_;\
+            BOOST_ASSIGN_V2_CHAIN_CHECKING_mpl_inner(the_value) \
+        } \
+    } \
+   /**/
+
+    template<typename T>
+    void do_check()
+    {  	
+    	// mpl checks
+        {
+        	typedef std::vector<T> vec_;
+        	typedef v2::result_of::chain<vec_,vec_> caller1_;
+        	typedef typename caller1_::type range1_;
+        	typedef typename boost::range_reference<range1_>::type ref1_;
+        	typedef boost::is_same<ref1_,T&> is_same1_;
+        	BOOST_STATIC_ASSERT(is_same1_::value);
+        	typedef v2::result_of::chain<range1_ const,vec_> caller2_;
+        	typedef typename caller2_::type range2_;
+        	typedef typename boost::range_reference<range2_>::type ref2_;
+        	typedef boost::is_same<ref2_,T &> is_same2_; 
+        	BOOST_STATIC_ASSERT(is_same2_::value);
+	    }
+//                                (qual_v1, qual_e2 , qual_v2 , the_value)
+BOOST_ASSIGN_V2_CHAIN_CHECKING_mpl(       ,         ,         , true     )
+BOOST_ASSIGN_V2_CHAIN_CHECKING_mpl(       ,         , const   , true     )
+BOOST_ASSIGN_V2_CHAIN_CHECKING_mpl(       , const   ,         , false    )
+BOOST_ASSIGN_V2_CHAIN_CHECKING_mpl(       , const   , const   , false    )
+BOOST_ASSIGN_V2_CHAIN_CHECKING_mpl( const ,         ,         , false    )
+BOOST_ASSIGN_V2_CHAIN_CHECKING_mpl( const ,         , const   , false    )
+BOOST_ASSIGN_V2_CHAIN_CHECKING_mpl( const , const   ,         , false    )
+BOOST_ASSIGN_V2_CHAIN_CHECKING_mpl( const , const   , const   , false    )
+
+        // runtime checks
+    	{    
+		    typedef std::vector<T> vt_;
+            vt_ vt1( 2 ), vt2( 3 ), vt3( 3 );
+			vt_ vt;
+    		{
+        		namespace ns = v2::checking::constants;
+                vt.push_back( ns::a );
+                vt.push_back( ns::b );
+                vt.push_back( ns::c );
+                vt.push_back( ns::d );
+                vt.push_back( ns::e );
+                vt.push_back( ns::f );
+                vt.push_back( ns::g );
+                vt.push_back( ns::h );
+                {
+                	using namespace adaptor;
+                	boost::copy( 
+                		vt, 
+                    	boost::begin( vt1 | _chain( vt2 ) | _chain( vt3 ))
+                	);
+                }
+                {
+                	using namespace adaptor;
+                	typedef v2::container_tag::range tag_;
+                    v2::checking::do_check( 
+                    	tag_(), 
+                        vt1 | _chain( vt2 ) | _chain( vt3 )
+                    );
+                }
+    		}
+            {
+	            T a1 , b1, c1, d1, e1, f1, g1, h1;
+
+	            typedef typename ref::type_traits::copy_wrapper<T>::type w_;
+    	        typedef boost::is_reference_wrapper<w_> is_;
+                
+                // TODO std::vector causes problems.
+                boost::array<int, 2> vw1;
+                boost::array<int, 3> vw2, vw3;
+                {
+                	vw1[ 0 ] = a1 ;
+                	vw1[ 1 ] = b1 ;
+                	vw2[ 0 ] = c1 ;
+                	vw2[ 1 ] = d1 ;
+                	vw2[ 2 ] = e1 ;
+                	vw3[ 0 ] = f1 ;
+                	vw3[ 1 ] = g1 ;
+                	vw3[ 2 ] = h1 ;
+				}
+				using namespace adaptor;
+                boost::copy( 
+                	vt, 
+                    boost::begin( vw1 | _chain( vw2 ) | _chain( vw3 ) )
+                );
+                {
+                	typedef v2::container_tag::range tag_;
+                    v2::checking::do_check( 
+                    	tag_(), 
+                        vw1 | _chain( vw2 ) | _chain( vw3 )
+                    );
+                }
+			}
+        }// runtime checks
+    }// do_check
+
+}// twin_values
+}// chain
+}// checking
+}// v2
+}// assign
+}// boost
+
+#undef BOOST_ASSIGN_V2_CHAIN_CHECKING_run
+#undef BOOST_ASSIGN_V2_CHAIN_CHECKING_mpl
+#undef BOOST_ASSIGN_V2_CHAIN_CHECKING_mpl_inner
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/chain/traits/iterator.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/chain/traits/iterator.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,61 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_RANGE_CHAIN_TRAITS_ITERATOR_ER_2010_HPP
+#define BOOST_ASSIGN_V2_RANGE_CHAIN_TRAITS_ITERATOR_ER_2010_HPP
+#include <boost/mpl/apply.hpp>
+#include <boost/type_traits/remove_reference.hpp>
+#include <boost/iterator/iterator_traits.hpp>
+#include <boost/range/detail/chain_iterator.hpp>
+#include <boost/range/detail/demote_iterator_traversal_tag.hpp>
+#include <boost/assign/v2/detail/type_traits/meta_convert.hpp>
+
+namespace boost{
+namespace assign{
+namespace v2{
+namespace chain_traits{
+
+	template<
+    	typename It1, 
+        typename It2,
+        typename Tag
+    >
+	struct iterator
+	{
+        typedef typename boost::iterator_reference<It1>::type ref1_;
+        typedef typename boost::iterator_reference<It2>::type ref2_;
+
+        typedef assign::v2::type_traits::meta_convert<Tag> convert_;
+        typedef typename boost::mpl::apply2<
+            convert_,
+            ref1_,
+            ref2_
+        >::type reference;
+        
+        typedef typename boost::remove_reference<reference>::type value_type;
+    
+    	typedef boost::range_detail::chain_iterator<
+        	It1,
+        	It2,
+        	value_type, 	
+        	reference,
+			// TODO should be able to use default 
+            // problems arise because traits are probably not defined for 
+            // complicated ranges
+            boost::single_pass_traversal_tag  
+    	> type;
+
+	};
+
+}// chain_traits
+}// v2
+}// assign
+}// boost
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/chain/traits/range.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/chain/traits/range.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,59 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_CHAIN_TRAITS_RANGE_ER_2010_HPP
+#define BOOST_ASSIGN_V2_CHAIN_TRAITS_RANGE_ER_2010_HPP
+#include <boost/concept/assert.hpp>
+#include <boost/range/iterator_range.hpp>
+#include <boost/range/iterator.hpp>
+#include <boost/assign/v2/chain/traits/iterator.hpp>
+
+namespace boost{
+namespace assign{
+namespace v2{
+namespace chain_traits{
+
+    template<typename R1, typename R2, template<typename> class F, typename Tag>
+    struct range{
+
+        typedef typename chain_traits::iterator<
+            typename F<R1>::type,
+            typename F<R2>::type,
+            Tag
+        >::type iterator_t;
+	    typedef boost::iterator_range< iterator_t > type;
+        
+        static type call(R1& r1, R2& r2)
+        {
+            BOOST_CONCEPT_ASSERT((SinglePassRangeConcept<R1>));
+            BOOST_CONCEPT_ASSERT((SinglePassRangeConcept<R2>));
+			namespace ns = boost::range_detail;
+            typedef ns::chain_iterator_begin_tag begin_tag_;
+            typedef ns::chain_iterator_end_tag end_tag_;
+			return type(
+				iterator_t(r1, r2, begin_tag_()),
+				iterator_t(r1, r2, end_tag_())
+        	);
+        }
+    };
+
+    template<typename R1, typename R2, typename Tag>
+    struct range_l
+    	: chain_traits::range< R1, R2, boost::range_iterator,Tag>{};
+    
+    template<typename R1, typename R2, typename Tag>
+    struct range_r
+    	: chain_traits::range<R1, R2, boost::range_const_iterator,Tag>{};
+
+}// chain_traits
+}// v2
+}// assign
+}// boost
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/chain/traits/result.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/chain/traits/result.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,47 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_CHAIN_TRAITS_RESULT_ER_2010_HPP
+#define BOOST_ASSIGN_V2_CHAIN_TRAITS_RESULT_ER_2010_HPP
+#include <boost/mpl/eval_if.hpp>
+#include <boost/mpl/identity.hpp>
+#include <boost/assign/v2/chain/traits/use_lvalue.hpp>
+#include <boost/assign/v2/chain/traits/range.hpp>
+#include <boost/assign/v2/chain/aux_/sub.hpp>
+
+namespace boost{
+namespace assign{
+namespace v2{
+namespace chain_aux{
+
+    template<typename R1,typename R2,typename Tag = use_default> 
+    struct result{
+    	typedef typename  boost::mpl::eval_if<
+        	chain_traits::use_lvalue<R1,R2,Tag>,
+        	boost::mpl::identity< chain_traits::range_l<R1, R2, Tag> >,
+        	boost::mpl::identity< chain_traits::range_r<R1, R2, Tag> >
+    	>::type caller_;
+        
+        typedef typename caller_::type super_;
+        typedef chain_aux::sub<super_> type;
+        
+        static type call(R1& r1, R2& r2)
+        {
+            return type(
+                caller_::call( r1, r2 )
+            );
+        }
+    };
+
+}// chain_aux
+}// v2
+}// assign
+}// boost
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/chain/traits/use_lvalue.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/chain/traits/use_lvalue.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,67 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_CHAIN_TRAITS_USE_LVALUE_ER_2010_HPP
+#define BOOST_ASSIGN_V2_CHAIN_TRAITS_USE_LVALUE_ER_2010_HPP
+#include <boost/config.hpp>
+#include <boost/mpl/and.hpp>
+#include <boost/mpl/eval_if.hpp>
+#include <boost/mpl/bool.hpp>
+#include <boost/mpl/identity.hpp>
+#include <boost/type_traits/remove_reference.hpp>
+#include <boost/type_traits/is_reference.hpp>
+#include <boost/type_traits/is_same.hpp>
+#include <boost/type_traits/is_const.hpp>
+#include <boost/range/reference.hpp>
+
+namespace boost{
+	struct use_default;
+namespace assign{
+namespace v2{
+namespace chain_traits{
+
+    // TODO use is_lvalue_iterator or is_read_iterator
+
+    template<typename U1,typename U2,typename Tag = use_default> 
+    struct use_lvalue
+    {
+    	
+        typedef typename boost::range_reference<U1>::type r1_;
+        typedef typename boost::range_reference<U2>::type r2_;
+        typedef boost::mpl::and_<
+            boost::is_reference<r1_>,
+            boost::is_reference<r2_>
+        > are_refs_;
+        
+        typedef boost::is_same<r1_,r2_> are_same_;
+        
+        typedef boost::mpl::and_<
+             are_refs_,
+             are_same_
+        > are_same_refs_;
+        
+        typedef boost::is_const<
+            typename boost::remove_reference<r1_>::type
+        > is_const_;
+        
+        typedef typename boost::mpl::eval_if<
+            is_const_,
+            boost::mpl::identity<boost::mpl::false_>,
+            are_same_refs_
+        >::type type;
+        
+        BOOST_STATIC_CONSTANT(bool, value = type::value);
+    };
+
+}// chain_traits
+}// v2
+}// assign
+}// boost
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/detail/checking/array.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/detail/checking/array.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,38 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_CHECKING_ARRAY_ER_2010_HPP
+#define BOOST_ASSIGN_V2_CHECKING_ARRAY_ER_2010_HPP
+#include <boost/assign/v2/detail/checking/check_equal.hpp>
+#include <boost/assign/v2/detail/checking/constants.hpp>
+#include <boost/assign/v2/detail/type_traits/container/is_static_array.hpp>
+
+namespace boost{                                                               
+namespace assign{ 
+namespace v2{
+namespace checking{ 
+
+    template<typename V>
+    void do_check(container_tag::static_array,V const& ar1)
+    {                                                                              
+        BOOST_ASSIGN_V2_CHECK_EQUAL( ar1.empty() , false );
+        V ar = ar1;
+        namespace ns = checking::constants;
+        ns::do_check(
+           ar[0],ar[1],ar[2],ar[3],
+           ar[4],ar[5],ar[6],ar[7]
+        );                           
+    }                                           
+
+}// checking
+}// v2
+}// assign
+}// boost    
+    
+#endif
Added: sandbox/statistics/support/boost/assign/v2/detail/checking/assert.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/detail/checking/assert.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,37 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_CHECKING_ASSERT_ER_2010_HPP
+#define BOOST_ASSIGN_V2_CHECKING_ASSERT_ER_2010_HPP
+#include <boost/type_traits/is_same.hpp>
+#include <boost/static_assert.hpp>
+
+namespace boost{                                                               
+namespace assign{ 
+namespace v2{
+namespace checking{ 
+
+	template<typename P>
+	void do_assert()
+    {
+    	BOOST_STATIC_ASSERT( P::value );
+    }
+
+    template<typename A,typename B>
+    void do_assert_is_same(){
+        typedef boost::is_same<A,B> pred_;
+        checking::do_assert<pred_>();
+	}
+    
+}// checking
+}// v2
+}// assign
+}// boost    
+    
+#endif
Added: sandbox/statistics/support/boost/assign/v2/detail/checking/check_convert.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/detail/checking/check_convert.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,19 @@
+#include <boost/assign/v2/detail/config/enable_cpp0x.hpp>
+
+// TODO find out why c++0x won't allow to = from;
+// Usage:
+//  using checking::container; // or maybe checking::array
+//  BOOST_ASSIGN_V2_check_convert
+
+#ifndef BOOST_ASSIGN_V2_check_convert
+#if BOOST_ASSIGN_V2_ENABLE_CPP0X
+#define BOOST_ASSIGN_V2_check_convert do_check( from.convert<to_>() );
+#else
+#define BOOST_ASSIGN_V2_check_convert \
+    do_check( from.convert<to_>() ); \
+    to_ to; to = from; \
+    do_check( to ); \
+/**/
+#endif
+#endif
+
Added: sandbox/statistics/support/boost/assign/v2/detail/checking/check_equal.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/detail/checking/check_equal.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,15 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_CHECK_EQUAL 
+#include <boost/assert.hpp>
+#define BOOST_ASSIGN_V2_CHECK_EQUAL( a , b ) BOOST_ASSERT( a == b )
+#endif
+
Added: sandbox/statistics/support/boost/assign/v2/detail/checking/checking.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/detail/checking/checking.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,25 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_DETAIL_CHECKING_CHECKING_ER_2010_HPP
+#define BOOST_ASSIGN_V2_DETAIL_CHECKING_CHECKING_ER_2010_HPP
+
+#include <boost/assign/v2/detail/checking/array.hpp>
+#include <boost/assign/v2/detail/checking/assert.hpp>
+#include <boost/assign/v2/detail/checking/check_equal.hpp>
+#include <boost/assign/v2/detail/checking/container.hpp>
+#include <boost/assign/v2/detail/checking/constants.hpp>
+#include <boost/assign/v2/detail/checking/deduce_check.hpp>
+#include <boost/assign/v2/detail/checking/fifo.hpp>
+#include <boost/assign/v2/detail/checking/lifo.hpp>
+#include <boost/assign/v2/detail/checking/map.hpp>
+#include <boost/assign/v2/detail/checking/range.hpp>
+#include <boost/assign/v2/detail/checking/relational_op.hpp>
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/detail/checking/constants.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/detail/checking/constants.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,94 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_CHECKING_CONSTANTS_ER_2010_HPP
+#define BOOST_ASSIGN_V2_CHECKING_CONSTANTS_ER_2010_HPP
+#include <boost/next_prior.hpp>
+#include <boost/range.hpp>
+#include <boost/array.hpp>
+#include <boost/numeric/conversion/converter.hpp>
+#include <boost/assign/v2/detail/checking/check_equal.hpp>
+
+namespace boost{                                                               
+namespace assign{ 
+namespace v2{
+namespace checking{ 
+namespace constants{                                               
+
+namespace {
+    // value            // rank
+    const int a = 1;    // 1
+    const int b = 5;    // 5
+    const int c = 3;    // 3
+    const int d = 4;    // 4
+    const int e = 2;    // 2
+    const int f = 9;    // 7
+    const int g = 0;    // 0
+    const int h = 7;    // 6
+}
+    // array    
+    template<typename T>
+    boost::array<T,8> make_array()
+    {                                              
+        typedef boost::array<T,8> ar_;
+        ar_ ar;
+        ar[0] = a; ar[1] = b; ar[2] = c;                                           
+        ar[3] = d; ar[4] = e; ar[5] = f;                                           
+        ar[6] = g; ar[7] = h;                                                      
+        return ar;
+    }    
+
+    namespace{
+       const boost::array<int,8> array = make_array<int>();
+    }
+    
+    // values 
+    template<typename T>
+    void do_check(
+        const T& a1,const T& b1,const T& c1,const T& d1,
+        const T& e1,const T& f1,const T& g1,const T& h1
+    )
+    {
+        BOOST_ASSIGN_V2_CHECK_EQUAL( a , a1 );
+        BOOST_ASSIGN_V2_CHECK_EQUAL( b , b1 );
+        BOOST_ASSIGN_V2_CHECK_EQUAL( c , c1 );
+        BOOST_ASSIGN_V2_CHECK_EQUAL( d , d1 ); 
+        BOOST_ASSIGN_V2_CHECK_EQUAL( e , e1 );
+        BOOST_ASSIGN_V2_CHECK_EQUAL( f , f1 ); 
+        BOOST_ASSIGN_V2_CHECK_EQUAL( g , g1 );
+        BOOST_ASSIGN_V2_CHECK_EQUAL( h , h1 );                                          
+    }                                    
+
+namespace sorted{
+
+    template<typename T>
+    void do_check(
+        const T& a1,const T& b1,const T& c1,const T& d1,
+        const T& e1,const T& f1,const T& g1,const T& h1
+    )
+    {
+        namespace ns = checking::constants;
+        BOOST_ASSIGN_V2_CHECK_EQUAL( a1, ns::g );
+        BOOST_ASSIGN_V2_CHECK_EQUAL( b1, ns::a );
+        BOOST_ASSIGN_V2_CHECK_EQUAL( c1, ns::e );
+        BOOST_ASSIGN_V2_CHECK_EQUAL( d1, ns::c );
+        BOOST_ASSIGN_V2_CHECK_EQUAL( e1, ns::d );
+        BOOST_ASSIGN_V2_CHECK_EQUAL( f1, ns::b );
+        BOOST_ASSIGN_V2_CHECK_EQUAL( g1, ns::h );
+        BOOST_ASSIGN_V2_CHECK_EQUAL( h1, ns::f );
+    }                                                                  
+
+}// sorted
+}// constants
+}// checking
+}// v2
+}// assign
+}// boost    
+    
+#endif
Added: sandbox/statistics/support/boost/assign/v2/detail/checking/container.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/detail/checking/container.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,47 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_CHECKING_CONTAINER_ER_2010_HPP
+#define BOOST_ASSIGN_V2_CHECKING_CONTAINER_ER_2010_HPP
+#include <boost/assign/v2/detail/checking/deduce_check.hpp>
+#include <boost/assign/v2/detail/checking/array.hpp>
+#include <boost/assign/v2/detail/checking/fifo.hpp>
+#include <boost/assign/v2/detail/checking/lifo.hpp>
+#include <boost/assign/v2/detail/checking/map.hpp>
+#include <boost/assign/v2/detail/checking/range.hpp>
+
+namespace boost{                                                               
+namespace assign{ 
+namespace v2{
+namespace checking{ 
+namespace container{
+
+    template<typename V>
+    void do_check(V const & v)
+    {  
+    	using namespace checking::constants; 
+        typedef typename checking::deduce_check<V>::type tag;
+        checking::do_check( tag(), v );
+	} 
+
+    template<typename V>
+    void do_check(V & v) // This is needed for operator[]
+    {  
+    	using namespace checking::constants; 
+        typedef typename checking::deduce_check<V>::type tag;
+        checking::do_check( tag(), v );
+	} 
+
+}// container
+}// checking
+}// v2
+}// assign
+}// boost    
+    
+#endif
Added: sandbox/statistics/support/boost/assign/v2/detail/checking/deduce_check.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/detail/checking/deduce_check.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,86 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_CHECKING_DEDUCE_TAG_ER_2010_HPP
+#define BOOST_ASSIGN_V2_CHECKING_DEDUCE_TAG_ER_2010_HPP
+#include <boost/assign/v2/detail/type_traits/container/is_fifo.hpp>
+#include <boost/assign/v2/detail/type_traits/container/is_lifo.hpp>
+#include <boost/assign/v2/detail/type_traits/container/is_map.hpp>
+#include <boost/assign/v2/detail/type_traits/container/is_sorted.hpp>
+#include <boost/assign/v2/detail/type_traits/container/is_static_array.hpp>
+#include <boost/assign/v2/detail/type_traits/container/is_range.hpp>
+#include <boost/assign/v2/detail/mpl/switch.hpp>
+ 
+namespace boost{
+namespace assign{
+namespace v2{
+namespace switch_tag{
+	struct deduce_check{};
+}// switch_tag
+namespace mpl{
+
+    template<>
+    struct case_<switch_tag::deduce_check,0> :
+        v2::mpl::wrap<
+            v2::container_tag::fifo,
+            v2::container_type_traits::is_fifo
+        >{};
+
+    template<>
+    struct case_<switch_tag::deduce_check,1> :
+        v2::mpl::wrap<
+            v2::container_tag::lifo,
+            v2::container_type_traits::is_lifo
+        >{};
+
+    template<>
+    struct case_<switch_tag::deduce_check,2> :
+        v2::mpl::wrap<
+            v2::container_tag::map,
+            v2::container_type_traits::is_map
+        >{};
+
+    template<>
+    struct case_<switch_tag::deduce_check,3> :
+        v2::mpl::wrap<
+            v2::container_tag::sorted,
+            v2::container_type_traits::is_sorted
+        >{};
+
+    template<>
+    struct case_<switch_tag::deduce_check,4> :
+        v2::mpl::wrap<
+            v2::container_tag::static_array,
+            v2::container_type_traits::is_static_array
+        >{};
+
+
+    template<>
+    struct case_<switch_tag::deduce_check,5> :
+        v2::mpl::wrap<
+        	container_tag::range
+        >{};
+
+
+}// mpl
+namespace checking{
+
+    template<typename T>
+    struct deduce_check : v2::mpl::switch_<
+    	v2::switch_tag::deduce_check,
+    	T
+    >
+    {};
+    
+}// checking
+}// v2
+}// assign
+}// boost
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/detail/checking/fifo.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/detail/checking/fifo.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,42 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_CHECKING_FIFO_ER_2010_HPP
+#define BOOST_ASSIGN_V2_CHECKING_FIFO_ER_2010_HPP
+#include <boost/assign/v2/detail/checking/constants.hpp>
+#include <boost/assign/v2/detail/checking/check_equal.hpp>
+#include <boost/assign/v2/detail/type_traits/container/is_fifo.hpp>
+
+namespace boost{                                                               
+namespace assign{ 
+namespace v2{
+namespace checking{ 
+
+    template<typename V>
+    void do_check(container_tag::fifo,V const & v1)
+    {
+		V v = v1;
+    	using namespace constants; 
+        BOOST_ASSIGN_V2_CHECK_EQUAL( v.front() , a ); v.pop(); 
+    	BOOST_ASSIGN_V2_CHECK_EQUAL( v.front() , b ); v.pop(); 
+    	BOOST_ASSIGN_V2_CHECK_EQUAL( v.front() , c ); v.pop(); 
+    	BOOST_ASSIGN_V2_CHECK_EQUAL( v.front() , d ); v.pop(); 
+    	BOOST_ASSIGN_V2_CHECK_EQUAL( v.front() , e ); v.pop(); 
+    	BOOST_ASSIGN_V2_CHECK_EQUAL( v.front() , f ); v.pop(); 
+    	BOOST_ASSIGN_V2_CHECK_EQUAL( v.front() , g ); v.pop(); 
+    	BOOST_ASSIGN_V2_CHECK_EQUAL( v.front() , h ); v.pop();
+    	BOOST_ASSIGN_V2_CHECK_EQUAL( v.empty() , true); 
+	} 
+
+}// checking
+}// v2
+}// assign
+}// boost    
+    
+#endif
Added: sandbox/statistics/support/boost/assign/v2/detail/checking/iterator.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/detail/checking/iterator.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,63 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_CHECKING_ITERATOR_ER_2010_HPP
+#define BOOST_ASSIGN_V2_CHECKING_ITERATOR_ER_2010_HPP
+#include <boost/next_prior.hpp>
+#include <boost/assign/v2/detail/checking/check_equal.hpp>
+#include <boost/assign/v2/detail/checking/constants.hpp>
+
+namespace boost{                                                               
+namespace assign{ 
+namespace v2{
+namespace checking{ 
+namespace iterator{
+    
+    template<typename It>
+    void do_check(It it)
+    {
+    	namespace ns = checking::constants;                                           
+        ns::do_check(
+            *boost::next( it, 0 ),
+            *boost::next( it, 1 ),
+            *boost::next( it, 2 ),
+            *boost::next( it, 3 ),
+            *boost::next( it, 4 ),
+            *boost::next( it, 5 ),
+            *boost::next( it, 6 ),
+            *boost::next( it, 7 )
+        );
+    }                                                                              
+
+namespace sorted{
+
+    template<typename It>
+    void do_check(It it)
+    {                                                                              
+        namespace ns = checking::constants::sorted;                                           
+        ns::do_check(
+            *boost::next( it, 0 ),
+            *boost::next( it, 1 ),
+            *boost::next( it, 2 ),
+            *boost::next( it, 3 ),
+            *boost::next( it, 4 ),
+            *boost::next( it, 5 ),
+            *boost::next( it, 6 ),
+            *boost::next( it, 7 )
+        );
+    }                                                                              
+
+}// sorted
+}// iterator
+}// checking
+}// v2
+}// assign
+}// boost    
+    
+#endif
Added: sandbox/statistics/support/boost/assign/v2/detail/checking/lifo.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/detail/checking/lifo.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,42 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_CHECKING_LIFO_ER_2010_HPP
+#define BOOST_ASSIGN_V2_CHECKING_LIFO_ER_2010_HPP
+#include <boost/assign/v2/detail/checking/check_equal.hpp>
+#include <boost/assign/v2/detail/checking/constants.hpp>
+#include <boost/assign/v2/detail/type_traits/container/is_lifo.hpp>
+
+namespace boost{                                                               
+namespace assign{ 
+namespace v2{
+namespace checking{ 
+
+    template<typename V>
+    void do_check(container_tag::lifo,V const& v1)
+    {
+    	using namespace checking::constants;  
+        V v = v1;
+    	BOOST_ASSIGN_V2_CHECK_EQUAL( v.top() , h ); v.pop();
+    	BOOST_ASSIGN_V2_CHECK_EQUAL( v.top() , g ); v.pop();
+    	BOOST_ASSIGN_V2_CHECK_EQUAL( v.top() , f ); v.pop();
+    	BOOST_ASSIGN_V2_CHECK_EQUAL( v.top() , e ); v.pop();
+    	BOOST_ASSIGN_V2_CHECK_EQUAL( v.top() , d ); v.pop();
+    	BOOST_ASSIGN_V2_CHECK_EQUAL( v.top() , c ); v.pop();
+    	BOOST_ASSIGN_V2_CHECK_EQUAL( v.top() , b ); v.pop();
+    	BOOST_ASSIGN_V2_CHECK_EQUAL( v.top() , a ); v.pop();
+    	BOOST_ASSIGN_V2_CHECK_EQUAL( v.empty() , true );
+    }
+
+}// checking
+}// v2
+}// assign
+}// boost    
+    
+#endif
Added: sandbox/statistics/support/boost/assign/v2/detail/checking/map.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/detail/checking/map.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,63 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_CHECKING_MAP_ER_2010_HPP
+#define BOOST_ASSIGN_V2_CHECKING_MAP_ER_2010_HPP
+#include <boost/range/begin.hpp>
+#include <boost/utility.hpp>
+
+#include <boost/assign/v2/detail/checking/check_equal.hpp>
+#include <boost/assign/v2/detail/checking/constants.hpp>
+#include <boost/assign/v2/detail/type_traits/container/is_map.hpp>
+
+namespace boost{                                                               
+namespace assign{ 
+namespace v2{
+namespace checking{ 
+
+    // Assumes 
+    // map[ a ] = a; ...; map[ h ] = h;
+    template<typename V>
+    void do_check(container_tag::map, V & map) // non-const due to operator[]
+    {                                      
+    	{  // Key                                
+        	using namespace checking::constants::sorted;
+        	do_check(
+           		boost::next( boost::begin( map ), 0 )->first,
+           		boost::next( boost::begin( map ), 1 )->first,
+           		boost::next( boost::begin( map ), 2 )->first,
+           		boost::next( boost::begin( map ), 3 )->first,
+           		boost::next( boost::begin( map ), 4 )->first,
+           		boost::next( boost::begin( map ), 5 )->first,
+           		boost::next( boost::begin( map ), 6 )->first,
+           		boost::next( boost::begin( map ), 7 )->first
+        	);
+        }
+        {  // Data
+        	using namespace checking::constants;
+        	do_check(
+            	map[ a ],
+            	map[ b ],
+            	map[ c ],
+            	map[ d ],
+            	map[ e ],
+            	map[ f ],
+            	map[ g ],
+            	map[ h ]
+        	);
+            
+        }
+    }                                           
+
+}// checking
+}// v2
+}// assign
+}// boost    
+    
+#endif
Added: sandbox/statistics/support/boost/assign/v2/detail/checking/range.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/detail/checking/range.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,52 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_CHECKING_RANGE_ER_2010_HPP
+#define BOOST_ASSIGN_V2_CHECKING_RANGE_ER_2010_HPP
+#include <boost/next_prior.hpp>
+#include <boost/range/begin.hpp>
+#include <boost/range/end.hpp>
+#include <boost/assign/v2/detail/type_traits/container/is_range.hpp>
+#include <boost/assign/v2/detail/type_traits/container/is_sorted.hpp>
+#include <boost/assign/v2/detail/checking/check_equal.hpp>
+#include <boost/assign/v2/detail/checking/iterator.hpp>
+
+namespace boost{                                                               
+namespace assign{ 
+namespace v2{
+namespace checking{ 
+    
+    template<typename R>
+    void do_check(container_tag::range, R const& r)
+    {
+    	namespace ns = checking::iterator;     
+        ns::do_check( boost::begin( r ) );
+        BOOST_ASSIGN_V2_CHECK_EQUAL( 
+        	boost::next( boost::begin( r ), 8 ), 
+            boost::end( r ) 
+        );
+    }                                                                              
+
+    template<typename R>
+    void do_check(container_tag::sorted, R const& r)
+    {                                                                              
+    	namespace ns = checking::iterator::sorted;     
+        ns::do_check( boost::begin( r ) );
+        BOOST_ASSIGN_V2_CHECK_EQUAL( 
+        	boost::next( boost::begin( r ), 8 ) , 
+            boost::end( r ) 
+        );
+    }                                                                              
+
+}// checking
+}// v2
+}// assign
+}// boost    
+    
+#endif
Added: sandbox/statistics/support/boost/assign/v2/detail/checking/relational_op.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/detail/checking/relational_op.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,57 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_CHECKING_RELATIONAL_OP_ER_2010_HPP
+#define BOOST_ASSIGN_V2_CHECKING_RELATIONAL_OP_ER_2010_HPP
+#include <boost/array.hpp>
+#include <boost/assign/v2/detail/checking/constants.hpp>
+#include <boost/assign/v2/detail/checking/check_equal.hpp>
+
+namespace boost{                                                               
+namespace assign{ 
+namespace v2{
+namespace checking{ 
+namespace relational_op{
+
+	// R must derive from relational_op_aux::crtp<> and r contain the checking
+    // constants.
+    template<typename R>
+    void do_check(R const& r)
+		{
+    		typedef boost::array<int,8> ar_;
+			ar_ ar;
+        	{
+            	using namespace constants;
+    			ar[0] = a; ar[1] = b; ar[2] = c;
+    			ar[3] = d; ar[4] = e; ar[5] = f;
+    			ar[6] = g; ar[7] = h; 
+    		}
+        	BOOST_ASSIGN_V2_CHECK_EQUAL( (ar  ==  r), true );
+        	BOOST_ASSIGN_V2_CHECK_EQUAL( (ar  !=  r), false );
+        	BOOST_ASSIGN_V2_CHECK_EQUAL( (ar  <  r), false );
+        	BOOST_ASSIGN_V2_CHECK_EQUAL( (ar  >  r), false );
+        	BOOST_ASSIGN_V2_CHECK_EQUAL( (ar  <=  r), true );
+        	BOOST_ASSIGN_V2_CHECK_EQUAL( (ar  >=  r), true );
+        	++ar[2];
+        	BOOST_ASSIGN_V2_CHECK_EQUAL( (ar  ==  r), false );
+        	BOOST_ASSIGN_V2_CHECK_EQUAL( (ar  !=  r), true );
+        	BOOST_ASSIGN_V2_CHECK_EQUAL( (ar  <  r), false );
+        	BOOST_ASSIGN_V2_CHECK_EQUAL( (ar  >  r), true );
+        	BOOST_ASSIGN_V2_CHECK_EQUAL( (ar  <=  r), false );
+        	BOOST_ASSIGN_V2_CHECK_EQUAL( (ar  >=  r), true );
+
+		}
+
+}// relational_op
+}// checking
+}// v2
+}// assign
+}// boost    
+    
+#endif
Added: sandbox/statistics/support/boost/assign/v2/detail/config/arity_bound.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/detail/config/arity_bound.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,24 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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/preprocessor/arithmetic/inc.hpp>
+#include <boost/mpl/limits/arity.hpp>
+
+// Default upper bound on the arity of function and functors
+//#ifndef BOOST_ASSIGN_V2_ARITY_BOUND
+//#define BOOST_ASSIGN_V2_ARITY_BOUND\
+//	BOOST_PP_INC(BOOST_MPL_LIMIT_METAFUNCTION_ARITY)\
+/**/    
+//#endif
+
+//#if BOOST_ASSIGN_V2_ARITY_BOUND >  BOOST_PP_INC(BOOST_MPL_LIMIT_METAFUNCTION_ARITY)
+//#error
+// This is required, at least, by /ref/fusion_matrix/container.hpp
+//#endif
+
Added: sandbox/statistics/support/boost/assign/v2/detail/config/borland_workaround.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/detail/config/borland_workaround.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,9 @@
+
+// Maybe needed for unit testing
+
+#include <boost/detail/workaround.hpp>
+
+#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564))
+#  pragma warn -8091 // supress warning in Boost.Test
+#  pragma warn -8057 // unused argument argc/argv in Boost.Test
+#endif
Added: sandbox/statistics/support/boost/assign/v2/detail/config/enable_cpp0x.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/detail/config/enable_cpp0x.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,32 @@
+////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                       //
+//                                                                        //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                              //
+//  Copyright (C) 2010 Erwann Rogard                                      //
+//  Use, modification and distribution are subject to the                 //
+//  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/preprocessor/logical/and.hpp>
+#ifndef BOOST_ASSIGN_V2_ENABLE_CPP0X
+#if __GNUC__ && __GXX_EXPERIMENTAL_CXX0X__
+#define BOOST_ASSIGN_V2_ENABLE_CPP0X 1
+#else
+#define BOOST_ASSIGN_V2_ENABLE_CPP0X 0
+#endif
+#endif
+
+// -- TODO add check for MSVC when support for variadic template becomes
+// available
+//
+// -- In principle this is more portable,
+//  #include <boost/preprocessor/logical/bool.hpp>
+//  #define BOOST_ASSIGN_V2_ENABLE_CPP0X \
+//      BOOST_PP_BOOL(__cplusplus > 199711L) \
+//  /**/
+// but GCC is non-conformant.
+//
+// -- Sources:
+// http://gcc.gnu.org/onlinedocs/cpp/Common-Predefined-Macros.html#Common-Predefined-Macros
+// http://www2.research.att.com/~bs/C++0xFAQ.html
+// http://msdn.microsoft.com/en-us/library/dd465215.aspx
Added: sandbox/statistics/support/boost/assign/v2/detail/config/limit_arity.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/detail/config/limit_arity.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,33 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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/preprocessor/arithmetic/inc.hpp>
+#include <boost/mpl/limits/arity.hpp>
+
+#ifndef BOOST_ASSIGN_V2_LIMIT_ARITY
+#define BOOST_ASSIGN_V2_LIMIT_ARITY BOOST_MPL_LIMIT_METAFUNCTION_ARITY
+#endif
+
+#if BOOST_ASSIGN_V2_LIMIT_ARITY_BOUND >  BOOST_MPL_LIMIT_METAFUNCTION_ARITY
+#error
+// This is required for a metafunction class that returns the result type of a 
+// functors.
+#endif
+
+// Functors are by default overloaded as follows:
+// 
+// n = BOOST_ASSIGN_V2_LIMIT_ARITY
+// Overload						| Arity
+// -------------------------------------
+// f()							|	0
+// f(x[0])						|	1
+// f(x[0], x[1])				|	2
+// ...
+// f(x[0], ...., x[n-1])		|	n
+
Added: sandbox/statistics/support/boost/assign/v2/detail/config/limit_csv_arity.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/detail/config/limit_csv_arity.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,13 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_LIMIT_CSV_ARITY
+#define BOOST_ASSIGN_V2_LIMIT_CSV_ARITY 20
+#endif
Added: sandbox/statistics/support/boost/assign/v2/detail/config/limit_lvalue_const_arity.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/detail/config/limit_lvalue_const_arity.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,25 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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/preprocessor/arithmetic/inc.hpp>
+#include <boost/mpl/limits/arity.hpp>
+
+#ifndef BOOST_ASSIGN_V2_LIMIT_LVALUE_CONST_ARITY
+#define BOOST_ASSIGN_V2_LIMIT_LVALUE_CONST_ARITY 2
+#endif
+
+// This constant defines the maximum arity for which functors are overloaded
+// for any combination of lvalue and const under C++03 (the restriction does
+// not apply to C++0x). Be warned, therefore, that the number of function 
+// overloads increases geometrically with this number.  
+
+#include <boost/assign/v2/detail/config/limit_arity.hpp>
+#if BOOST_ASSIGN_V2_LIMIT_LVALUE_CONST_ARITY >  BOOST_ASSIGN_V2_LIMIT_ARITY
+#error
+#endif
Added: sandbox/statistics/support/boost/assign/v2/detail/detail.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/detail/detail.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,25 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_DETAIL_DETAIL_ER_2010_HPP
+#define BOOST_ASSIGN_V2_DETAIL_DETAIL_ER_2010_HPP
+
+#include <boost/assign/v2/detail/checking/checking.hpp>
+#include <boost/assign/v2/detail/functor/functor.hpp>
+#include <boost/assign/v2/detail/fwd/fwd.hpp>
+#include <boost/assign/v2/detail/keyword/keyword.hpp>
+#include <boost/assign/v2/detail/mpl/mpl.hpp>
+#include <boost/assign/v2/detail/relational_op/relational_op.hpp>
+#include <boost/assign/v2/detail/type_traits/type_traits.hpp>
+
+// Don't include
+// /checking/checking.hpp
+// /config/config 
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/detail/functor/constructor.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/detail/functor/constructor.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,93 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_DETAIL_FUNCTOR_CONSTRUCTOR_ER_2010_HPP
+#define BOOST_ASSIGN_V2_DETAIL_FUNCTOR_CONSTRUCTOR_ER_2010_HPP
+#include <boost/preprocessor/repetition/repeat_from_to.hpp>
+#include <boost/preprocessor/repetition/enum_params.hpp>
+#include <boost/preprocessor/repetition/enum_binary_params.hpp>
+#include <boost/range/reference.hpp>
+#include <boost/type_traits/remove_cv.hpp>
+#include <boost/mpl/always.hpp>
+#include <boost/assign/v2/detail/type_traits/container/value.hpp>
+#include <boost/assign/v2/detail/config/limit_arity.hpp>
+#include <boost/assign/v2/detail/functor/crtp_unary_and_up.hpp>
+
+namespace boost{
+namespace assign{
+namespace v2{
+namespace functor_aux{
+
+	template<typename T>
+	class constructor : public functor_aux::crtp_unary_and_up<
+    	functor_aux::constructor<T>,
+        boost::mpl::always<T>
+    >
+	{
+		typedef functor_aux::constructor<T> this_;
+        typedef boost::mpl::always<T> meta_result_;
+        typedef functor_aux::crtp_unary_and_up<this_, meta_result_> super_;
+
+    	public:
+
+		constructor(){}
+
+		T operator()()const{ return T(); }
+
+		using super_::operator();
+
+#define MACRO(z,N,data) \
+    template<BOOST_PP_ENUM_PARAMS(N,typename T)> \
+    T impl( BOOST_PP_ENUM_BINARY_PARAMS(N, T, &_) )const{ \
+        return T( BOOST_PP_ENUM_PARAMS(N,_) ); \
+    } \
+/**/
+BOOST_PP_REPEAT_FROM_TO(
+	1,
+    BOOST_PP_INC(BOOST_ASSIGN_V2_LIMIT_ARITY),
+    MACRO,
+    ~
+)
+#undef MACRO
+
+	};
+
+	template<typename V>
+    struct deduce_constructor
+    {
+    	typedef typename container_type_traits::value<V>::type value_;
+        typedef functor_aux::constructor<value_> type;
+        static type call(){ return functor_aux::constructor<value_>(); }
+    };
+
+
+}// functor_aux
+namespace result_of{
+
+	template<typename T>
+	struct constructor
+    {
+        typedef functor_aux::constructor<T> type;
+    };
+
+}// result_of
+
+	template<typename T>
+	typename result_of::constructor<T>::type
+    constructor()
+    {
+    	typedef typename result_of::constructor<T>::type result_;
+    	return result_();
+    }
+
+}// v2
+}// assign
+}// boost
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/detail/functor/crtp_unary_and_up.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/detail/functor/crtp_unary_and_up.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,148 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_DETAIL_FUNCTOR_CRTP_UNARY_AND_UP_ER_2010_HPP
+#define BOOST_ASSIGN_V2_DETAIL_FUNCTOR_CRTP_UNARY_AND_UP_ER_2010_HPP
+#include <boost/preprocessor/arithmetic/inc.hpp>
+#include <boost/preprocessor/repetition/repeat_from_to.hpp>
+#include <boost/preprocessor/repetition/enum_binary_params.hpp>
+#include <boost/preprocessor/repetition/enum_params.hpp>
+#include <boost/preprocessor/repetition/repeat.hpp>
+#include <boost/preprocessor/seq/for_each_product.hpp>
+#include <boost/preprocessor/seq/first_n.hpp>
+
+#include <boost/mpl/apply.hpp>
+#include <boost/mpl/vector.hpp>
+#include <boost/utility/enable_if.hpp>
+
+#include <boost/assign/v2/detail/config/limit_arity.hpp>
+#include <boost/assign/v2/detail/config/limit_lvalue_const_arity.hpp>
+#include <boost/assign/v2/detail/config/enable_cpp0x.hpp>
+#include <boost/assign/v2/detail/pp/args.hpp>
+#include <boost/assign/v2/detail/pp/params.hpp>
+#include <boost/assign/v2/detail/pp/seq.hpp>
+
+#ifndef BOOST_ASSIGN_V2_ENABLE_CPP0X
+#error
+#endif
+
+#if BOOST_ASSIGN_V2_ENABLE_CPP0X
+#include <boost/mpl/detail/variadic_vector.hpp>
+#endif
+
+// Notation:
+// 	m = BOOST_ASSIGN_V2_LIMIT_LVALUE_CONST_ARITY
+// 	n = BOOST_ASSIGN_V2_LIMIT_ARITY
+//
+// Given a metafunction class, F, and a derived class, D, that defines 
+//  template<typename T0, ..., typename Tk>
+//  typename apply1<F, mpl::vector<T0,...,Tk> >::type 
+//	impl(T0& , ..., Tk&)const;
+// for k = 0, ..., n-1, crtp<F,D> defines, under C++03, a set of overloaded 
+// operator()'s, each forwarding to impl(), for each combination of lvalues and 
+// const arguments for k = 0, ..., m-1, and either only lvalues or only const 
+// for k = m, ..., n-1. Under C++0x, operator() forwards to impl() for any 
+// combination of lvalues and const and k = 0,...,n-1.
+
+namespace boost{
+namespace assign{
+namespace v2{
+namespace functor_aux{
+
+	template<typename D,typename F>
+	class crtp_unary_and_up
+	{
+		protected:
+
+		D& derived(){ return static_cast<D&>(*this); }
+		D const& derived()const{ return static_cast<D const&>(*this); }
+
+		public:
+
+#if BOOST_ASSIGN_V2_ENABLE_CPP0X
+    template<typename T0,typename...Args>
+    typename boost::mpl::apply1<
+        F,
+        typename boost::mpl::detail::variadic_vector<T0, Args...>::type
+    >::type
+    operator()(T0&& t0, Args&&...args)const{
+        return this->derived().template impl<T0, Args...>(t0, args...);
+    }
+#else
+
+#define MACRO1(r, SeqU) \
+    template<BOOST_ASSIGN_V2_decl_params(SeqU)> \
+    typename boost::mpl::apply1< \
+        F, \
+        boost::mpl::vector<BOOST_ASSIGN_V2_params(SeqU)> \
+    >::type \
+    operator()( BOOST_ASSIGN_V2_decl_args(SeqU) )const{ \
+        return this->derived().template impl<BOOST_ASSIGN_V2_params(SeqU)>( \
+            BOOST_ASSIGN_V2_args(SeqU) \
+        ); \
+    } \
+/**/
+
+
+#define MACRO2(z, n, data) BOOST_PP_SEQ_FOR_EACH_PRODUCT(\
+	MACRO1, \
+    BOOST_PP_SEQ_FIRST_N(BOOST_PP_INC(n), BOOST_ASSIGN_V2_SEQ)\
+) \
+/**/
+BOOST_PP_REPEAT(
+	BOOST_ASSIGN_V2_LIMIT_LVALUE_CONST_ARITY, 
+    MACRO2, 
+    ~
+)
+
+#undef MACRO1
+#undef MACRO2
+
+#define MACRO(z, N, data) \
+    template<BOOST_PP_ENUM_PARAMS(N, typename T)> \
+    typename boost::mpl::apply1< \
+        F, \
+        boost::mpl::vector<BOOST_PP_ENUM_PARAMS(N, T)> \
+    >::type \
+    operator()( BOOST_PP_ENUM_BINARY_PARAMS(N, T, &_) )const{ \
+        return this->derived().template impl< \
+            BOOST_PP_ENUM_PARAMS(N, T) \
+        >( BOOST_PP_ENUM_PARAMS(N, _) ); \
+    } \
+    \
+    template<BOOST_PP_ENUM_PARAMS(N, typename T)> \
+    typename boost::mpl::apply1< \
+        F, \
+        boost::mpl::vector<BOOST_PP_ENUM_PARAMS(N, const T)> \
+    >::type \
+    operator()( BOOST_PP_ENUM_BINARY_PARAMS(N, T, const &_) )const{ \
+        return this->derived().template impl< \
+            BOOST_PP_ENUM_PARAMS(N, const T) \
+        >( BOOST_PP_ENUM_PARAMS(N, _) ); \
+    } \
+/**/
+
+BOOST_PP_REPEAT_FROM_TO(
+    BOOST_PP_INC(BOOST_ASSIGN_V2_LIMIT_LVALUE_CONST_ARITY),
+    BOOST_PP_INC(BOOST_ASSIGN_V2_LIMIT_ARITY),
+    MACRO,
+    ~
+)
+#undef MACRO
+
+#endif // #if BOOST_ASSIGN_V2_ENABLE_CPP0X
+
+	};
+
+}// functor_aux
+}// v2
+}// assign
+}// boost
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/detail/functor/functor.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/detail/functor/functor.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,18 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_DETAIL_FUNCTOR_FUNCTOR_ER_2010_HPP
+#define BOOST_ASSIGN_V2_DETAIL_FUNCTOR_FUNCTOR_ER_2010_HPP
+
+#include <boost/assign/v2/detail/functor/crtp_unary_and_up.hpp>
+#include <boost/assign/v2/detail/functor/constructor.hpp>
+#include <boost/assign/v2/detail/functor/identity.hpp>
+#include <boost/assign/v2/detail/functor/new.hpp>
+
+#endif
\ No newline at end of file
Added: sandbox/statistics/support/boost/assign/v2/detail/functor/identity.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/detail/functor/identity.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,72 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_DETAIL_FUNCTOR_IDENTITY_ER_2010_HPP
+#define BOOST_ASSIGN_V2_DETAIL_FUNCTOR_IDENTITY_ER_2010_HPP
+#include <boost/mpl/equal_to.hpp>
+#include <boost/mpl/at.hpp>
+#include <boost/mpl/int.hpp>
+#include <boost/mpl/size.hpp>
+#include <boost/mpl/eval_if.hpp>
+#include <boost/type_traits/add_reference.hpp>
+#include <boost/assign/v2/detail/functor/crtp_unary_and_up.hpp>
+
+namespace boost{
+namespace assign{
+namespace v2{
+namespace functor_aux{
+
+    struct result_of_identity{
+
+        template<typename V>
+		struct is_ok : boost::mpl::equal_to<
+       		boost::mpl::int_<1>,
+       		boost::mpl::size<V>
+    	>{};
+
+    	template<typename V>
+        struct enable
+        {
+        	typedef typename boost::mpl::at_c<V,0>::type t_;
+            typedef typename boost::add_reference<t_>::type type;
+        };
+
+    	template<typename V>
+        struct disable{};
+
+        template<typename V>
+        struct apply : boost::mpl::eval_if<
+            is_ok<V>,
+            enable<V>,
+            disable<V>
+        >{};
+
+    };
+
+	struct identity : functor_aux::crtp_unary_and_up<
+        functor_aux::identity,
+        functor_aux::result_of_identity
+    >
+    {
+    	identity(){}
+
+    	template<typename T> T& impl(T& t)const{ return t; }
+    	template<typename T> T const& impl(T const& t)const{ return t; }
+
+    };
+
+}// functor_aux
+namespace{
+	functor_aux::identity const _identity = functor_aux::identity();
+}
+}// v2
+}// assign
+}// boost
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/detail/functor/new.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/detail/functor/new.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,129 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_DETAIL_FUNCTOR_NEW_ER_2010_HPP
+#define BOOST_ASSIGN_V2_DETAIL_FUNCTOR_NEW_ER_2010_HPP
+#include <memory>
+#include <boost/preprocessor/repetition/repeat_from_to.hpp>
+#include <boost/preprocessor/repetition/enum_params.hpp>
+#include <boost/preprocessor/repetition/enum_binary_params.hpp>
+#include <boost/range/reference.hpp>
+#include <boost/type_traits/remove_cv.hpp>
+#include <boost/mpl/always.hpp>
+#include <boost/assign/v2/detail/type_traits/container/value.hpp>
+#include <boost/assign/v2/detail/config/limit_arity.hpp>
+#include <boost/assign/v2/detail/functor/crtp_unary_and_up.hpp>
+
+namespace boost{
+namespace assign{ 
+namespace v2{
+namespace functor_aux{
+
+	template<typename T>
+	class new_ : public functor_aux::crtp_unary_and_up< 
+    	functor_aux::new_<T>, 
+        boost::mpl::always<T*> 
+    >
+	{
+    	typedef T* ptr_;
+		typedef functor_aux::new_<T> this_;
+        typedef boost::mpl::always< ptr_ > meta_result_;
+        typedef functor_aux::crtp_unary_and_up<this_, meta_result_> super_;
+         
+    	public:
+        
+        typedef ptr_ result_type;
+        
+		new_(){}
+    
+		result_type operator()()const{ return new T(); } 
+
+		using super_::operator();
+
+#define MACRO(z, N, data) \
+    template<BOOST_PP_ENUM_PARAMS(N, typename T)> \
+    result_type impl( BOOST_PP_ENUM_BINARY_PARAMS(N, T, &_) )const{ \
+        return new T( BOOST_PP_ENUM_PARAMS(N, _) ); \
+    } \
+/**/
+BOOST_PP_REPEAT_FROM_TO(
+	1,
+    BOOST_PP_INC(BOOST_ASSIGN_V2_LIMIT_ARITY),
+    MACRO,
+    ~
+)
+#undef MACRO
+	
+	};
+
+	template<typename V>
+    struct deduce_new_
+    {
+    	typedef typename container_type_traits::value<V>::type value_;
+        typedef functor_aux::new_<value_> type;
+        static type call(){ return functor_aux::new_<value_>(); }
+    };
+
+// --- For testing only --- // TODO remove foo from this file.
+
+struct foo
+{
+    int i;
+    
+    foo() : i(0)
+    { }
+    foo( int i ) : i(i)
+    { }
+    foo( int i, int ) : i(i)
+    { }
+    foo( const char*, int i, int ) : i(i)
+    { }
+
+    virtual ~foo()
+    { }
+};
+
+struct foo_bar : foo
+{
+    foo_bar( int i ) : foo(i)
+    { }
+    
+    foo_bar( int i, const char* )
+    { }
+};
+
+inline bool operator<( const foo& l, const foo& r )
+{
+    return l.i < r.i;
+}
+    
+}// functor_aux
+namespace result_of{
+
+	template<typename T>
+	struct new_
+    {
+        typedef functor_aux::new_<T> type;
+    };
+
+}// result_of
+
+	template<typename T>
+	typename result_of::new_<T>::type
+    new_()
+    {
+    	typedef typename result_of::new_<T>::type result_;
+    	return result_();
+    }
+        	
+}// v2
+}// assign
+}// boost
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/detail/fwd/container.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/detail/fwd/container.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,48 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_DETAIL_FWD_CONTAINER_ER_2010_HPP
+#define BOOST_ASSIGN_V2_DETAIL_FWD_CONTAINER_ER_2010_HPP
+
+
+namespace std{
+
+	// www.sgi.com/tech/stl/Deque.html 
+	template<typename T,typename A> class deque;
+
+	// http://www.sgi.com/tech/stl/List.html
+	template<typename T,typename A> class list;
+
+	// http://www.sgi.com/tech/stl/Map.html
+	template<typename K,typename T,typename C,typename A> class map;
+
+    // http://www.sgi.com/tech/stl/queue.html 
+	template<typename T,typename S> class queue;
+
+    // http://www.sgi.com/tech/stl/set.html
+	template<typename T,typename C,typename A> class set;
+
+    // http://www.sgi.com/tech/stl/stack.html
+	template<typename T,typename S> class stack;
+
+    // http://www.sgi.com/tech/stl/Vector.html
+	template<typename T,typename A> class vector;
+
+}// std
+namespace boost{
+	
+    // http://www.boost.org/doc/libs/release/doc/html/array.html
+    template<typename T, std::size_t size> class array;
+    
+	// http://www.boost.org/doc/libs/release/libs/circular_buffer/index.html
+    template<typename T, typename Alloc> class circular_buffer;
+
+}// boost
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/detail/fwd/fwd.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/detail/fwd/fwd.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,16 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_DETAIL_FWD_FWD_ER_2010_HPP
+#define BOOST_ASSIGN_V2_DETAIL_FWD_FWD_ER_2010_HPP
+
+#include <boost/assign/v2/detail/fwd/container.hpp>
+#include <boost/assign/v2/detail/fwd/ptr_container.hpp>
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/detail/fwd/ptr_container.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/detail/fwd/ptr_container.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,98 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_DETAIL_FWD_PTR_CONTAINER_ER_2010_HPP
+#define BOOST_ASSIGN_V2_DETAIL_FWD_PTR_CONTAINER_ER_2010_HPP
+
+namespace boost{
+
+    template
+    <
+        class T,
+        size_t N,
+        class CloneAllocator
+    >
+    class ptr_array;
+
+    template
+    < 
+        class T, 
+        class CloneAllocator,
+        class Allocator
+    >
+    class ptr_circular_buffer;
+
+    template
+    < 
+        class T, 
+        class CloneAllocator,
+        class Allocator
+    >
+    class ptr_deque;
+    
+    template
+    < 
+        class T, 
+        class CloneAllocator,
+        class Allocator
+    >
+    class ptr_list;
+
+    template
+    < 
+        class Key, 
+        class T, 
+        class Compare,
+        class CloneAllocator,
+        class Allocator
+    >
+    class ptr_map;
+
+    template
+    < 
+        class Key, 
+        class Compare,
+        class CloneAllocator,
+        class Allocator
+    >
+    class ptr_set;
+
+    template
+    < 
+        class Key, 
+        class T, 
+        class Hash,
+        class Pred,
+        class CloneAllocator,
+        class Allocator
+    >
+    class ptr_unordered_map;
+
+    template
+    < 
+        class Key, 
+        class Hash,
+        class Pred,
+        class CloneAllocator,
+        class Allocator
+    >
+    class ptr_unordered_set;
+
+
+    template
+    < 
+        class T, 
+        class CloneAllocator,
+        class Allocator
+    >
+    class ptr_vector;
+
+}// boost
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/detail/keyword/keyword.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/detail/keyword/keyword.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,16 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_DETAIL_KEYWORD_KEYWORD_ER_2010_HPP
+#define BOOST_ASSIGN_V2_DETAIL_KEYWORD_KEYWORD_ER_2010_HPP
+
+#include <boost/assign/v2/detail/keyword/nil.hpp>
+#include <boost/assign/v2/detail/keyword/unwrap.hpp>
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/detail/keyword/nil.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/detail/keyword/nil.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,24 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_DETAIL_KEYWORD_NIL_ER_2010_HPP
+#define BOOST_ASSIGN_V2_DETAIL_KEYWORD_NIL_ER_2010_HPP
+
+namespace boost{
+namespace assign{ 
+namespace v2{
+namespace keyword_aux{ struct nil{}; }
+namespace{
+	const keyword_aux::nil _nil = keyword_aux::nil();
+}	
+}// v2
+}// assign
+}// boost
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/detail/keyword/unwrap.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/detail/keyword/unwrap.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,28 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_DETAIL_KEYWORD_UNWRAP_ER_2010_HPP
+#define BOOST_ASSIGN_V2_DETAIL_KEYWORD_UNWRAP_ER_2010_HPP
+
+namespace boost{
+namespace assign{ 
+namespace v2{
+namespace keyword_aux{ 
+
+	struct unwrap{};
+
+}// detail
+
+	keyword_aux::unwrap const _unwrap = keyword_aux::unwrap();
+
+}// v2
+}// assign
+}// boost
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/detail/mpl/always.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/detail/mpl/always.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,39 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_DETAIL_MPL_ALWAYS_ER_2010_HPP
+#define BOOST_ASSIGN_V2_DETAIL_MPL_ALWAYS_ER_2010_HPP
+#include <boost/mpl/always.hpp>
+#include <boost/mpl/apply.hpp>
+#include <boost/mpl/identity.hpp>
+
+namespace boost{
+namespace assign{ 
+namespace v2{
+namespace mpl{
+	
+    // This is a variant of mpl::always that is also nullary.
+
+	template<typename T>
+	struct always : boost::mpl::always<T>{};
+    
+}// mpl
+}// v2
+}// assign
+namespace mpl{
+
+    template<typename T>
+    struct apply0< 
+    	assign::v2::mpl::always<T> 
+    > : boost::mpl::identity<T>{};
+
+}// mpl
+}// boost
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/detail/mpl/mpl.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/detail/mpl/mpl.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,16 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_TYPE_TRAITS_MPL_ER_2010_HPP
+#define BOOST_ASSIGN_V2_TYPE_TRAITS_MPL_ER_2010_HPP
+
+#include <boost/assign/v2/detail/mpl/always.hpp>
+#include <boost/assign/v2/detail/mpl/switch.hpp>
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/detail/mpl/switch.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/detail/mpl/switch.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,73 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_DETAIL_MPL_SWITCH_ER_2010_HPP
+#define BOOST_ASSIGN_V2_DETAIL_MPL_SWITCH_ER_2010_HPP
+#include <boost/mpl/bool.hpp>
+#include <boost/mpl/eval_if.hpp>
+#include <boost/mpl/identity.hpp>
+#include <boost/mpl/apply.hpp>
+#include <boost/mpl/always.hpp>
+#include <boost/mpl/placeholders.hpp>
+
+namespace boost{
+namespace assign{
+namespace v2{
+namespace switch_tag{
+
+	// Each tag in this namespace identifies a switch statement.
+
+}//switch_tag
+namespace mpl{
+    
+    // Fully specialize by inheriting from wrap<Tag,F>
+    // To terminate the switch, inherit from wrap<Tag>
+    template<typename SwitchTag, int k> struct case_{};
+    
+    template<typename T>
+    struct wrap_default_f : boost::mpl::true_{};
+    
+    template<typename Tag, template<typename> class F = wrap_default_f>
+    struct wrap
+    {
+        typedef Tag tag;
+        template<typename T> struct apply : F<T>
+        {
+        	// Is Tag compatible with T? Answer : F<T>::value.
+        };
+    };
+
+    template<typename W>
+    struct extract_tag
+    {
+        typedef typename W::tag type;
+    };
+
+    template<typename SwitchTag, typename T, int k = 0>
+    struct switch_ : boost::mpl::eval_if<
+        boost::mpl::apply1< 
+        	v2::mpl::case_<SwitchTag, k>, 
+            T 
+        >,
+        v2::mpl::extract_tag< 
+        	v2::mpl::case_<SwitchTag, k> 
+        >,
+        v2::mpl::switch_<
+        	SwitchTag, 
+            T, 
+            k + 1
+        >
+    >{};
+
+}// mpl
+}// v2
+}// assign
+}// boost
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/detail/mpl/uniform_vector.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/detail/mpl/uniform_vector.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,51 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_DETAIL_MPL_UNIFORM_VECTOR_ER_2010_HPP
+#define BOOST_ASSIGN_V2_DETAIL_MPL_UNIFORM_VECTOR_ER_2010_HPP
+#include <boost/mpl/vector/vector0.hpp>
+#include <boost/mpl/vector.hpp>
+#include <boost/mpl/push_back.hpp>
+
+namespace boost{
+namespace assign{
+namespace v2{
+namespace mpl{
+namespace uniform_vector_aux{
+
+	template<std::size_t N,typename Seq, typename T>
+    struct cont : cont< 
+    	N-1,
+    	typename boost::mpl::push_back<
+    		Seq,
+            T
+        >::type,
+        T
+    >{};
+
+	template<typename Seq,typename T>
+	struct cont<0, Seq, T>{
+		typedef Seq type;    
+    };
+
+}// uniform_vector_aux
+
+template<std::size_t N, typename T>
+struct uniform_vector : uniform_vector_aux::cont<
+	N,
+    boost::mpl::vector0<>,
+    T
+>{};
+
+}// mpl
+}// v2
+}// assign
+}// boost
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/detail/pp/args.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/detail/pp/args.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,27 @@
+////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                       //
+//                                                                        //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                              //
+//  Copyright (C) 2010 Erwann Rogard                                      //
+//  Use, modification and distribution are subject to the                 //
+//  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_ASSIGN_V2_args
+#include <boost/preprocessor/cat.hpp>
+#include <boost/preprocessor/comma_if.hpp>
+#include <boost/preprocessor/repetition/enum_params.hpp>
+#include <boost/preprocessor/seq/for_each_i.hpp>
+#include <boost/preprocessor/seq/size.hpp>
+#define BOOST_ASSIGN_V2_decl_args_iter(r, data, i, U) \
+	BOOST_PP_COMMA_IF(i) \
+	U & \
+    BOOST_PP_CAT(data, i) \
+/**/
+#define BOOST_ASSIGN_V2_decl_args(SeqU) \
+	BOOST_PP_SEQ_FOR_EACH_I(BOOST_ASSIGN_V2_decl_args_iter, _, SeqU) \
+/**/
+#define BOOST_ASSIGN_V2_args(SeqU) \
+	BOOST_PP_ENUM_PARAMS(BOOST_PP_SEQ_SIZE(SeqU), _)
+/**/
+#endif
Added: sandbox/statistics/support/boost/assign/v2/detail/pp/params.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/detail/pp/params.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,17 @@
+////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                       //
+//                                                                        //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                              //
+//  Copyright (C) 2010 Erwann Rogard                                      //
+//  Use, modification and distribution are subject to the                 //
+//  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_ASSIGN_V2_params
+#include <boost/preprocessor/seq/size.hpp>
+#include <boost/preprocessor/seq/enum.hpp>
+#define BOOST_ASSIGN_V2_decl_params(SeqU) \
+	BOOST_PP_ENUM_PARAMS(BOOST_PP_SEQ_SIZE(SeqU), typename T)\
+/**/
+#define BOOST_ASSIGN_V2_params(SeqU) BOOST_PP_SEQ_ENUM(SeqU) 
+#endif
Added: sandbox/statistics/support/boost/assign/v2/detail/pp/seq.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/detail/pp/seq.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,13 @@
+////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                       //
+//                                                                        //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                              //
+//  Copyright (C) 2010 Erwann Rogard                                      //
+//  Use, modification and distribution are subject to the                 //
+//  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_ASSIGN_V2_SEQ
+#include <boost/preprocessor/tuple/to_seq.hpp>
+#define BOOST_ASSIGN_V2_SEQ BOOST_PP_TUPLE_TO_SEQ(10,((T0 const)(T0),(T1 const)(T1),(T2 const)(T2),(T3 const)(T3),(T4 const)(T4),(T5 const)(T5),(T6 const)(T6),(T7 const)(T7),(T8 const)(T8),(T9 const)(T9)))
+#endif
Added: sandbox/statistics/support/boost/assign/v2/detail/relational_op/crtp.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/detail/relational_op/crtp.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,105 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_DETAIL_RELATIONAL_OP_CRTP_ER_2010_HPP
+#define BOOST_ASSIGN_V2_DETAIL_RELATIONAL_OP_CRTP_ER_2010_HPP
+#include <boost/utility/enable_if.hpp>
+#include <boost/type_traits/is_base_of.hpp> 
+
+namespace boost{
+namespace assign{
+namespace v2{
+namespace relational_op_aux{
+
+// A solution with 3 overloads was proposed here.
+// http://groups.google.com/group/comp.lang.c++.moderated/browse_thread/thread/389d8fe278ef0b13#
+// 2 overloads seem to suffice, however, as implemented below.
+
+	struct base{};
+
+	// D must implement:
+    //	template<typename T> bool equal_to(const T&)const;
+    // 	template<typename T> bool less_than(const T&)const;
+	template<typename D>
+	struct crtp{// : base{
+    
+    	 D const& derived()const{ return static_cast<D const&>(*this); }
+         
+    };
+
+	template<typename T>
+    struct is_relational : boost::is_base_of<crtp<T>,T>{};
+
+	template< typename A ,typename B>
+    typename boost::disable_if<
+		relational_op_aux::is_relational<A>,
+//    	boost::is_base_of<base,A>,
+        bool
+    >::type
+    operator==( A const& a, crtp< B > const& b) 
+	{ 
+		return b.derived().equal_to( a );
+	}
+
+	template< typename A ,typename B>
+	bool operator==( crtp< A > const& a, B const& b )
+	{ 
+		return b == a; 
+	} 	
+
+	template< typename A ,typename B>
+    typename boost::disable_if<
+//    	boost::is_base_of<base,A>,
+		relational_op_aux::is_relational<A>,
+        bool
+    >::type
+    operator<( A const& a, crtp< B > const& b) 
+	{ 
+		return ! ( (a == b) || (b < a) );
+	}
+
+	template< typename A ,typename B>
+	bool operator<( crtp< A > const& a, B const& b )
+	{ 
+		return a.derived().less_than( b ); 
+	} 	
+
+	// Deduced
+
+#define MACRO(symb,expr)\
+	template< typename A ,typename B> \
+    typename boost::disable_if< \
+    	boost::is_base_of<base,A>, \
+        bool \
+    >::type \
+    operator symb ( A const& a, crtp< B > const& b) \
+	{ \
+		return expr; \
+	} \
+ 	\
+	template< typename A ,typename B> \
+	bool operator symb ( crtp< A > const& a, B const& b ) \
+	{ \
+		return expr; \
+	} \
+/**/
+
+	MACRO( !=,  !(a == b)  )
+	MACRO( <=,  (a < b) || (a == b)  )
+	MACRO( >,   !(a <= b) )
+	MACRO( >=,  (a > b) || (a == b) )
+
+#undef MACRO
+    
+}// relational_op_aux
+}// v2
+}// assign
+}// boost
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/detail/relational_op/relational_op.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/detail/relational_op/relational_op.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,15 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_DETAIL_RELATIONAL_OP_RELATIONAL_OP_ER_2010_HPP
+#define BOOST_ASSIGN_V2_DETAIL_RELATIONAL_OP_RELATIONAL_OP_ER_2010_HPP
+
+#include <boost/assign/v2/detail/relational_op/crtp.hpp>
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/detail/type_traits/container/container.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/detail/type_traits/container/container.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,31 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_TYPE_TRAITS_CONTAINER_CONTAINER_ER_2010_HPP
+#define BOOST_ASSIGN_V2_TYPE_TRAITS_CONTAINER_CONTAINER_ER_2010_HPP
+
+#include <boost/assign/v2/detail/type_traits/container/has_push.hpp>
+#include <boost/assign/v2/detail/type_traits/container/has_static_size.hpp>
+#include <boost/assign/v2/detail/type_traits/container/forward_to_value.hpp>
+#include <boost/assign/v2/detail/type_traits/container/is_associative.hpp>
+#include <boost/assign/v2/detail/type_traits/container/is_fifo.hpp>
+#include <boost/assign/v2/detail/type_traits/container/is_lifo.hpp>
+#include <boost/assign/v2/detail/type_traits/container/is_map.hpp>
+#include <boost/assign/v2/detail/type_traits/container/is_ptr_container.hpp>
+#include <boost/assign/v2/detail/type_traits/container/is_range.hpp>
+#include <boost/assign/v2/detail/type_traits/container/is_set.hpp>
+#include <boost/assign/v2/detail/type_traits/container/is_sorted.hpp>
+#include <boost/assign/v2/detail/type_traits/container/is_static_array.hpp>
+#include <boost/assign/v2/detail/type_traits/container/ptr_to_value.hpp>
+#include <boost/assign/v2/detail/type_traits/container/ptr_to_value_container.hpp>
+#include <boost/assign/v2/detail/type_traits/container/static_size.hpp>
+#include <boost/assign/v2/detail/type_traits/container/value.hpp>
+#include <boost/assign/v2/detail/type_traits/container/value_container.hpp>
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/detail/type_traits/container/forward_to_value.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/detail/type_traits/container/forward_to_value.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,30 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_TYPE_TRAITS_CONTAINER_FWD_TO_VALUE_ER_2010_HPP
+#define BOOST_ASSIGN_V2_TYPE_TRAITS_CONTAINER_FWD_TO_VALUE_ER_2010_HPP
+#include <boost/assign/v2/detail/type_traits/container/value_container.hpp>
+
+namespace boost{
+namespace assign{
+namespace v2{
+namespace container_type_traits{
+
+
+	template<template<typename T> class F,typename V>
+    struct forward_to_value: F<
+    	typename value_container<V>::type
+    >{};
+
+}// container_type_traits
+}// v2
+}// assign
+}// boost
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/detail/type_traits/container/has_push.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/detail/type_traits/container/has_push.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,58 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_TYPE_TRAITS_CONTAINER_HAS_PUSH_ER_2010_HPP
+#define BOOST_ASSIGN_V2_TYPE_TRAITS_CONTAINER_HAS_PUSH_ER_2010_HPP
+#include <boost/mpl/bool.hpp>
+#include <boost/type_traits/add_const.hpp>
+#include <boost/config.hpp>
+#include <boost/type_traits/detail/yes_no_type.hpp>
+#include <boost/assign/v2/detail/type_traits/container/value.hpp>
+
+namespace boost{
+namespace assign{
+namespace v2{
+namespace container_type_traits{
+
+
+    template<typename V,typename T 
+    	= typename container_type_traits::value<V>::type>
+    struct has_push{
+        
+        typedef typename boost::type_traits::yes_type yes_;
+        typedef typename boost::type_traits::no_type no_;
+            
+        template<typename U,void (U::*fp)(T const&)>
+        struct helper{
+            // See http://listarchives.boost.org/Archives/boost/2002/03/27233.php
+        };
+        
+        template<typename U>
+        static yes_ test(U*, helper<U, &U::push>* p = 0);
+        static no_ test(...);
+            
+        BOOST_STATIC_CONSTANT(
+            bool, 
+            value = sizeof( test((V*)0) ) == sizeof( yes_ )
+        );
+
+		typedef boost::mpl::bool_<value> type;
+
+    };
+
+    template<typename V>
+    struct has_push_deduced_value : v2::container_type_traits::has_push<V>{};
+    
+}// container_type_traits
+}// v2
+}// assign
+}// boost 
+
+#endif
+
Added: sandbox/statistics/support/boost/assign/v2/detail/type_traits/container/has_static_size.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/detail/type_traits/container/has_static_size.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,47 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_TYPE_TRAITS_CONTAINER_HAS_STATIC_SIZE_ER_2010_HPP
+#define BOOST_ASSIGN_V2_TYPE_TRAITS_CONTAINER_HAS_STATIC_SIZE_ER_2010_HPP
+#include <boost/assign/v2/detail/fwd/ptr_container.hpp>
+#include <boost/mpl/bool.hpp>
+
+namespace boost{
+namespace assign{
+namespace v2{
+namespace container_type_traits{
+
+	template<typename T>
+	struct has_static_size{
+        typedef typename T::size_type size_type;
+        typedef char yes;
+        typedef char (&no)[2];
+		typedef const size_type sig;
+
+        template<typename U,sig> struct sfinae { };
+		template<typename U> static yes test(sfinae<U, U::static_size>*);
+        template<typename U> static no test(...);
+
+        BOOST_STATIC_CONSTANT(
+            bool,
+            value = sizeof( test<T>(0) ) == sizeof( yes )
+         );
+
+         typedef boost::mpl::bool_<value> type;
+    }; 
+            
+	template<typename T,std::size_t N,typename C>
+    struct has_static_size< boost::ptr_array<T, N, C> > : boost::mpl::true_{};
+
+}// container_type_traits
+}// v2
+}// assign
+}// boost 
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/detail/type_traits/container/is_associative.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/detail/type_traits/container/is_associative.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,35 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_TYPE_TRAITS_CONTAINER_IS_ASSOCIATIVE_ER_2010_HPP
+#define BOOST_ASSIGN_V2_TYPE_TRAITS_CONTAINER_IS_ASSOCIATIVE_ER_2010_HPP
+#include <boost/mpl/or.hpp>
+#include <boost/assign/v2/detail/type_traits/container/is_map.hpp>
+#include <boost/assign/v2/detail/type_traits/container/is_set.hpp>
+
+namespace boost{
+namespace assign{
+namespace v2{
+namespace container_tag{
+	struct associative{};
+}// container_tag
+namespace container_type_traits{
+
+	template<typename V>
+    struct is_associative : boost::mpl::or_<
+    	container_type_traits::is_set<V>,
+        container_type_traits::is_map<V>
+    >{};
+    
+}// container_type_traits
+}// v2
+}// assign
+}// boost 
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/detail/type_traits/container/is_fifo.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/detail/type_traits/container/is_fifo.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,44 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_TYPE_TRAITS_CONTAINER_IS_FIFO_ER_2010_HPP
+#define BOOST_ASSIGN_V2_TYPE_TRAITS_CONTAINER_IS_FIFO_ER_2010_HPP
+#include <boost/mpl/bool.hpp>
+#include <boost/type_traits/remove_cv.hpp>
+#include <boost/assign/v2/detail/fwd/container.hpp>
+#include <boost/assign/v2/detail/type_traits/container/is_ptr_container.hpp>
+#include <boost/assign/v2/detail/type_traits/container/forward_to_value.hpp>
+
+namespace boost{
+namespace assign{
+namespace v2{
+namespace container_tag{
+	struct fifo{};
+}// container_tag
+namespace container_type_traits{
+
+	template<typename V>
+    struct is_fifo_impl : boost::mpl::false_{};
+    
+    template<typename T,typename A>
+    struct is_fifo_impl< std::queue<T,A> > : boost::mpl::true_{};
+
+    template<typename V>
+    struct is_fifo : forward_to_value<
+    	is_fifo_impl,
+    	typename boost::remove_cv<V>::type
+    >{};
+
+
+}// container_type_traits
+}// v2
+}// assign
+}// boost
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/detail/type_traits/container/is_lifo.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/detail/type_traits/container/is_lifo.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,43 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_TYPE_TRAITS_CONTAINER_IS_LIFO_ER_2010_HPP
+#define BOOST_ASSIGN_V2_TYPE_TRAITS_CONTAINER_IS_LIFO_ER_2010_HPP
+#include <boost/mpl/bool.hpp>
+#include <boost/type_traits/remove_cv.hpp>
+#include <boost/assign/v2/detail/fwd/container.hpp>
+#include <boost/assign/v2/detail/type_traits/container/is_ptr_container.hpp>
+#include <boost/assign/v2/detail/type_traits/container/forward_to_value.hpp>
+
+namespace boost{
+namespace assign{
+namespace v2{
+namespace container_tag{
+	struct lifo{};
+}// container_tag
+namespace container_type_traits{
+
+	template<typename V>
+    struct is_lifo_impl : boost::mpl::false_{};
+    
+    template<typename T,typename A>
+    struct is_lifo_impl< std::stack<T,A> > : boost::mpl::true_{};
+
+    template<typename V>
+    struct is_lifo : forward_to_value<
+    	is_lifo_impl,
+    	typename boost::remove_cv<V>::type
+    >{};
+
+}// container_type_traits
+}// v2
+}// assign
+}// boost
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/detail/type_traits/container/is_map.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/detail/type_traits/container/is_map.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,45 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_TYPE_TRAITS_CONTAINER_IS_MAP_ER_2010_HPP
+#define BOOST_ASSIGN_V2_TYPE_TRAITS_CONTAINER_IS_MAP_ER_2010_HPP
+#include <boost/mpl/bool.hpp>
+#include <boost/type_traits/remove_cv.hpp>
+#include <boost/assign/v2/detail/fwd/container.hpp>
+#include <boost/assign/v2/detail/type_traits/container/is_ptr_container.hpp>
+#include <boost/assign/v2/detail/type_traits/container/forward_to_value.hpp>
+
+namespace boost{
+namespace assign{
+namespace v2{
+namespace container_tag{
+	struct map{};
+}// container_tag
+namespace container_type_traits{
+
+	template<typename V>
+    struct is_map_impl : boost::mpl::false_{};
+
+	template<typename K,typename D,typename C,typename A>
+    struct is_map_impl< 
+    	std::map<K,D,C,A> 
+    > : boost::mpl::true_{};
+
+    template<typename V>
+    struct is_map : forward_to_value<
+    	is_map_impl,
+    	typename boost::remove_cv<V>::type
+    >{};
+    
+}// container_type_traits
+}// v2
+}// assign
+}// boost 
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/detail/type_traits/container/is_ptr_container.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/detail/type_traits/container/is_ptr_container.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,29 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_TYPE_TRAITS_CONTAINER_IS_PTR_CONTAINER_ER_2010_HPP
+#define BOOST_ASSIGN_V2_TYPE_TRAITS_CONTAINER_IS_PTR_CONTAINER_ER_2010_HPP
+#include <boost/mpl/identity.hpp>
+#include <boost/mpl/eval_if.hpp>
+#include <boost/assign/v2/detail/type_traits/container/ptr_to_value.hpp>
+
+namespace boost{
+namespace assign{
+namespace v2{
+namespace container_type_traits{
+
+	template<typename V>
+    struct is_ptr_container : ptr_to_value<V>::is_applicable{};
+
+}// container_type_traits
+}// v2
+}// assign
+}// boost
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/detail/type_traits/container/is_range.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/detail/type_traits/container/is_range.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,32 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_TYPE_TRAITS_CONTAINER_IS_RANGE_ER_2010_HPP
+#define BOOST_ASSIGN_V2_TYPE_TRAITS_CONTAINER_IS_RANGE_ER_2010_HPP
+#include <boost/mpl/bool.hpp>
+
+namespace boost{
+namespace assign{
+namespace v2{
+namespace container_tag{
+	struct range{};
+}// container_tag
+namespace container_type_traits{
+
+	template<typename V>
+    struct is_range{
+    	// purposedly left blank.
+    };
+    
+}// container_type_traits
+}// v2
+}// assign
+}// boost
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/detail/type_traits/container/is_set.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/detail/type_traits/container/is_set.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,45 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_TYPE_TRAITS_CONTAINER_IS_SET_ER_2010_HPP
+#define BOOST_ASSIGN_V2_TYPE_TRAITS_CONTAINER_IS_SET_ER_2010_HPP
+#include <boost/mpl/bool.hpp>
+#include <boost/type_traits/remove_cv.hpp>
+#include <boost/assign/v2/detail/fwd/container.hpp>
+#include <boost/assign/v2/detail/type_traits/container/is_ptr_container.hpp>
+#include <boost/assign/v2/detail/type_traits/container/forward_to_value.hpp>
+
+namespace boost{
+namespace assign{
+namespace v2{
+namespace container_tag{
+	struct set{};
+}// container_tag
+namespace container_type_traits{
+
+	template<typename V>
+    struct is_set_impl : boost::mpl::false_{};
+
+	template<typename K,typename C,typename A>
+    struct is_set_impl< 
+    	std::set<K,C,A> 
+    > : boost::mpl::true_{};
+
+    template<typename V>
+    struct is_set : forward_to_value<
+    	is_set_impl,
+    	typename boost::remove_cv<V>::type
+    >{};
+    
+}// container_type_traits
+}// v2
+}// assign
+}// boost 
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/detail/type_traits/container/is_sorted.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/detail/type_traits/container/is_sorted.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,45 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_TYPE_TRAITS_CONTAINER_IS_SORTED_ER_2010_HPP
+#define BOOST_ASSIGN_V2_TYPE_TRAITS_CONTAINER_IS_SORTED_ER_2010_HPP
+#include <boost/mpl/bool.hpp>
+#include <boost/type_traits/remove_cv.hpp>
+#include <boost/assign/v2/detail/fwd/container.hpp>
+#include <boost/assign/v2/detail/type_traits/container/forward_to_value.hpp>
+
+namespace boost{
+namespace assign{
+namespace v2{
+namespace container_tag{
+	struct sorted{};
+}// container_tag
+namespace container_type_traits{
+
+	template<typename V>
+    struct is_sorted_impl : boost::mpl::false_{};
+    
+    template<typename T,typename C,typename A>
+    struct is_sorted_impl< std::set<T,C,A> > : boost::mpl::true_{};
+
+    template<typename K,typename T,typename C,typename A>
+    struct is_sorted_impl< std::map<K,T,C,A> > : boost::mpl::true_{};
+
+    template<typename V>
+    struct is_sorted : forward_to_value<
+    	is_sorted_impl,
+    	typename boost::remove_cv<V>::type
+    >{};
+
+}// container_type_traits
+}// v2
+}// assign
+}// boost
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/detail/type_traits/container/is_static_array.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/detail/type_traits/container/is_static_array.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,47 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_TYPE_TRAITS_CONTAINER_IS_STATIC_ARRAY_ER_2010_HPP
+#define BOOST_ASSIGN_V2_TYPE_TRAITS_CONTAINER_IS_STATIC_ARRAY_ER_2010_HPP
+#include <boost/type_traits/remove_cv.hpp>
+#include <boost/assign/v2/detail/type_traits/container/has_static_size.hpp>
+#include <boost/assign/v2/detail/type_traits/container/forward_to_value.hpp>
+
+namespace boost{
+
+// this here is necessary to avoid compiler error in <boost/array.hpp>
+#if !BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564))
+    template< class T, std::size_t sz >
+    class array;
+#endif    
+
+namespace assign{
+namespace v2{
+namespace container_tag{
+	struct static_array{};
+}// container_tag
+namespace container_type_traits{
+
+	// TODO also check that operator[] exists
+
+	template<typename T>
+    struct is_static_array_impl : has_static_size<T>{};
+
+    template<typename V>
+    struct is_static_array : forward_to_value<
+    	is_static_array_impl,
+    	typename boost::remove_cv<V>::type
+    >{};
+
+}// container_type_traits
+}// v2
+}// assign
+}// boost 
+
+#endif
\ No newline at end of file
Added: sandbox/statistics/support/boost/assign/v2/detail/type_traits/container/ptr_to_value.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/detail/type_traits/container/ptr_to_value.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,196 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_TYPE_TRAITS_CONTAINER_PTR_TO_VALUE_ER_2010_HPP
+#define BOOST_ASSIGN_V2_TYPE_TRAITS_CONTAINER_PTR_TO_VALUE_ER_2010_HPP
+#include <memory> // std::allocator
+#include <boost/preprocessor/cat.hpp>
+#include <boost/mpl/bool.hpp>
+#include <boost/type_traits/remove_reference.hpp>
+#include <boost/assign/v2/detail/fwd/ptr_container.hpp>
+#include <boost/assign/v2/detail/fwd/container.hpp>
+#include <boost/assign/v2/detail/type_traits/container/static_size.hpp>
+
+namespace boost{
+namespace assign{
+namespace v2{
+namespace container_type_traits{
+
+	template<typename V>
+    struct ptr_to_value{
+    
+    	struct is_applicable : boost::mpl::false_{};
+    
+    };
+
+namespace ptr_to_value_aux{
+
+	template<typename A,typename T> struct allocator{};
+    
+    template<typename T>
+    struct allocator<std::allocator<void*>, T>
+    {
+    	typedef std::allocator<T> type;
+    };
+
+	template<typename V>
+    struct common
+    {
+
+    	struct is_applicable : boost::mpl::true_{};
+
+    	typedef typename boost::remove_reference<
+        	typename V::reference
+        >::type value_type;
+        
+        typedef typename ptr_to_value_aux::allocator<
+        	typename V::allocator_type,
+            value_type
+        >::type allocator_type;
+    };
+
+	template<typename V,template<typename, std::size_t> class F>
+	struct static_array_like{	
+
+		// there is no allocator, hence can't derive from common<V>
+
+    	struct is_applicable : boost::mpl::true_{};
+
+    	typedef typename boost::remove_reference<
+        	typename V::reference
+        >::type value_type;
+	
+		typedef F<
+        	typename static_array_like::value_type,
+            container_type_traits::static_size<V>::value 
+        > container_type;
+        
+    };
+
+	template<typename V,template<typename,typename> class F>
+	struct seq_like : ptr_to_value_aux::common<V>{	
+
+		typedef F<
+        	typename seq_like::value_type,
+            typename seq_like::allocator_type
+        > container_type;
+        
+    };
+
+	template<typename V,template<typename,typename,typename,typename> class F>
+	struct map_like : ptr_to_value_aux::common<V>{	
+
+		typedef F<
+        	typename V::key_type,
+        	typename map_like::value_type,
+            typename V::key_compare,
+            typename map_like::allocator_type
+        > container_type;
+        
+    };
+
+	template<typename V,template<typename,typename,typename> class F>
+	struct set_like : ptr_to_value_aux::common<V>{	
+
+		typedef F<
+        	typename V::key_type,
+            typename V::key_compare,
+            typename set_like::allocator_type
+        > container_type;
+        
+    };
+
+	template<typename V,
+    	template<typename,typename,typename,typename,typename> class F>
+    class unordered_map_like : ptr_to_value_aux::common<V>{
+
+		typedef F<
+        	typename V::key_type,
+            typename unordered_map_like::value_type,
+            typename V::hasher,
+            typename V::key_equal,
+            typename unordered_map_like::allocator_type
+        > container_type;
+    
+    };
+
+	template<typename V,
+    	template<typename,typename,typename,typename> class F>
+    class unordered_set_like : ptr_to_value_aux::common<V>{
+
+		typedef F<
+        	typename V::key_type,
+            typename V::hasher,
+            typename V::key_equal,
+            typename unordered_set_like::allocator_type
+        > container_type;
+    
+    };
+
+    
+}// ptr_to_value_aux
+
+
+	// Array
+	template<
+    	typename T,
+        std::size_t N,
+        typename A
+    > 
+    struct ptr_to_value<
+    	boost::ptr_array<T,N,A>
+    > : ptr_to_value_aux::static_array_like<
+    	boost::ptr_array<T,N,A>,
+        boost::array
+    >{};
+
+	// Sequence
+
+	template<
+    	typename T,
+        typename C,
+        typename A
+    > 
+    struct ptr_to_value<
+    	boost::ptr_deque<T,C,A>
+    > : ptr_to_value_aux::seq_like<
+    	boost::ptr_deque<T,C,A>,
+        std::deque
+    >{};
+
+	template<
+    	typename T,
+        typename C,
+        typename A
+    > 
+    struct ptr_to_value<
+    	boost::ptr_list<T,C,A>
+    > : ptr_to_value_aux::seq_like<
+    	boost::ptr_list<T,C,A>,
+        std::list
+    >{};
+
+	template<
+    	typename T,
+        typename C,
+        typename A
+    > 
+    struct ptr_to_value<
+    	boost::ptr_vector<T,C,A>
+    > : ptr_to_value_aux::seq_like<
+    	boost::ptr_vector<T,C,A>,
+        std::vector
+    >{};
+
+}// container_type_traits
+}// v2
+}// assign
+}// boost
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/detail/type_traits/container/ptr_to_value_container.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/detail/type_traits/container/ptr_to_value_container.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,29 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_TYPE_TRAITS_CONTAINER_PTR_TO_VALUE_CONTAINER_ER_2010_HPP
+#define BOOST_ASSIGN_V2_TYPE_TRAITS_CONTAINER_PTR_TO_VALUE_CONTAINER_ER_2010_HPP
+#include <boost/assign/v2/detail/type_traits/container/is_ptr_container.hpp>
+
+namespace boost{
+namespace assign{
+namespace v2{
+namespace container_type_traits{
+
+    template<typename V>
+    struct ptr_to_value_container{
+    	typedef typename ptr_to_value<V>::container_type type;
+    };
+    
+}// container_type_traits
+}// v2
+}// assign
+}// boost
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/detail/type_traits/container/static_size.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/detail/type_traits/container/static_size.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,47 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_TYPE_TRAITS_CONTAINER_STATIC_SIZE_ER_2010_HPP
+#define BOOST_ASSIGN_V2_TYPE_TRAITS_CONTAINER_STATIC_SIZE_ER_2010_HPP
+#include <boost/mpl/size_t.hpp>
+#include <boost/assign/v2/detail/fwd/container.hpp>
+#include <boost/assign/v2/detail/fwd/ptr_container.hpp>
+
+namespace boost{
+namespace assign{
+namespace v2{
+namespace container_type_traits{
+
+
+	template<typename V>
+    struct static_size{
+    
+    	// Needed as a meta-function (indirection) bec. ptr_array
+        // does not expose static_size.
+    
+    };
+
+	template<typename T,std::size_t N>
+    struct static_size< boost::array<T,N> >
+    	: boost::mpl::size_t<
+    		boost::array<T,N>::static_size
+    	>{};
+
+	template<typename T,std::size_t N,typename C>
+    struct static_size< boost::ptr_array<T, N, C> >
+    	: boost::mpl::size_t<
+    		N
+    	>{};
+
+}// container_type_traits
+}// v2
+}// assign
+}// boost
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/detail/type_traits/container/value.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/detail/type_traits/container/value.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,41 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_TYPE_TRAITS_CONTAINER_VALUE_ER_2010_HPP
+#define BOOST_ASSIGN_V2_TYPE_TRAITS_CONTAINER_VALUE_ER_2010_HPP
+#include <boost/mpl/eval_if.hpp>
+#include <boost/mpl/identity.hpp>
+#include <boost/type_traits/remove_pointer.hpp>
+#include <boost/assign/v2/detail/type_traits/value.hpp>
+#include <boost/assign/v2/detail/type_traits/container/forward_to_value.hpp>
+
+namespace boost{
+namespace assign{
+namespace v2{
+namespace container_type_traits
+{
+
+	// TODO
+    // maybe this should be
+    // 	remove_reference<V::reference>::type
+    // or 
+    // 	range_value<V>, is available.
+    // Think about ptr_container in making this change.
+    template<typename V>
+    struct value : forward_to_value<
+    	type_traits::value,
+        V
+    >{};
+
+}// container_type_traits
+}// v2
+}// assign
+}// boost
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/detail/type_traits/container/value_container.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/detail/type_traits/container/value_container.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,34 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_TYPE_TRAITS_CONTAINER_VALUE_CONTAINER_ER_2010_HPP
+#define BOOST_ASSIGN_V2_TYPE_TRAITS_CONTAINER_VALUE_CONTAINER_ER_2010_HPP
+#include <boost/mpl/identity.hpp>
+#include <boost/mpl/eval_if.hpp>
+#include <boost/assign/v2/detail/type_traits/container/is_ptr_container.hpp>
+#include <boost/assign/v2/detail/type_traits/container/ptr_to_value_container.hpp>
+
+namespace boost{
+namespace assign{
+namespace v2{
+namespace container_type_traits{
+
+	template<typename V>
+    struct value_container : boost::mpl::eval_if<
+        is_ptr_container<V>,
+    	ptr_to_value_container<V>,
+        boost::mpl::identity<V>
+    >{};
+    
+}// container_type_traits
+}// v2
+}// assign
+}// boost
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/detail/type_traits/decay.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/detail/type_traits/decay.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,35 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_TYPE_TRAITS_DECAY_OF_ER_2010_HPP
+#define BOOST_ASSIGN_V2_TYPE_TRAITS_DECAY_OF_ER_2010_HPP
+#include <boost/mpl/eval_if.hpp>
+#include <boost/type_traits/is_array.hpp>
+#include <boost/type_traits/decay.hpp>
+
+namespace boost{
+namespace assign{
+namespace v2{
+namespace type_traits{
+
+    // Add constness to array parameters
+    // to support string literals properly
+    template< class T >
+    struct decay : boost::mpl::eval_if<
+        ::boost::is_array<T>,
+        ::boost::decay<const T>,
+        ::boost::decay<T> >
+    {};
+
+}// type_traits
+}// v2
+}// assign
+}// boost
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/detail/type_traits/has_value_type.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/detail/type_traits/has_value_type.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,45 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_TYPE_TRAITS_HAS_VALUE_TYPE_ER_2010_HPP
+#define BOOST_ASSIGN_V2_TYPE_TRAITS_HAS_VALUE_TYPE_ER_2010_HPP
+#include <boost/config.hpp>
+#include <boost/mpl/bool.hpp>
+#include <boost/type_traits/detail/yes_no_type.hpp>
+
+namespace boost{
+namespace assign{
+namespace v2{
+namespace type_traits{
+
+    template<typename T>
+    struct has_value_type{
+        
+        typedef typename boost::type_traits::yes_type yes_;
+        typedef typename boost::type_traits::no_type no_;
+            
+        
+        template<typename U>
+        static yes_ test(U*, typename U::value_type* p = 0);
+        static no_ test(...);
+            
+        BOOST_STATIC_CONSTANT(
+            bool, 
+            value = sizeof( test((T*)0) ) == sizeof( yes_ )
+        );
+		typedef boost::mpl::bool_<value> type;
+    };
+
+    
+}// type_traits
+}// v2
+}// assign
+}// boost 
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/detail/type_traits/is_stl_pair.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/detail/type_traits/is_stl_pair.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,37 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_TYPE_TRAITS_IS_STL_PAIR_ER_2010_HPP
+#define BOOST_ASSIGN_V2_TYPE_TRAITS_IS_STL_PAIR_ER_2010_HPP
+#include <utility>
+#include <boost/mpl/bool.hpp>
+#include <boost/type_traits/detail/yes_no_type.hpp>
+
+namespace boost{
+namespace assign{
+namespace v2{
+namespace type_traits{
+
+//    template< class T, class U >
+//    boost::type_traits::yes_type is_pair( const std::pair<T,U>* );
+//    boost::type_traits::no_type is_pair( ... ); 
+
+    template<typename T>
+    struct is_stl_pair : boost::mpl::false_{};
+    
+    template<typename T,typename U>
+    struct is_stl_pair< std::pair<T, U> > : boost::mpl::true_{};
+
+
+}// type_traits
+}// v2
+}// assign
+}// boost 
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/detail/type_traits/meta_convert.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/detail/type_traits/meta_convert.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,35 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_TYPE_TRAITS_HAS_VALUE_TYPE_ER_2010_HPP
+#define BOOST_ASSIGN_V2_TYPE_TRAITS_HAS_VALUE_TYPE_ER_2010_HPP
+#include <boost/assign/v2/ref/detail/convert_traits/result.hpp>
+
+namespace boost{
+//	struct boost::use_default;
+namespace assign{
+namespace v2{
+namespace type_traits{
+
+    template<typename Tag = boost::use_default>
+    struct meta_convert{
+
+        template<typename T1,typename T2>
+        struct apply : ref::convert_traits::result<T1,T2>{};
+
+	};
+
+	// Specialize on Tag as needed.
+
+}// type_traits
+}// v2
+}// assign
+}// boost
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/detail/type_traits/same_remove_cv.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/detail/type_traits/same_remove_cv.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,32 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_DETAIL_TYPE_TRAITS_SAME_REMOVE_CV_ER_2010_HPP
+#define BOOST_ASSIGN_V2_DETAIL_TYPE_TRAITS_SAME_REMOVE_CV_ER_2010_HPP
+#include <boost/type_traits/is_same.hpp>
+#include <boost/type_traits/remove_cv.hpp>
+
+namespace boost{
+namespace assign{
+namespace v2{
+namespace type_traits{
+
+	template<typename T,typename U>
+	struct same_remove_cv : boost::is_same<
+    	typename boost::remove_cv<T>::type,
+        typename boost::remove_cv<U>::type
+    >{};
+
+}// type_traits
+}// v2
+}// assign
+}// boost
+
+#endif
+
Added: sandbox/statistics/support/boost/assign/v2/detail/type_traits/type_traits.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/detail/type_traits/type_traits.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,20 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_TYPE_TRAITS_TYPE_TRAITS_ER_2010_HPP
+#define BOOST_ASSIGN_V2_TYPE_TRAITS_TYPE_TRAITS_ER_2010_HPP
+
+#include <boost/assign/v2/detail/type_traits/decay.hpp>
+#include <boost/assign/v2/detail/type_traits/has_value_type.hpp>
+#include <boost/assign/v2/detail/type_traits/is_stl_pair.hpp>
+#include <boost/assign/v2/detail/type_traits/meta_convert.hpp>
+#include <boost/assign/v2/detail/type_traits/value.hpp>
+#include <boost/assign/v2/detail/type_traits/container/container.hpp>
+
+#endif
\ No newline at end of file
Added: sandbox/statistics/support/boost/assign/v2/detail/type_traits/value.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/detail/type_traits/value.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,35 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_TYPE_TRAITS_VALUE_ER_2010_HPP
+#define BOOST_ASSIGN_V2_TYPE_TRAITS_VALUE_ER_2010_HPP
+#include <boost/type_traits/remove_cv.hpp>
+#include <boost/mpl/identity.hpp>
+
+namespace boost{
+namespace assign{
+namespace v2{
+namespace type_traits{
+
+    template<typename V>
+    struct value_impl : boost::mpl::identity<
+    	typename V::value_type
+    >{};
+
+    template<typename V>
+    struct value : value_impl<
+        typename boost::remove_cv<V>::type
+    >{};
+
+}// type_traits
+}// v2
+}// assign
+}// boost
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/put/compose/common/common.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/put/compose/common/common.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,15 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_PUT_COMPOSE_COMMON_COMMON_ER_2010_HPP
+#define BOOST_ASSIGN_V2_PUT_COMPOSE_COMMON_COMMON_ER_2010_HPP
+
+#include <boost/assign/v2/put/compose/common/common.hpp>
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/put/compose/common/forward_parameter.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/put/compose/common/forward_parameter.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,93 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_PUT_COMPOSE_FORWARD_PARAMETER_ER_2010_HPP
+#define BOOST_ASSIGN_V2_PUT_COMPOSE_FORWARD_PARAMETER_ER_2010_HPP
+#include <boost/mpl/apply.hpp>
+#include <boost/mpl/at.hpp>
+#include <boost/mpl/fold.hpp>
+#include <boost/mpl/placeholders.hpp>
+#include <boost/mpl/size.hpp>
+#include <boost/type_traits/remove_cv.hpp>
+#include <boost/type_traits/remove_reference.hpp>
+#include <boost/assign/v2/put/generic/result_of_modulo.hpp>
+    
+namespace boost{
+namespace assign{
+namespace v2{
+namespace put_compose_aux{
+
+	template<std::size_t N,typename Pars, typename T, 
+    	bool exit = (N == boost::mpl::size<Pars>::value)>
+	struct result_of_forward_parameter
+    {
+    	typedef typename boost::mpl::at_c<Pars, N>::type at_;
+        typedef result_of_modulo::generic<T> meta_;
+        typedef typename boost::mpl::apply1<
+        	meta_,
+            at_
+        >::type new_t_;
+        
+        typedef result_of_forward_parameter<N+1, Pars, new_t_> next_;
+        
+        typedef typename next_::type type;
+        
+        template<typename H>
+        static type call(H const& pars_holder, T const& t)
+        {
+        	typedef boost::mpl::int_<N> int_;
+        	return next_::call(
+            	pars_holder,
+                t % pars_holder.static_lookup( int_() )
+            );
+        }
+        
+    };
+
+	template<std::size_t N,typename Pars, typename T>
+	struct result_of_forward_parameter<N, Pars, T, true>
+    {
+
+		typedef T type;
+
+        template<typename H>
+        static type call(H const& pars_holder, T const& t)
+        {
+        	return t;
+        }
+    
+    };
+
+	template<typename Pars, typename T,typename C>
+    typename result_of_forward_parameter<0, Pars, T>::type
+	forward_parameter(
+    	T const& object,
+        C const& c
+	)
+    {
+    	typedef result_of_forward_parameter<0, Pars, T> caller_;
+        return caller_::call( c.parameters(), object );
+	}
+
+}// put_compose_aux
+namespace result_of{
+
+	template<typename T,typename Pars>
+    struct forward_parameter : put_compose_aux::result_of_forward_parameter<
+		0,
+        Pars,
+        T    
+    >{};
+    
+}// result_of
+}// v2
+}// assign
+}// boost
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/put/compose/compose.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/put/compose/compose.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,17 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_PUT_COMPOSE_COMPOSE_ER_2010_HPP
+#define BOOST_ASSIGN_V2_PUT_COMPOSE_COMPOSE_ER_2010_HPP
+
+#include <boost/assign/v2/put/compose/common/common.hpp>
+#include <boost/assign/v2/put/compose/functor/functor.hpp>
+#include <boost/assign/v2/put/compose/csv/csv.hpp>
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/put/compose/csv/composer.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/put/compose/csv/composer.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,137 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_PUT_COMPOSE_CSV_COMPOSER_ER_2010_HPP
+#define BOOST_ASSIGN_V2_PUT_COMPOSE_CSV_COMPOSER_ER_2010_HPP
+#include <boost/preprocessor/arithmetic/inc.hpp>
+#include <boost/preprocessor/repetition/repeat.hpp>
+#include <boost/preprocessor/repetition/repeat_from_to.hpp>
+#include <boost/preprocessor/repetition/enum_params.hpp>
+#include <boost/preprocessor/repetition/enum_binary_params.hpp>
+#include <boost/mpl/apply.hpp>
+#include <boost/mpl/push_back.hpp>
+#include <boost/mpl/size.hpp>
+#include <boost/mpl/aux_/na.hpp>
+#include <boost/mpl/vector/vector0.hpp>
+#include <boost/assign/v2/detail/config/limit_csv_arity.hpp>
+#include <boost/assign/v2/ref/anon/csv/assign_copy.hpp>
+#include <boost/assign/v2/ref/fusion/nth_result_of.hpp>
+#include <boost/assign/v2/ref/wrapper/copy.hpp>
+#include <boost/assign/v2/put/compose/csv/held.hpp>
+
+namespace boost{
+	struct use_default;
+namespace assign{ 
+namespace v2{
+namespace put_compose_csv_aux{
+
+    template<typename Pars = boost::mpl::vector0<> >
+	class composer
+    {
+
+    	typedef boost::use_default tag2_;
+    	typedef v2::ref::assign_copy::nth_result_of::fusion<tag2_> meta1_;
+
+		public:
+        
+		BOOST_STATIC_CONSTANT(
+        	std::size_t, 
+            static_parameters_size = boost::mpl::size<Pars>::value
+        );
+
+        typedef typename boost::mpl::apply1<meta1_, Pars>::type pars_cont_type;
+
+		composer(){}
+		explicit composer(pars_cont_type const& p) : pars_cont( p ){}
+
+        template<typename T>
+        struct modulo_result
+        {
+        	typedef typename boost::mpl::push_back<
+    			Pars,
+                T const
+            >::type new_;
+            typedef composer<new_> type;
+        };
+        
+        template<typename T>
+        typename modulo_result<T>::type
+        operator%(T const& t)const
+        {
+        	typedef typename modulo_result<T>::type result_;
+            return result_( this->pars_cont( t ) );
+        }
+		
+    	template<std::size_t N, typename U = boost::mpl::na>
+        struct result{
+        	typedef put_compose_csv_aux::held<Pars, N, U> type;
+        };
+
+		typename result<0>::type
+    	operator()()const 
+	    { 
+			typedef typename result<0>::type result_;
+    		namespace ns = ref::assign_copy; 
+    		return result_( 
+        		*this, 
+        		ns::csv_anon( _nil ) 
+    		);
+    	} 
+
+#define MACRO1(N, U)\
+    namespace ns = ref::assign_copy;\
+    return result_( \
+        this->pars_cont, \
+        ns::csv_anon<U>( BOOST_PP_ENUM_PARAMS(N, _) ) \
+    );\
+/**/
+
+#define MACRO2(z, N, data)\
+	template<typename T>\
+	typename result<N, T>::type\
+    operator()( BOOST_PP_ENUM_PARAMS(N, T &_) )const \
+    { \
+    	typedef typename result<N, T>::type result_;\
+        MACRO1( N, T )\
+    } \
+	template<typename T>\
+	typename result<N, T const>::type\
+    operator()( BOOST_PP_ENUM_PARAMS(N, T const &_) )const \
+    { \
+    	typedef typename result<N, T const>::type result_;\
+        MACRO1( N, T const )\
+    } \
+/**/
+
+BOOST_PP_REPEAT_FROM_TO(
+	1,
+    BOOST_PP_INC(BOOST_ASSIGN_V2_LIMIT_CSV_ARITY),
+    MACRO2,
+    ~
+)
+#undef MACRO1
+#undef MACRO2
+
+		protected:
+		pars_cont_type pars_cont;
+        
+    };
+
+}// put_compose_csv_aux
+namespace adaptor{
+namespace{
+	put_compose_csv_aux::composer<> const _csv_put 
+    	= put_compose_csv_aux::composer<>();
+}
+}// adaptor
+}// v2
+}// assign
+}// boost
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/put/compose/csv/csv.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/put/compose/csv/csv.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,18 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_PUT_COMPOSE_CSV_CSV_ER_2010_HPP
+#define BOOST_ASSIGN_V2_PUT_COMPOSE_CSV_CSV_ER_2010_HPP
+
+#include <boost/assign/v2/put/compose/csv/held.hpp>
+#include <boost/assign/v2/put/compose/csv/composer.hpp>
+#include <boost/assign/v2/put/compose/csv/forward_seq_arg.hpp>
+#include <boost/assign/v2/put/compose/csv/sub.hpp>
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/put/compose/csv/forward_seq_arg.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/put/compose/csv/forward_seq_arg.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,67 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_PUT_COMPOSE_FORWARD_SEQ_ARG_ER_2010_HPP
+#define BOOST_ASSIGN_V2_PUT_COMPOSE_FORWARD_SEQ_ARG_ER_2010_HPP
+#include <algorithm>
+#include <boost/range/begin.hpp>
+#include <boost/range/end.hpp>
+#include <boost/assign/v2/put/compose/csv/held.hpp>
+#include <boost/assign/v2/ref/wrapper/framework.hpp>
+#include <boost/assign/v2/ref/wrapper/copy.hpp>
+
+namespace boost{
+namespace assign{
+namespace v2{
+namespace put_compose_csv_aux{
+
+	template<typename O>
+	class arg_forwarder : ref::wrapper<ref::assign_tag::copy, O const>
+    {
+    	typedef ref::assign_tag::copy assign_tag_;
+        typedef ref::wrapper<assign_tag_, O const> super_t;
+
+        public:
+        
+        arg_forwarder(){}
+        arg_forwarder(O const& object)
+        	:super_t( object ){}
+        
+        template<typename T>
+        void operator()(T& t)const
+        {
+        	this->unwrap()( t );
+        }
+        template<typename T>
+        void operator()(T const& t)const
+        {
+        	this->unwrap()( t );
+        }
+
+    };
+
+	template<typename O, typename Pars, std::size_t N, typename U>
+	void forward_seq_arg(O const& object, held<Pars, N, U> const& h)
+    {
+    	typedef arg_forwarder<O> forwarder_;
+        forwarder_ f( object );
+		std::for_each(
+        	boost::begin( h.sequence_arg() ),
+            boost::end( h.sequence_arg() ),
+            f
+        );
+		
+    }
+ 
+}// put_compose_csv_aux
+}// v2
+}// assign
+}// boost
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/put/compose/csv/held.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/put/compose/csv/held.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,64 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_PUT_COMPOSE_CSV_HELD_ER_2010_HPP
+#define BOOST_ASSIGN_V2_PUT_COMPOSE_CSV_HELD_ER_2010_HPP
+#include <boost/mpl/apply.hpp>
+#include <boost/assign/v2/ref/anon/csv/assign_copy.hpp>
+#include <boost/assign/v2/ref/fusion/assign_copy.hpp>
+#include <boost/assign/v2/ref/wrapper/copy.hpp>
+
+namespace boost{
+	struct use_default;
+namespace assign{ 
+namespace v2{
+namespace put_compose_csv_aux{
+
+	template<typename Pars, std::size_t N, typename U>
+    struct held
+    {
+        typedef boost::use_default tag2_;
+    	typedef v2::ref::assign_copy::nth_result_of::fusion<tag2_> meta1_;
+        typedef typename boost::mpl::apply1<meta1_, Pars>::type pars_cont_type;
+    	typedef typename v2::ref::assign_copy::nth_result_of::csv_anon<
+    		N,
+        	U
+    	>::type seq_arg_cont_type;
+
+		held(){}
+        held(pars_cont_type const& p, seq_arg_cont_type const& s)
+        	: pars_cont( p ), seq_arg( s ){}
+
+		pars_cont_type const& parameters()const
+        {
+        	return this->pars_cont;
+        }
+
+		seq_arg_cont_type const& sequence_arg()const
+        {
+        	return this->seq_arg;
+        }
+		seq_arg_cont_type& sequence_arg()
+        {
+        	return this->seq_arg;
+        }
+
+		protected:
+		pars_cont_type pars_cont;
+        seq_arg_cont_type seq_arg;
+    
+    };
+
+}// put_compose_csv_aux
+}// v2
+}// assign
+}// boost
+
+#endif
+
Added: sandbox/statistics/support/boost/assign/v2/put/compose/csv/sub.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/put/compose/csv/sub.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,39 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_PUT_COMPOSE_CSV_SUB_ER_2010_HPP
+#define BOOST_ASSIGN_V2_PUT_COMPOSE_CSV_SUB_ER_2010_HPP
+#include <boost/assign/v2/put/compose/common/forward_parameter.hpp>
+#include <boost/assign/v2/put/compose/csv/forward_seq_arg.hpp>
+#include <boost/assign/v2/put/compose/csv/held.hpp>
+
+namespace boost{
+namespace assign{
+namespace v2{
+namespace put_compose_csv_aux{
+
+	template<typename V, typename Pars, std::size_t N, typename U>
+    V& operator|(
+    	V& v, 
+        put_compose_csv_aux::held<Pars, N, U> const& c
+	)
+    {
+        put_compose_csv_aux::forward_seq_arg( 
+        	put_compose_aux::forward_parameter<Pars>( put( v ), c ), 
+            c
+        );
+        return v;
+    }
+    
+}// put_compose_csv_aux
+}// v2
+}// assign
+}// boost
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/put/compose/functor/composer.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/put/compose/functor/composer.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,209 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_PUT_COMPOSE_COMPOSER_ER_2010_HPP
+#define BOOST_ASSIGN_V2_PUT_COMPOSE_COMPOSER_ER_2010_HPP
+#include <boost/preprocessor/arithmetic/inc.hpp>
+#include <boost/preprocessor/cat.hpp>
+#include <boost/preprocessor/repetition/enum_params.hpp>
+#include <boost/preprocessor/repetition/enum_binary_params.hpp>
+#include <boost/preprocessor/repetition/repeat.hpp>
+#include <boost/preprocessor/repetition/repeat_from_to.hpp>
+#include <boost/preprocessor/seq/for_each_product.hpp>
+#include <boost/preprocessor/seq/first_n.hpp>
+
+#include <boost/mpl/apply.hpp>
+#include <boost/mpl/lambda.hpp>
+#include <boost/mpl/placeholders.hpp>
+#include <boost/mpl/push_back.hpp>
+#include <boost/mpl/size.hpp>
+#include <boost/mpl/vector/vector0.hpp>
+#include <boost/mpl/vector/vector10.hpp>
+#include <boost/mpl/vector.hpp>
+
+#include <boost/config.hpp>
+#include <boost/utility/enable_if.hpp>
+
+#include <boost/assign/v2/detail/config/limit_arity.hpp>
+#include <boost/assign/v2/detail/pp/args.hpp>
+#include <boost/assign/v2/detail/pp/params.hpp>
+#include <boost/assign/v2/detail/pp/seq.hpp>
+ 
+#include <boost/assign/v2/detail/functor/crtp_unary_and_up.hpp>
+#include <boost/assign/v2/ref/fusion/assign_copy.hpp>
+#include <boost/assign/v2/ref/fusion_matrix/container.hpp>
+#include <boost/assign/v2/ref/fusion_matrix/nth_result_of.hpp>
+#include <boost/assign/v2/put/compose/tag.hpp>
+
+namespace boost{
+	struct use_default;
+namespace assign{ 
+namespace v2{
+namespace put_compose_aux{
+
+	template<
+    	typename Pars = boost::mpl::vector0<>, 
+    	typename SeqArgs = boost::mpl::vector0<>, 
+        bool enable_pars = (boost::mpl::size<SeqArgs>::value == 0)
+    >
+	class composer;
+
+    template<typename Pars, typename SeqArgs, bool enable_pars>
+    struct composer_result
+    {
+    	template<typename Args>
+        struct apply
+        {
+        	typedef typename boost::mpl::push_back<
+            	SeqArgs,
+            	Args
+        	>::type new_;
+        	typedef composer<Pars, new_> type;
+        };
+    };
+
+
+	template<typename Pars, typename SeqArgs, bool enable_pars>
+	class composer 
+    	:	public functor_aux::crtp_unary_and_up<
+    			composer<Pars, SeqArgs, enable_pars>,
+        		composer_result<Pars, SeqArgs, enable_pars>
+    		>
+    {
+    	typedef boost::use_default tag2_;
+    	typedef v2::ref::assign_copy::nth_result_of::fusion<tag2_> meta1_;
+		typedef ref::assign_tag::copy tag1_;
+		typedef ref::nth_result_of::fusion_matrix<
+        	tag1_,
+            boost::use_default
+        > meta2_;
+
+		typedef functor_aux::crtp_unary_and_up<
+    		composer,
+        	composer_result<Pars, SeqArgs, enable_pars>
+    	> super_t;
+        
+        public:
+
+		BOOST_STATIC_CONSTANT(
+        	std::size_t, 
+            static_parameters_size = boost::mpl::size<Pars>::value
+        );
+
+		BOOST_STATIC_CONSTANT(
+        	std::size_t, 
+            static_sequence_args_size = boost::mpl::size<SeqArgs>::value
+        );
+
+        typedef typename boost::mpl::apply1<meta1_, Pars>::type pars_cont_type;
+        typedef typename boost::mpl::apply1<
+        	meta2_,
+            SeqArgs
+        >::type seq_args_cont_type;
+        
+        composer(){}
+        composer(
+        	pars_cont_type const& p, 
+            seq_args_cont_type const& s
+        ) 
+        	: pars_cont( p ), 
+            seq_args_cont( s ){}
+
+        template<typename T>
+        struct modulo_result
+        {
+        	typedef typename boost::mpl::push_back<
+    			Pars,
+                T const
+            >::type new_;
+            typedef composer<new_, SeqArgs> type;
+        };
+        
+        template<typename T>
+        typename boost::lazy_enable_if_c<
+        	enable_pars,
+        	modulo_result<T>
+        >::type
+        operator%(T const& t)const
+        {
+        	typedef typename modulo_result<T>::type result_;
+            return result_( this->pars_cont( t ), this->seq_args_cont );
+        }
+
+        template<typename Args>
+        struct result : boost::mpl::apply1<
+        	composer_result<Pars, SeqArgs, enable_pars>,
+            Args
+        >
+        {};
+
+		using super_t::operator();
+
+        typename result< 
+        	boost::mpl::vector0<> 
+        >::type
+        operator()()const
+        {
+        	typedef boost::mpl::vector0<> args_;
+        	typedef typename result<args_>::type result_;
+            return result_( this->pars_cont, this->seq_args_cont() );
+        }
+
+#define MACRO1( z, n, data ) \
+ ( BOOST_PP_CAT(_,n) ) \
+/**/
+
+#define MACRO2(z, N1, data) \
+    template<BOOST_PP_ENUM_PARAMS(N1, typename U)> \
+    typename result< \
+        boost::mpl::vector<BOOST_PP_ENUM_PARAMS(N1, U)> \
+    >::type \
+    impl( BOOST_PP_ENUM_BINARY_PARAMS(N1, U, &_) )const{ \
+        typedef boost::mpl::vector<BOOST_PP_ENUM_PARAMS(N1, U)> args_; \
+        typedef typename result<args_>::type result_; \
+        return result_( \
+        	this->pars_cont, \
+            this->seq_args_cont( BOOST_PP_ENUM_PARAMS(N1, _) ) \
+        ); \
+    } \
+/**/
+BOOST_PP_REPEAT_FROM_TO(
+	1,
+    BOOST_PP_INC(BOOST_ASSIGN_V2_LIMIT_ARITY),
+    MACRO2,
+    ~
+)
+#undef MACRO1
+#undef MACRO2
+
+        pars_cont_type const& parameters()const{ 
+        	return this->pars_cont; 
+        }
+        seq_args_cont_type const& sequence_args()const{ 
+        	return this->seq_args_cont; 
+        }
+        
+        protected:
+        
+        pars_cont_type pars_cont;
+        seq_args_cont_type seq_args_cont;
+    
+    };
+
+}// put_compose_aux
+namespace adaptor{
+namespace{
+	put_compose_aux::composer<> const _put = put_compose_aux::composer<>();
+}
+}// adaptor
+}// v2
+}// assign
+}// boost
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/put/compose/functor/forward_args.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/put/compose/functor/forward_args.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,125 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_PUT_COMPOSE_FORWARD_ARGS_ER_2010_HPP
+#define BOOST_ASSIGN_V2_PUT_COMPOSE_FORWARD_ARGS_ER_2010_HPP
+#include <boost/preprocessor/arithmetic/inc.hpp>
+#include <boost/preprocessor/control/expr_if.hpp>
+#include <boost/preprocessor/punctuation/comma_if.hpp>
+#include <boost/preprocessor/repetition/enum_params.hpp>
+#include <boost/preprocessor/repetition/enum_params_with_a_default.hpp>
+#include <boost/preprocessor/repetition/enum_trailing_params.hpp>
+#include <boost/preprocessor/repetition/repeat.hpp>
+
+#include <boost/mpl/aux_/na.hpp>
+#include <boost/mpl/int.hpp>
+
+//#include <boost/assign/v2/detail/keyword/default.hpp>
+#include <boost/assign/v2/detail/config/limit_arity.hpp>
+#include <boost/assign/v2/ref/fusion_matrix/container.hpp>
+#include <boost/assign/v2/ref/wrapper/framework.hpp>
+#include <boost/assign/v2/ref/wrapper/copy.hpp>
+
+namespace boost{
+namespace assign{
+namespace v2{
+namespace put_compose_aux{
+
+	template<
+    	std::size_t N, typename L,typename Tag1, typename Tag2,
+        BOOST_PP_ENUM_PARAMS_WITH_A_DEFAULT(	
+        	BOOST_ASSIGN_V2_LIMIT_ARITY, 
+            typename T,
+            boost::mpl::na
+        )
+    >
+	class args : ref::wrapper<
+    	ref::assign_tag::copy,
+		ref::fusion_matrix_aux::container<N, L, Tag1, Tag2,
+        	BOOST_PP_ENUM_PARAMS(BOOST_ASSIGN_V2_LIMIT_ARITY, T)
+        > const
+    >
+    {
+		typedef ref::fusion_matrix_aux::container<N, L, Tag1, Tag2, 
+        	BOOST_PP_ENUM_PARAMS(BOOST_ASSIGN_V2_LIMIT_ARITY, T)
+        > value_;
+        typedef ref::assign_tag::copy assign_tag_;
+		typedef ref::wrapper<assign_tag_, value_ const> super_t;
+        
+        public:
+        
+        args(){};
+        
+        args(value_ const& v) : super_t( v ){}
+
+		value_ const& value()const{ return this->unwrap(); }
+    
+    };
+
+	template<
+    	std::size_t N, typename L,typename Tag1, typename Tag2,
+        BOOST_PP_ENUM_PARAMS(BOOST_ASSIGN_V2_LIMIT_ARITY, typename T)
+    >
+	args<N, L, Tag1, Tag2, 
+    	BOOST_PP_ENUM_PARAMS(BOOST_ASSIGN_V2_LIMIT_ARITY, T)
+    >
+    make_args(
+    	ref::fusion_matrix_aux::container<N,L,Tag1, Tag2, 
+    		BOOST_PP_ENUM_PARAMS(BOOST_ASSIGN_V2_LIMIT_ARITY, T)
+    	> const& v
+    ){
+    	typedef args<N,L,Tag1, Tag2, 
+    		BOOST_PP_ENUM_PARAMS(BOOST_ASSIGN_V2_LIMIT_ARITY, T)
+    	> result_;
+        return result_( v );
+    }
+
+#define MACRO1(z, n, data) \
+	BOOST_PP_COMMA_IF(n)\
+	input.value().static_column(\
+    	boost::mpl::int_<n>()\
+    )\
+/**/
+
+#define MACRO2(z, K, data)\
+	template<\
+    	typename O,\
+    	std::size_t N, typename L,typename Tag1, typename Tag2\
+        BOOST_PP_ENUM_TRAILING_PARAMS(K, typename T)\
+    >\
+    O const&\
+	forward_args(\
+    	O const& object,\
+        put_compose_aux::args<N, L, Tag1, Tag2 \
+        	BOOST_PP_ENUM_TRAILING_PARAMS(K, T)\
+        > const& input\
+	)\
+    {\
+    	return object(\
+            BOOST_PP_REPEAT(K, MACRO1, ~)\
+        );\
+	}\
+/**/
+
+    
+BOOST_PP_REPEAT(
+	BOOST_PP_INC(BOOST_ASSIGN_V2_LIMIT_ARITY),
+    MACRO2,
+    ~
+)
+
+#undef MACRO1
+#undef MACRO2
+
+}// put_compose_aux
+}// v2
+}// assign
+}// boost
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/put/compose/functor/forward_seq_args.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/put/compose/functor/forward_seq_args.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,63 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_PUT_COMPOSE_FORWARD_SEQ_ARGS_ER_2010_HPP
+#define BOOST_ASSIGN_V2_PUT_COMPOSE_FORWARD_SEQ_ARGS_ER_2010_HPP
+#include <boost/mpl/int.hpp>
+#include <boost/mpl/size.hpp>
+#include <boost/assign/v2/put/compose/functor/forward_args.hpp>
+
+namespace boost{
+namespace assign{
+namespace v2{
+namespace put_compose_aux{
+
+	template<std::size_t I, std::size_t N, bool exit = (I == N)>
+	struct forward_seq_args_caller
+    {
+        
+		template<typename T,typename H>
+    	static void call(T const& object, H const& h)
+    	{
+        	typedef boost::mpl::int_<I> index_;
+        	forward_args(
+        		object,
+            	put_compose_aux::make_args( 
+                	h.sequence_args().static_row( index_() ) 
+                )
+        	); 
+            typedef forward_seq_args_caller<I+1, N> next_;
+            next_::call( object, h );
+        }
+
+    };
+
+	template<std::size_t I, std::size_t N>
+	struct forward_seq_args_caller<I, N, true>
+    {
+		template<typename T, typename H>
+    	static void call(T const& object, H const& h){}
+    };
+
+    template<typename T, typename H>
+	void forward_seq_args(T const& object, H const& h)
+    {
+    	typedef put_compose_aux::forward_seq_args_caller<
+        	0,
+            H::static_sequence_args_size
+        > caller_;
+        caller_::call( object, h );
+    }
+
+}// put_compose_aux
+}// v2
+}// assign
+}// boost
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/put/compose/functor/functor.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/put/compose/functor/functor.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,18 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_PUT_COMPOSE_FUNCTOR_FUNCTOR_ER_2010_HPP
+#define BOOST_ASSIGN_V2_PUT_COMPOSE_FUNCTOR_FUNCTOR_ER_2010_HPP
+
+#include <boost/assign/v2/put/compose/functor/composer.hpp>
+#include <boost/assign/v2/put/compose/functor/forward_args.hpp>
+#include <boost/assign/v2/put/compose/functor/forward_seq_args.hpp>
+#include <boost/assign/v2/put/compose/functor/sub.hpp>
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/put/compose/functor/sub.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/put/compose/functor/sub.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,44 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_PUT_COMPOSE_SUB_ER_2010_HPP
+#define BOOST_ASSIGN_V2_PUT_COMPOSE_SUB_ER_2010_HPP
+#include <boost/assign/v2/put/sub/make.hpp>
+#include <boost/assign/v2/put/generic/generic.hpp>
+#include <boost/assign/v2/put/compose/common/forward_parameter.hpp>
+#include <boost/assign/v2/put/compose/functor/composer.hpp>
+#include <boost/assign/v2/put/compose/functor/forward_seq_args.hpp>
+
+namespace boost{
+namespace assign{
+namespace v2{
+namespace put_compose_aux{
+
+	template<typename V, typename Pars, typename SeqArgs, bool enable_pars>
+    V& operator|(
+    	V& v, 
+        put_compose_aux::composer<Pars, SeqArgs, enable_pars> const& c
+	)
+    {
+        forward_seq_args( 
+        	put_compose_aux::forward_parameter<Pars>( 
+            	put( v ), 
+                c 
+            ), 
+            c
+        );
+        return v;
+    }
+    
+}// put_compose_aux
+}// v2
+}// assign
+}// boost
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/put/compose/tag.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/put/compose/tag.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,25 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_PUT_COMPOSE_TAG_ER_2010_HPP
+#define BOOST_ASSIGN_V2_PUT_COMPOSE_TAG_ER_2010_HPP
+
+namespace boost{
+namespace assign{ 
+namespace v2{
+namespace put_compose_aux{
+
+	struct compose_tag{};
+
+}// put_compose_aux
+}// v2
+}// assign
+}// boost
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/put/generic/base.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/put/generic/base.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,25 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_PUT_GENERIC_BASE_ER_2010_HPP
+#define BOOST_ASSIGN_V2_PUT_GENERIC_BASE_ER_2010_HPP
+
+namespace boost{
+namespace assign{
+namespace v2{
+namespace put_aux{
+
+	struct put_base{};
+
+}// put_aux
+}// v2
+}// assign
+}// boost
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/put/generic/crtp.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/put/generic/crtp.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,187 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_PUT_GENERIC_CRTP_ER_2010_HPP
+#define BOOST_ASSIGN_V2_PUT_GENERIC_CRTP_ER_2010_HPP
+#include <boost/preprocessor/arithmetic/add.hpp>
+#include <boost/preprocessor/arithmetic/inc.hpp>
+#include <boost/preprocessor/cat.hpp>
+#include <boost/preprocessor/repetition/enum_params.hpp>
+#include <boost/preprocessor/repetition/enum_binary_params.hpp>
+#include <boost/preprocessor/repeat_from_to.hpp>
+#include <boost/mpl/always.hpp>
+#include <boost/mpl/apply.hpp>
+#include <boost/mpl/eval_if.hpp>
+#include <boost/type_traits/remove_cv.hpp>
+#include <boost/range/reference.hpp>
+
+#include <boost/assign/v2/detail/config/limit_csv_arity.hpp>
+#include <boost/assign/v2/detail/config/limit_arity.hpp>
+#include <boost/assign/v2/detail/type_traits/container/is_ptr_container.hpp>
+#include <boost/assign/v2/detail/functor/functor.hpp>
+#include <boost/assign/v2/detail/keyword/keyword.hpp>
+#include <boost/assign/v2/detail/config/enable_cpp0x.hpp>
+
+#include <boost/assign/v2/put/modifier/modifier.hpp>
+#include <boost/assign/v2/put/generic/result_of_modulo.hpp>
+#include <boost/assign/v2/put/generic/expose_modifier.hpp>
+#include <boost/assign/v2/put/generic/expose_fun.hpp>
+#include <boost/assign/v2/put/generic/base.hpp>
+
+// --------------- //
+//     Usage       //
+// --------------- //
+// Calling
+//  put( v )( a )()( c0, c11 );
+//
+// ----- csv syntax ------
+//
+// put( v )( a )( T() )( T(c0, c11) );
+
+namespace boost{
+namespace assign{
+namespace v2{
+namespace put_aux{
+
+	// T = container_type_traits::value<V>::type
+	template<typename V>
+    struct crtp_traits
+    {
+        typedef typename v2::container_type_traits::value<V>::type value_type;
+        typedef typename boost::mpl::eval_if<
+        	container_type_traits::is_ptr_container<V>,
+            functor_aux::deduce_new_<V>,
+            functor_aux::deduce_constructor<V>
+        >::type functor_type;
+        typedef typename put_aux::deduce_modifier<V>::type modifier_tag;
+
+    };
+
+	// Requirements:
+    // 	d.unwrap() 				returns a reference to V&
+    // 	D d(U v, F const& f);   Constructs an object, d, of type D.
+    // Usually, f is passed to the crtp. U = V& or V const& depending on need.
+    // Traits are deprecated but a use may be find in the future.
+    template<typename V,typename F, typename Tag, typename D, typename Traits>
+    class crtp :
+    	public put_base,
+    	public  put_aux::expose_fun<F>, // protect + friend?
+    	public  put_aux::expose_modifier<Tag>, // protect + friend?
+    	public functor_aux::crtp_unary_and_up<
+    		crtp<V, F, Tag, D, Traits>,
+        	boost::mpl::always< D const& >
+    	>
+    {
+
+		public:
+		typedef D const& result_type;
+
+		protected:
+
+        typedef functor_aux::crtp_unary_and_up<
+            crtp,
+            boost::mpl::always<result_type>
+        > super_t;
+
+		typedef expose_modifier<Tag> expose_modifier_;
+        typedef typename expose_modifier_::modifier_type modifier_;
+		typedef expose_fun<F> expose_fun_;
+		
+        public:
+        
+		D & derived(){ return static_cast<D&>(*this); }
+		D const& derived()const{ return static_cast<D const&>(*this); }
+
+		//public:
+
+		crtp(){}
+		explicit crtp( F const& f ) : expose_fun_( f ){}
+        explicit crtp( F const& f, modifier_ const& m ) 
+        	: expose_fun_( f ), expose_modifier_( m ){}
+
+		using super_t::operator();
+    	result_type operator()()const
+    	{
+			return this->arg_deduct( this->fun() );
+    	}
+
+#define BOOST_ASSIGN_V2_impl(z, N, data) \
+	template<BOOST_PP_ENUM_PARAMS(N, typename T)> \
+    result_type \
+    impl( BOOST_PP_ENUM_BINARY_PARAMS(N, T, & _) )const \
+	{ \
+        return this->arg_deduct( this->fun(BOOST_PP_ENUM_PARAMS(N,_)) ); \
+	} \
+/**/
+BOOST_PP_REPEAT_FROM_TO(
+	1,
+    BOOST_PP_INC(BOOST_ASSIGN_V2_LIMIT_ARITY),
+    BOOST_ASSIGN_V2_impl,
+    ~
+)
+#undef BOOST_ASSIGN_V2_impl
+
+		V& unwrap()const{ return this->derived().unwrap(); } 
+
+		struct result_of_modulo{
+
+            struct deduce
+            {
+				typedef functor_aux::deduce_constructor<V> caller_;
+        		typedef typename caller_::type cons_;
+                typedef typename boost::mpl::apply1<
+                	v2::result_of_modulo::new_fun<D>,
+                    cons_
+                >::type type;
+            };
+
+        };
+
+		typename result_of_modulo::deduce::type
+		modulo_deduce()const
+        {
+			typedef functor_aux::deduce_constructor<V> caller_;
+        	typedef typename caller_::type cons_;
+    		typedef typename result_of_modulo::deduce::type result_;
+    		return result_(
+        		this->derived().unwrap(),
+             	caller_::call()
+        	);
+        }
+
+		protected:
+
+		template<typename T>
+        result_type arg_deduct(T* t)const
+        {
+			this->modifier.impl( this->derived().unwrap(), t );
+            return this->derived();
+        }
+
+		template<typename T>
+        result_type arg_deduct(T& t)const
+        {
+			this->modifier.impl( this->derived().unwrap(), t );
+            return this->derived();
+        }
+
+		template<typename T>
+        result_type arg_deduct(T const& t)const
+        {
+			this->modifier.impl( this->derived().unwrap(), t );
+            return this->derived();
+        }
+    };
+
+}// put_aux
+}// v2
+}// assign
+}// boost
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/put/generic/expose_fun.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/put/generic/expose_fun.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,36 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_PUT_GENERIC_HOLD_FUN_ER_2010_HPP
+#define BOOST_ASSIGN_V2_PUT_GENERIC_HOLD_FUN_ER_2010_HPP
+
+namespace boost{
+namespace assign{ 
+namespace v2{
+namespace put_aux{
+
+	template<typename F>
+	struct expose_fun{
+    
+		typedef F fun_type;
+
+    	expose_fun(){}
+        expose_fun(fun_type const& f) : fun( f ){}
+
+		fun_type fun;
+    
+    };
+
+
+}// put_aux
+}// v2
+}// assign
+}// boost
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/put/generic/expose_modifier.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/put/generic/expose_modifier.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,39 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_PUT_GENERIC_HOLD_MODIFIER_ER_2010_HPP
+#define BOOST_ASSIGN_V2_PUT_GENERIC_HOLD_MODIFIER_ER_2010_HPP
+#include <boost/assign/v2/put/modifier/def.hpp>
+
+namespace boost{
+namespace assign{ 
+namespace v2{
+namespace put_aux{
+
+	template<typename Tag>
+	struct expose_modifier{
+    
+    	typedef Tag modifier_tag;
+		typedef put_aux::modifier<Tag> modifier_type;
+
+    	expose_modifier(){}
+        expose_modifier(modifier_type const& m) : modifier( m ){}
+
+		typedef put_aux::modifier<Tag> modifier_;
+
+		modifier_type modifier;
+    
+    };
+
+}// put_aux
+}// v2
+}// assign
+}// boost
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/put/generic/generic.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/put/generic/generic.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,20 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_PUT_GENERIC_GENERIC_ER_2010_HPP
+#define BOOST_ASSIGN_V2_PUT_GENERIC_GENERIC_ER_2010_HPP
+
+#include <boost/assign/v2/put/generic/crtp.hpp>
+#include <boost/assign/v2/put/generic/expose_fun.hpp>
+#include <boost/assign/v2/put/generic/expose_modifier.hpp>
+#include <boost/assign/v2/put/generic/new_fun.hpp>
+#include <boost/assign/v2/put/generic/new_modifier.hpp>
+#include <boost/assign/v2/put/generic/result_of_modulo.hpp>
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/put/generic/new_fun.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/put/generic/new_fun.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,65 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_PUT_GENERIC_NEW_FUN_ER_2010_HPP
+#define BOOST_ASSIGN_V2_PUT_GENERIC_NEW_FUN_ER_2010_HPP
+#include <boost/mpl/apply.hpp>
+#include <boost/mpl/void.hpp>
+#include <boost/utility/enable_if.hpp>
+#include <boost/type_traits/is_same.hpp>
+#include <boost/assign/v2/put/generic/result_of_modulo.hpp>
+
+namespace boost{
+namespace assign{
+namespace v2{
+namespace put_aux{
+
+    template<typename F>
+    struct new_fun
+    {
+    	
+        new_fun(const F& f) : value(f){}
+        
+        F value;
+    };
+    
+	template<typename T,typename F1>
+    typename boost::mpl::apply1<result_of_modulo::new_fun<T>, F1>::type
+	operator%(
+    	T const& t, 
+        put_aux::new_fun<F1> const& h
+    )
+    {
+    	typedef typename boost::mpl::apply1<
+    		result_of_modulo::new_fun<T>,
+        	F1
+    	>::type result_;
+        return result_( t.unwrap(), h.value, t.modifier );
+    }
+
+	struct kwd_fun{
+    
+		template<typename F>
+    	put_aux::new_fun<F>
+		operator=(F const& f)const
+    	{
+			return put_aux::new_fun<F>( f );
+    	}
+
+    }; 
+    
+}// keyword_aux
+namespace{
+	const put_aux::kwd_fun _fun = put_aux::kwd_fun();
+}	
+}// v2
+}// assign
+}// boost
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/put/generic/new_modifier.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/put/generic/new_modifier.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,69 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_PUT_GENERIC_NEW_MODIFIER_ER_2010_HPP
+#define BOOST_ASSIGN_V2_PUT_GENERIC_NEW_MODIFIER_ER_2010_HPP
+#include <boost/mpl/apply.hpp>
+#include <boost/mpl/void.hpp>
+#include <boost/utility/enable_if.hpp>
+#include <boost/type_traits/is_same.hpp>
+#include <boost/assign/v2/put/generic/result_of_modulo.hpp>
+
+namespace boost{
+namespace assign{
+namespace v2{
+namespace put_aux{
+
+	template<typename Tag> struct set_modifier
+    {
+    
+    	set_modifier(){}
+        set_modifier(Tag const& t) : modifier_tag( t ){}
+
+    	Tag modifier_tag;
+    };
+
+	struct new_modifier
+    {
+
+		template<typename Tag>    	
+        set_modifier<Tag> operator=( Tag const& t)const
+        {
+        	return set_modifier<Tag>( t );
+        }
+
+    };
+
+	template<typename T,typename NewTag>
+    typename boost::mpl::apply1<
+    	v2::result_of_modulo::new_modifier<T>,
+        NewTag
+    >::type
+    operator%(
+    	T const& t, 
+        put_aux::set_modifier<NewTag> const& h
+    )
+    {
+    	typedef typename boost::mpl::apply1<
+    		v2::result_of_modulo::new_modifier<T>,
+        	NewTag
+    	>::type result_;
+        typedef put_aux::modifier<NewTag> modifier_;
+        return result_( t.unwrap(), t.fun, modifier_( h.modifier_tag ) );
+    }
+
+}// put_aux
+namespace{
+	put_aux::new_modifier const _modifier = put_aux::new_modifier();
+}
+}// v2
+}// assign
+}// boost
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/put/generic/result_of_modulo.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/put/generic/result_of_modulo.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,81 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_PUT_GENERIC_RESULT_OF_MODULO_ER_2010_HPP
+#define BOOST_ASSIGN_V2_PUT_GENERIC_RESULT_OF_MODULO_ER_2010_HPP
+#include <boost/mpl/apply.hpp>
+#include <boost/typeof/typeof.hpp>
+
+namespace boost{
+	struct use_default;
+namespace assign{ 
+namespace v2{
+namespace result_of_modulo{
+
+	template<typename T> struct new_fun{
+    
+    	template<typename F> struct apply{};
+    
+    };
+
+	template<typename T> struct new_modifier{
+    
+    	template<typename Tag> struct apply{};
+
+    };
+	template<typename T> struct new_fun_modifier
+    {
+    
+    	template<typename F,typename Tag>
+        struct apply
+        {
+        	typedef typename boost::mpl::apply1<
+            	new_fun<T>,
+                F
+            >::type new_fun_;
+            typedef result_of_modulo::new_modifier<new_fun_> new_modifier_;
+            typedef typename boost::mpl::apply1<
+            	new_modifier_,
+                Tag
+            >::type type;
+        };
+    
+    };
+    
+    template<typename T>
+    struct generic
+    {
+    
+    	template<typename P>
+        struct apply
+        {
+        	static T t;
+            static P p;
+            typedef BOOST_TYPEOF_TPL( t % p ) type; // TODO workaround MSVC
+        };
+    
+    };
+    
+    
+}// result_of_modulo
+
+/*
+        struct deduce
+        {
+            typedef functor_aux::deduce_constructor<V> caller_;
+            typedef typename caller_::type cons_;
+            typedef typename Traits::template new_fun<cons_>::type type;
+        };
+*/
+
+}// v2
+}// assign
+}// boost
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/put/modifier/at_next.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/put/modifier/at_next.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,52 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_PUT_MODIFIER_AT_NEXT_ER_2010_HPP
+#define BOOST_ASSIGN_V2_PUT_MODIFIER_AT_NEXT_ER_2010_HPP
+#include <boost/accumulators/framework/accumulator_base.hpp>
+#include <boost/assign/v2/put/modifier/def.hpp>
+#include <boost/assign/v2/put/generic/new_modifier.hpp>
+#include <boost/assign/v2/detail/type_traits/value.hpp>
+
+namespace boost{
+namespace assign{ 
+namespace v2{
+namespace modifier_tag{ struct at_next{}; }
+namespace put_aux{
+
+	template<>
+    struct modifier<v2::modifier_tag::at_next>
+    {
+
+		modifier():i( 0 ){};
+        modifier( boost::accumulators::dont_care ):i( 0 ){}
+    
+    	template<typename V,typename T>
+        void impl(V& v, T& t)const{ 
+        	v.at( i++ ) = t; 
+        }
+
+        // TODO check
+    	template<typename V,typename T>
+        void impl(V& v, T* t)const{ v.replace( i++ , t); }
+        
+        private:
+        mutable std::size_t i;
+    };
+
+}// assign_aux
+
+	put_aux::set_modifier<modifier_tag::at_next> const
+		_at_next = ( _modifier = modifier_tag::at_next() );
+
+}// v2
+}// assign
+}// boost
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/put/modifier/deduce.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/put/modifier/deduce.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,99 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_PUT_MODIFIER_DEDUCE_ER_2010_HPP
+#define BOOST_ASSIGN_V2_PUT_MODIFIER_DEDUCE_ER_2010_HPP
+#include <boost/mpl/eval_if.hpp>
+#include <boost/type_traits/is_same.hpp>
+#include <boost/mpl/identity.hpp>
+
+#include <boost/assign/v2/detail/mpl/switch.hpp>
+
+#include <boost/assign/v2/detail/type_traits/container/is_static_array.hpp>
+#include <boost/assign/v2/detail/type_traits/container/has_push.hpp>
+#include <boost/assign/v2/detail/type_traits/container/is_associative.hpp>
+
+namespace boost{
+	struct use_default;
+namespace assign{
+namespace v2{
+namespace switch_tag{
+	struct deduce_put{};
+}// switch_tag
+namespace modifier_tag{
+	struct at_next;
+    struct insert;
+    struct push;
+    struct push_back;
+}// modifier_tag
+namespace mpl{
+
+    template<>
+    struct case_<switch_tag::deduce_put,0> :
+        v2::mpl::wrap<
+            v2::modifier_tag::insert,
+            v2::container_type_traits::is_associative
+        >{};
+
+    template<>
+    struct case_<switch_tag::deduce_put,1> :
+        v2::mpl::wrap<
+            v2::modifier_tag::at_next,
+            v2::container_type_traits::is_static_array
+        >{};
+
+    template<>
+    struct case_<switch_tag::deduce_put,2> :
+        v2::mpl::wrap<
+        	v2::modifier_tag::push,
+            container_type_traits::has_push_deduced_value
+        >{};
+
+    template<>
+    struct case_<switch_tag::deduce_put,3> : 
+        v2::mpl::wrap<v2::modifier_tag::push_back>{};
+
+}// mpl
+namespace put_aux{
+
+    template<typename T>
+    struct deduce_modifier : v2::mpl::switch_<
+    	v2::switch_tag::deduce_put,
+    	T
+    >
+    {};
+
+	struct kwd_deduce{}; 
+
+	template<typename T>
+    typename T::result_of_modulo::deduce::type
+	operator%(
+    	T const& t, 
+        kwd_deduce const& kwd
+    )
+    {
+    	return t.modulo_deduce();
+    }
+
+	template<typename Option1,typename Option2>
+	struct deduce : boost::mpl::eval_if<
+    	boost::is_same<Option1, boost::use_default>,
+    	boost::mpl::identity<Option2>,
+    	boost::mpl::identity<Option1>
+	>{};
+
+}// put_aux
+namespace{
+	const put_aux::kwd_deduce _deduce = put_aux::kwd_deduce();
+}	
+}// v2
+}// assign
+}// boost
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/put/modifier/def.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/put/modifier/def.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,38 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_PUT_MODIFIER_DEF_ER_2010_HPP
+#define BOOST_ASSIGN_V2_PUT_MODIFIER_DEF_ER_2010_HPP
+
+namespace boost{
+namespace assign{ 
+namespace v2{
+namespace modifier_tag{
+	// add as necessary
+}
+namespace put_aux{
+
+	template<typename Tag>
+    struct modifier{
+		    	
+    	// Specialize on Tag:
+    	//	template<typename V,typename T>
+        //	void impl(V& v,T& t)const;
+
+		// Warning: modifiers such as modifier<modifier_tag::at_next> have an 
+        // internal state that affects impl()'s working. 
+        
+    };
+
+}// put_aux
+}// v2
+}// assign
+}// boost
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/put/modifier/incr_lookup.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/put/modifier/incr_lookup.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,107 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_PUT_MODIFIER_INCR_LOOKUP_ER_2010_HPP
+#define BOOST_ASSIGN_V2_PUT_MODIFIER_INCR_LOOKUP_ER_2010_HPP
+#include <boost/mpl/apply.hpp>
+#include <boost/accumulators/framework/accumulator_base.hpp>
+#include <boost/assign/v2/put/modifier/def.hpp>
+#include <boost/assign/v2/detail/type_traits/value.hpp>
+#include <boost/assign/v2/detail/functor/identity.hpp>
+#include <boost/assign/v2/put/generic/new_fun.hpp>
+#include <boost/assign/v2/put/generic/new_modifier.hpp>
+#include <boost/assign/v2/put/generic/result_of_modulo.hpp>
+
+// Warning : Not yet supported.
+// TODO fix compile errors using put adaptor.
+
+namespace boost{
+namespace assign{ 
+namespace v2{
+
+// lookup_key
+namespace modifier_tag{ struct incr_lookup{}; }
+namespace put_aux{
+
+	template<>
+    struct modifier<v2::modifier_tag::incr_lookup>
+    {
+
+		modifier():n( 0 ){}
+		modifier(std::size_t m):n( m ){};
+    
+    	template<typename V,typename T>
+        void impl(V& v, T& t)const{ 
+        	v[ t ] += this->n; 
+        }
+        
+        private:
+        std::size_t n;
+    };
+
+    struct modulo_incr_lookup{
+
+    	modulo_incr_lookup() : n( 1 ){}
+        modulo_incr_lookup(std::size_t m) : n( m ){}
+
+        modulo_incr_lookup 
+        operator=(std::size_t m)const{ 
+        	typedef modulo_incr_lookup result_;
+            return result_( m );
+        }
+
+    	std::size_t n;
+    };
+
+}// put_aux
+namespace result_of_modulo{
+
+    template<typename T>
+    struct incr_lookup
+    {
+    	typedef typename boost::mpl::apply2<
+        	result_of_modulo::new_fun_modifier<T>,
+            functor_aux::identity,
+            v2::modifier_tag::incr_lookup
+        >::type type;
+
+        typedef v2::modifier_tag::incr_lookup new_tag_;
+        typedef put_aux::modifier<new_tag_> modifier_;
+        
+        static type call(const T& t, put_aux::modulo_incr_lookup const& kwd)
+        {
+			return type( t.unwrap(), _identity, kwd.n );
+		}
+
+    };
+
+}// result_of_modulo
+namespace put_aux{
+
+	template<typename T>
+    typename result_of_modulo::incr_lookup<T>::type
+	operator%(
+    	T const& t,
+        put_aux::modulo_incr_lookup const& kwd
+    )
+    {
+    	typedef result_of_modulo::incr_lookup<T> caller_;
+        return caller_::call( t, kwd );
+	}
+
+}// put_aux
+namespace{
+	put_aux::modulo_incr_lookup const _incr_lookup 
+    	= put_aux::modulo_incr_lookup();
+}
+}// v2
+}// assign
+}// boost
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/put/modifier/insert.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/put/modifier/insert.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,16 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_PUT_MODIFIER_INSERT_ER_2010_HPP
+#define BOOST_ASSIGN_V2_PUT_MODIFIER_INSERT_ER_2010_HPP
+#include <boost/assign/v2/put/modifier/xxx.hpp>
+
+BOOST_ASSIGN_V2_PUT_MODIFIER_XXX(insert)
+
+#endif
\ No newline at end of file
Added: sandbox/statistics/support/boost/assign/v2/put/modifier/keyword.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/put/modifier/keyword.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,11 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  Boost Software License, Version 1.0. (See accompanying file             //
+//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)        //
+//////////////////////////////////////////////////////////////////////////////
+
+// TODO delete file
\ No newline at end of file
Added: sandbox/statistics/support/boost/assign/v2/put/modifier/modifier.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/put/modifier/modifier.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,22 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_PUT_MODIFIER_MODIFIER_ER_2010_HPP
+#define BOOST_ASSIGN_V2_PUT_MODIFIER_MODIFIER_ER_2010_HPP
+
+#include <boost/assign/v2/put/modifier/at_next.hpp>
+#include <boost/assign/v2/put/modifier/deduce.hpp>
+#include <boost/assign/v2/put/modifier/incr_lookup.hpp>
+#include <boost/assign/v2/put/modifier/insert.hpp>
+#include <boost/assign/v2/put/modifier/push.hpp>
+#include <boost/assign/v2/put/modifier/push_back.hpp>
+#include <boost/assign/v2/put/modifier/push_front.hpp>
+#include <boost/assign/v2/put/modifier/repeat.hpp>
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/put/modifier/push.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/put/modifier/push.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,16 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_PUT_MODIFIER_PUSH_ER_2010_HPP
+#define BOOST_ASSIGN_V2_PUT_MODIFIER_PUSH_ER_2010_HPP
+#include <boost/assign/v2/put/modifier/xxx.hpp>
+
+BOOST_ASSIGN_V2_PUT_MODIFIER_XXX(push)
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/put/modifier/push_back.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/put/modifier/push_back.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,16 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_PUT_MODIFIER_PUSH_BACK_ER_2010_HPP
+#define BOOST_ASSIGN_V2_PUT_MODIFIER_PUSH_BACK_ER_2010_HPP
+#include <boost/assign/v2/put/modifier/xxx.hpp>
+
+BOOST_ASSIGN_V2_PUT_MODIFIER_XXX(push_back)
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/put/modifier/push_front.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/put/modifier/push_front.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,16 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_PUT_MODIFIER_PUSH_FRONT_ER_2010_HPP
+#define BOOST_ASSIGN_V2_PUT_MODIFIER_PUSH_FRONT_ER_2010_HPP
+#include <boost/assign/v2/put/modifier/xxx.hpp>
+
+BOOST_ASSIGN_V2_PUT_MODIFIER_XXX(push_front)
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/put/modifier/repeat.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/put/modifier/repeat.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,134 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_PUT_MODIFIER_REPEAT_ER_2010_HPP
+#define BOOST_ASSIGN_V2_PUT_MODIFIER_REPEAT_ER_2010_HPP
+#include <boost/type_traits/is_base_of.hpp>
+#include <boost/utility/enable_if.hpp>
+#include <boost/accumulators/framework/accumulator_base.hpp>
+#include <boost/assign/v2/put/modifier/def.hpp>
+#include <boost/assign/v2/put/generic/base.hpp>
+#include <boost/assign/v2/put/generic/new_modifier.hpp>
+#include <boost/assign/v2/ref/wrapper/copy.hpp>
+
+namespace boost{
+namespace assign{ 
+namespace v2{
+namespace modifier_tag{ 
+	template<typename Tag> struct repeat{}; 
+}// modifier_tag
+namespace put_aux{
+
+	template<typename Tag>
+    class modifier<v2::modifier_tag::repeat<Tag> > : v2::ref::wrapper<
+    	v2::ref::assign_tag::copy,
+        std::size_t const
+    >
+    {
+		typedef modifier<Tag> inner_;
+		typedef v2::ref::wrapper<
+    		v2::ref::assign_tag::copy,
+        	std::size_t const
+    	> super_t;
+
+    	public:
+
+        typedef std::size_t size_type;
+
+		modifier(){}
+		explicit modifier( size_type const& n ):super_t( n ){};
+            
+    	template<typename V,typename T>
+        void impl(V& v, T& t)const{ 
+        	size_type m = static_cast<super_t const&>(*this).unwrap();
+        	while(m--) this->inner.impl( v, t );
+        }
+        
+        private:
+        inner_ inner;
+    };
+
+	class modulo_repeat : v2::ref::wrapper<
+        v2::ref::assign_tag::copy,
+        std::size_t const
+    >
+    {
+    	typedef v2::ref::wrapper<
+        	v2::ref::assign_tag::copy,
+        	std::size_t const
+    	> super_t;
+
+		public:
+        
+        typedef std::size_t size_type;
+
+        modulo_repeat(){}
+        modulo_repeat( size_type const& n) : super_t( n ){}
+
+		modulo_repeat operator=( size_type const& n)const
+        {
+        	modulo_repeat result( n );
+            return result;
+        }
+        
+        size_type const& unwrap()const
+        { 
+        	return static_cast<super_t const&>(*this).unwrap();
+        }
+        
+    };
+
+}// put_aux
+namespace result_of_modulo{
+    
+    template<typename T>
+    struct repeat
+    {
+    	typedef typename T::modifier_tag old_tag_;
+        typedef v2::modifier_tag::repeat<old_tag_> new_tag_;
+        typedef put_aux::modifier<new_tag_> modifier_;
+        typedef typename boost::mpl::apply1<
+        	result_of_modulo::new_modifier<T>,
+            new_tag_
+        >::type type;
+        
+        static type call(const T& t, put_aux::modulo_repeat const& h)
+        {
+        	modifier_ m( h.unwrap() );
+            return type( t.unwrap(), t.fun, m ); 
+        }
+        
+    };
+
+}// result_of_modulo
+namespace put_aux{ 
+
+	template<typename T>
+    typename boost::lazy_enable_if<
+    	boost::is_base_of<put_aux::put_base, T>,
+    	result_of_modulo::repeat<T>
+    >::type
+	operator%(
+    	T const& t, 
+        put_aux::modulo_repeat const& h
+    )
+    {	
+    	typedef result_of_modulo::repeat<T> caller_;
+        return caller_::call( t, h );
+    }
+
+}// put_aux
+namespace{
+	put_aux::modulo_repeat const _repeat = put_aux::modulo_repeat();
+}
+}// v2
+}// assign
+}// boost
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/put/modifier/xxx.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/put/modifier/xxx.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,58 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_PUT_MODIFIER_XXX
+#include <boost/preprocessor/cat.hpp>
+#include <boost/accumulators/framework/accumulator_base.hpp>
+#include <boost/assign/v2/put/modifier/def.hpp>
+#include <boost/assign/v2/put/generic/new_modifier.hpp>
+
+#define BOOST_ASSIGN_V2_PUT_MODIFIER_XXX(FUN)\
+namespace boost{\
+namespace assign{\
+namespace v2{\
+namespace modifier_tag{ struct FUN{}; }\
+namespace put_aux{\
+\
+    template<>\
+    struct modifier<v2::modifier_tag::FUN>\
+    {\
+\
+    	modifier(){}\
+        modifier( boost::accumulators::dont_care ){}\
+\
+    	template<typename V, typename T>\
+       	void impl(V& v, T& t)const{ v.FUN( t ); }\
+\
+    	template<typename V, typename T>\
+        void impl(V& v, T* t)const{ v.FUN( t ); }\
+\
+    };\
+\
+}\
+namespace{\
+\
+    put_aux::set_modifier<v2::modifier_tag::FUN> const\
+        BOOST_PP_CAT(_,FUN) = ( \
+            _modifier = v2::modifier_tag::FUN() \
+        );\
+\
+}\
+}\
+}\
+}\
+/**/
+
+#endif
+
+/*
+
+*/
+
+
Added: sandbox/statistics/support/boost/assign/v2/put/put.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/put/put.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,19 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_PUT_PUT_ER_2010_HPP
+#define BOOST_ASSIGN_V2_PUT_PUT_ER_2010_HPP
+
+#include <boost/assign/v2/put/compose/compose.hpp>
+#include <boost/assign/v2/put/generic/generic.hpp>
+#include <boost/assign/v2/put/modifier/modifier.hpp>
+#include <boost/assign/v2/put/range/range.hpp>
+#include <boost/assign/v2/put/sub/sub.hpp>
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/put/range/adaptor.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/put/range/adaptor.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,58 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_PUT_RANGE_ADAPTOR_ER_2010_HPP
+#define BOOST_ASSIGN_V2_PUT_RANGE_ADAPTOR_ER_2010_HPP
+#include <boost/assign/v2/put/range/modifier/modifier.hpp>
+
+namespace boost{
+namespace assign{
+namespace v2{
+namespace put_range_aux
+{
+	template<typename From>
+	struct adaptor1
+    {
+    	adaptor1(From const& from):value(from){}
+        mutable From const& value;
+        private:
+        adaptor1();
+    };
+
+	struct adaptor2
+    {
+    	adaptor2(){}
+        template<typename From>
+        adaptor1<From> operator()(const From& from)const
+        {
+        	typedef adaptor1<From> result_;
+        	return result_( from );
+        }
+    };
+
+	template<typename To,typename From>
+	To& operator|(To& to, put_range_aux::adaptor1<From> const& from)
+    {
+		typedef typename put_range_aux::deduce_operation<To>::type tag_;
+    	put_range_aux::put_range( tag_(), from.value, to );
+        return to;
+    }
+
+}// put_range_aux
+namespace adaptor
+{
+	put_range_aux::adaptor2 const _put_range
+    	= put_range_aux::adaptor2();	
+
+}// adaptor
+}// v2
+}// assign
+}// boost
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/put/range/convert.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/put/range/convert.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,74 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_PUT_RANGE_CONVERT_ER_2010_HPP
+#define BOOST_ASSIGN_V2_PUT_RANGE_CONVERT_ER_2010_HPP
+#include <boost/assign/v2/put/range/adaptor.hpp>
+
+namespace boost{
+namespace assign{
+namespace v2{
+namespace convert_aux
+{
+	template<typename To>
+	struct adaptor
+    {
+    	adaptor(){}
+    };
+
+	template<typename From,typename To>
+	To operator|(From& from, convert_aux::adaptor<To> const& dummy)
+    {
+    	To to;
+    	return to | v2::adaptor::_put_range( from );
+    }
+
+}// convert_aux
+namespace adaptor{
+
+	template<typename To>
+	convert_aux::adaptor<To> convert(){ return convert_aux::adaptor<To>(); }
+
+}// adaptor
+
+	template<typename To,typename From>
+    To convert(From const& from){
+    	return from | adaptor::convert<To>();
+    }
+
+}// v2
+}// assign
+}// boost
+
+#endif
+
+// ------ CLASS MEMBER ---- //
+
+#ifndef BOOST_ASSIGN_V2_CONVERT_CONVERT_MF
+#define BOOST_ASSIGN_V2_CONVERT_CONVERT_MF \
+   template<typename To> \
+   To convert()const \
+   { \
+		namespace ns = boost::assign::v2; \
+       	return (*this) | adaptor::convert<To>(); \
+   } \
+/**/
+#endif
+
+#ifndef BOOST_ASSIGN_V2_CONVERT_OPERATOR_MF
+#define BOOST_ASSIGN_V2_CONVERT_OPERATOR_MF \
+   template<typename To> \
+   operator To ()const \
+   { \
+		namespace ns = boost::assign::v2; \
+       	return (*this) | adaptor::convert<To>(); \
+   } \
+/**/
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/put/range/modifier/copy.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/put/range/modifier/copy.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,48 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_PUT_RANGE_MODIFIER_COPY_ER_2010_HPP
+#define BOOST_ASSIGN_V2_PUT_RANGE_MODIFIER_COPY_ER_2010_HPP
+#include <string>
+#include <stdexcept>
+#include <boost/throw_exception.hpp>
+#include <boost/range/begin.hpp>
+#include <boost/range/size.hpp>
+#include <boost/range/algorithm/copy.hpp>
+
+namespace boost{
+namespace assign{
+namespace v2{
+namespace put_range_tag
+{
+	struct copy{};
+}// convert_tag
+namespace put_range_aux{
+
+   	template<typename From,typename To>
+   	void put_range (put_range_tag::copy, From const& from, To& to)
+   	{
+		if(boost::size( to ) < boost::size( from ) ){
+        	typedef std::string str_;
+        	const str_ str = 
+            	str_("convert<to>(")
+            	+ "convert_tag::copy, from)"
+                + "To::size() < boost::size( from )";
+        	std::out_of_range e( str );
+            boost::throw_exception(e);
+        }
+	    boost::copy( from, boost::begin( to ) );
+   	}
+    
+}// put_range_aux{
+}// v2
+}// assign
+}// boost
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/put/range/modifier/deduce.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/put/range/modifier/deduce.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,62 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_PUT_RANGE_MODIFIER_DEDUCE_ER_2010_HPP
+#define BOOST_ASSIGN_V2_PUT_RANGE_MODIFIER_DEDUCE_ER_2010_HPP
+#include <boost/assign/v2/detail/type_traits/container/has_static_size.hpp>
+#include <boost/assign/v2/detail/type_traits/container/has_push.hpp>
+#include <boost/assign/v2/detail/mpl/switch.hpp>
+ 
+namespace boost{
+namespace assign{
+namespace v2{
+namespace switch_tag{
+	struct put_range{};
+}// switch_tag
+namespace put_range_tag{
+	struct copy;
+    struct put;
+    struct range;
+}// put_range_tag
+namespace mpl{
+
+    template<>
+    struct case_<switch_tag::put_range,0> :
+        v2::mpl::wrap<
+        	put_range_tag::put,
+            container_type_traits::has_push_deduced_value
+        >{};
+
+    template<>
+    struct case_<switch_tag::put_range,1> :
+        v2::mpl::wrap<
+            v2::put_range_tag::copy,
+            v2::container_type_traits::has_static_size
+        >{};
+
+    template<>
+    struct case_<switch_tag::put_range,2> : 
+        v2::mpl::wrap<put_range_tag::range>{};
+
+}// mpl
+namespace put_range_aux
+{
+
+    template<typename T>
+    struct deduce_operation : v2::mpl::switch_<
+    	v2::switch_tag::put_range,
+    	T
+    >{};
+    
+}// convert_aux
+}// v2
+}// assign
+}// boost
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/put/range/modifier/modifier.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/put/range/modifier/modifier.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,18 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_PUT_RANGE_MODIFIER_MODIFIER_ER_2010_HPP
+#define BOOST_ASSIGN_V2_PUT_RANGE_MODIFIER_MODIFIER_ER_2010_HPP
+
+#include <boost/assign/v2/put/range/modifier/put.hpp>
+#include <boost/assign/v2/put/range/modifier/copy.hpp>
+#include <boost/assign/v2/put/range/modifier/range.hpp>
+#include <boost/assign/v2/put/range/modifier/deduce.hpp>
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/put/range/modifier/put.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/put/range/modifier/put.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,40 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_PUT_RANGE_MODIFIER_PUT_ER_2010_HPP
+#define BOOST_ASSIGN_V2_PUT_RANGE_MODIFIER_PUT_ER_2010_HPP
+#include <boost/range/algorithm/for_each.hpp>
+//#include <boost/assign/v2/put/wrapper/make.hpp>
+#include <boost/assign/v2/put/sub/make.hpp>
+
+namespace boost{
+namespace assign{
+namespace v2{
+namespace put_range_tag
+{
+	struct put{};
+}// convert_tag
+namespace put_range_aux{
+
+   	template<typename From,typename To>
+   	void put_range(
+    	put_range_tag::put, 
+        From const& from,
+        To& to
+    )
+   	{	
+        ::boost::for_each( from, put( to ) );
+	}
+    
+}// put_range_aux
+}// v2
+}// assign
+}// boost
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/put/range/modifier/range.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/put/range/modifier/range.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,39 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_PUT_RANGE_MODIFIER_RANGE_ER_2010_HPP
+#define BOOST_ASSIGN_V2_PUT_RANGE_MODIFIER_RANGE_ER_2010_HPP
+#include <boost/range/begin.hpp>
+#include <boost/range/end.hpp>
+
+namespace boost{
+namespace assign{
+namespace v2{
+namespace put_range_tag
+{
+	struct range{};
+}// convert_tag
+namespace put_range_aux{
+
+   	template<typename From,typename To>
+   	void put_range(
+    	put_range_tag::range, 
+        From const& from,
+        To& to
+    )
+   	{
+    	to = To( boost::begin( from ), boost::end( from ) );
+   	}
+    
+}// put_range_aux
+}// v2
+}// assign
+}// boost
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/put/range/range.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/put/range/range.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,29 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_PUT_RANGE_RANGE_ER_2010_HPP
+#define BOOST_ASSIGN_V2_PUT_RANGE_RANGE_ER_2010_HPP
+#include <boost/assign/v2/put/range/adaptor.hpp>
+#include <boost/assign/v2/put/range/convert.hpp>
+
+namespace boost{
+namespace assign{
+namespace v2{
+
+   	template<typename From,typename To>
+   	To& put_range(From const& from, To& to)
+   	{	
+		return to | adaptor::_put_range( from );
+   	}
+
+}// v2
+}// assign
+}// boost
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/put/sub/csv.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/put/sub/csv.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,88 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_PUT_SUB_CSV_ER_2010_HPP
+#define BOOST_ASSIGN_V2_PUT_SUB_CSV_ER_2010_HPP
+#include <boost/assign/v2/ref/wrapper/framework.hpp>
+#include <boost/assign/v2/ref/wrapper/copy.hpp>
+#include <boost/assign/v2/detail/type_traits/container/value.hpp>
+#include <boost/assign/v2/put/sub/make.hpp>
+
+namespace boost{
+namespace assign{
+namespace v2{
+namespace csv_put_aux{
+
+    template<typename V> 
+    class sub 
+    	: protected ref::wrapper< 
+        	ref::assign_tag::copy,
+            V
+        >
+    {
+
+		protected:
+
+		typedef ref::assign_tag::copy assign_tag_;
+		typedef ref::wrapper<assign_tag_,V> super1_t;
+
+		typedef typename v2::container_type_traits::value<V>::type value_type;
+
+		public:
+
+		sub(){}
+		explicit sub( V& v ) : super1_t( v ) {}
+
+#define MACRO1(z, i, data) ( BOOST_PP_CAT(_, i) )
+#define MACRO2(z, N, data)\
+    typename result_of::put<V>::type\
+    operator()( BOOST_PP_ENUM_PARAMS(N, value_type const & _) )\
+    {\
+        return put( this->unwrap() ) BOOST_PP_REPEAT(N, MACRO1, ~ );\
+    }\
+/**/
+BOOST_PP_REPEAT_FROM_TO(
+	1, 
+    BOOST_PP_INC(BOOST_ASSIGN_V2_LIMIT_CSV_ARITY),
+    MACRO2,
+    ~
+)
+#undef MACRO1
+#undef MACRO2		
+
+		V& unwrap()const{ 
+        	return static_cast<super1_t const&>(*this).unwrap(); 
+        }
+
+    };
+
+}// csv_put_aux
+namespace result_of{
+
+	template<typename V>
+    struct csv_put
+    {
+		typedef csv_put_aux::sub<V> type;
+	};
+    
+}// result_of
+
+	template<typename V>
+	typename result_of::csv_put<V>::type
+	csv_put( V& v )
+    {
+		typedef typename result_of::csv_put<V>::type result_;
+    	return result_( v );
+    }
+
+}// v2
+}// assign
+}// boost
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/put/sub/make.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/put/sub/make.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,142 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_PUT_SUB_MAKE_ER_2010_HPP
+#define BOOST_ASSIGN_V2_PUT_SUB_MAKE_ER_2010_HPP
+#include <boost/assign/v2/ref/wrapper/copy.hpp>
+#include <boost/assign/v2/put/generic/crtp.hpp>
+#include <boost/assign/v2/put/generic/result_of_modulo.hpp>
+
+// Usage:
+// 	put( v ) % ( _modifier = Tag() );	
+// 	put( v ) % ( _fun = F() );		
+// 	put( v ) % ( _incr_lookup );		
+// 	put( v ) % ( _repeat = n );		
+
+namespace boost{
+namespace assign{ 
+namespace v2{
+namespace put_aux{
+
+    template<typename V,typename F, typename Tag> class sub;
+
+}// put_aux
+namespace result_of_modulo{
+	
+    template<typename V,typename F,typename Tag>
+    struct new_fun<put_aux::sub<V,F,Tag> >
+    {
+
+    	template<typename F1>
+        struct apply{ typedef put_aux::sub<V,F1,Tag> type; };
+        
+    };
+
+    template<typename V,typename F,typename Tag>
+    struct new_modifier<put_aux::sub<V,F,Tag> >
+    {
+
+    	template<typename NewTag>
+        struct apply{ typedef put_aux::sub<V,F,NewTag> type; };
+        
+    };
+    
+}//result_of_modulo
+namespace put_aux{
+
+    template<typename V,typename F, typename Tag> class sub;
+    
+	template<typename V,typename F,typename Tag>
+    struct sub_modifier_traits
+    {};
+
+    template<typename V,typename F, typename Tag> 
+    class sub 
+    	: protected ref::wrapper< // must be the first base.
+        	ref::assign_tag::copy,
+            V
+        >, 
+        public put_aux::crtp<
+        	V, 
+            F, 
+            Tag, 
+            sub<V,F,Tag>, 
+            sub_modifier_traits<V,F,Tag> 
+        >
+    {
+
+    	typedef put_aux::crtp<
+        	V, 
+            F, 
+            Tag, 
+            sub<V,F,Tag>, 
+            sub_modifier_traits<V,F,Tag> 
+        > super2_t;
+
+		public:
+
+		typedef typename super2_t::result_type result_type;
+
+		protected:
+
+		typedef put_aux::modifier<Tag> modifier_;
+		typedef ref::assign_tag::copy assign_tag_;
+		typedef ref::wrapper<assign_tag_,V> super1_t;
+
+		public:
+
+		sub(){}
+		explicit sub( V& v ) : super1_t( v ) {}
+		explicit sub( V& v, F const& f ) 
+        	: super1_t( v ), super2_t( f )
+            {
+        		// This constructor is required by crtp 
+                // when Tag or F is modified.
+        	}
+
+		explicit sub( V& v, F const& f, modifier_ const& m ) 
+        	: super1_t( v ), super2_t( f, m )
+            {
+        		// This constructor is required by crtp 
+                // when Tag or F is modified.
+        	}
+
+		V& unwrap()const{ 
+        	return static_cast<super1_t const&>(*this).unwrap(); 
+        }
+
+    };
+
+}// put_aux
+namespace result_of{
+
+	template<typename V>
+    struct put
+    {
+        typedef put_aux::crtp_traits<V> traits_;
+        typedef typename traits_::functor_type f_;
+        typedef typename traits_::modifier_tag modifier_tag_;
+        typedef put_aux::sub<V,f_,modifier_tag_> type;
+    };
+
+}// result_of
+
+	template<typename V>
+    typename result_of::put<V>::type
+	put( V& v )
+    {
+    	typedef typename result_of::put<V>::type result_;
+        return result_( v );
+    }
+
+}// v2
+}// assign
+}// boost
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/put/sub/sub.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/put/sub/sub.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,8 @@
+#ifndef BOOST_ASSIGN_V2_PUT_SUB_SUB_ER_2010_HPP
+#define BOOST_ASSIGN_V2_PUT_SUB_SUB_ER_2010_HPP
+
+#include <boost/assign/v2/put/sub/make.hpp>
+#include <boost/assign/v2/put/sub/csv.hpp>
+
+#endif
+
Added: sandbox/statistics/support/boost/assign/v2/put/wrapper/crtp.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/put/wrapper/crtp.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,3 @@
+
+
+// TODO delete file
\ No newline at end of file
Added: sandbox/statistics/support/boost/assign/v2/put/wrapper/make.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/put/wrapper/make.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,3 @@
+
+
+// TODO delete file
\ No newline at end of file
Added: sandbox/statistics/support/boost/assign/v2/put/wrapper/wrapper.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/put/wrapper/wrapper.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,18 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_PUT_WRAPPER_WRAPPER_ER_2010_HPP
+#define BOOST_ASSIGN_V2_PUT_WRAPPER_WRAPPER_ER_2010_HPP
+
+// TODO delete file
+
+//#include <boost/assign/v2/put/wrapper/crtp.hpp>
+//#include <boost/assign/v2/put/wrapper/make.hpp>
+
+#endif
\ No newline at end of file
Added: sandbox/statistics/support/boost/assign/v2/ref/anon/anon.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/ref/anon/anon.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,16 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_REF_ANON_ANON_ER_2010_HPP
+#define BOOST_ASSIGN_V2_REF_ANON_ANON_ER_2010_HPP
+
+#include <boost/assign/v2/ref/anon/unary/unary.hpp>
+#include <boost/assign/v2/ref/anon/csv/csv.hpp>
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/ref/anon/csv/assign_copy.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/ref/anon/csv/assign_copy.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,19 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_REF_CONTAINER_ANON_CSV_ASSIGN_COPY_ER_2010_HPP
+#define BOOST_ASSIGN_V2_REF_CONTAINER_ANON_CSV_ASSIGN_COPY_ER_2010_HPP
+#include <boost/assign/v2/ref/wrapper/copy.hpp>
+#include <boost/assign/v2/ref/anon/csv/assign_xxx.hpp>
+
+#define xxx_Tag1 assign_tag::copy
+BOOST_ASSIGN_V2_REF_CSV_ARRAY_ASSIGN_XXX( assign_copy ) 
+#undef xxx_Tag1
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/ref/anon/csv/assign_rebind.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/ref/anon/csv/assign_rebind.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,19 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_REF_CONTAINER_ANON_CSV_ASSIGN_REBIND_ER_2010_HPP
+#define BOOST_ASSIGN_V2_REF_CONTAINER_ANON_CSV_ASSIGN_REBIND_ER_2010_HPP
+#include <boost/assign/v2/ref/wrapper/rebind.hpp>
+#include <boost/assign/v2/ref/anon/csv/assign_xxx.hpp>
+
+#define xxx_Tag1 assign_tag::rebind
+BOOST_ASSIGN_V2_REF_CSV_ARRAY_ASSIGN_XXX( assign_rebind ) 
+#undef xxx_Tag1
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/ref/anon/csv/assign_xxx.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/ref/anon/csv/assign_xxx.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,63 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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/preprocessor/arithmetic/inc.hpp>
+#include <boost/preprocessor/repetition/repeat_from_to.hpp>
+#include <boost/assign/v2/detail/config/limit_csv_arity.hpp>
+#include <boost/assign/v2/ref/anon/csv/nth_result_of.hpp>
+#include <boost/assign/v2/ref/anon/csv/make.hpp>
+#include <boost/assign/v2/ref/anon/csv/pp.hpp>
+
+
+// Usage:
+// #define xxx_Tag1 name
+// BOOST_ASSIGN_V2_REF_CSV_ARRAY_ASSIGN_XXX( ns )
+// #undef xxx_Tag1
+
+#ifndef BOOST_ASSIGN_V2_REF_CSV_ARRAY_iter
+#define BOOST_ASSIGN_V2_REF_CSV_ARRAY_iter( z, n, data ) \
+    BOOST_ASSIGN_V2_REF_CSV_ARRAY_tpl(	T      ,	n, 	0, 	xxx_Tag1	) \
+    BOOST_ASSIGN_V2_REF_CSV_ARRAY_tpl(	T const, 	n, 	0, 	xxx_Tag1	) \
+/**/
+#endif
+#ifndef BOOST_ASSIGN_V2_REF_CSV_ARRAY_ASSIGN_XXX
+#define BOOST_ASSIGN_V2_REF_CSV_ARRAY_ASSIGN_XXX( NS ) \
+namespace boost{ \
+namespace assign{ \
+namespace v2{ \
+namespace ref{ \
+namespace NS{ \
+namespace nth_result_of{ \
+    template<std::size_t N,typename T> \
+    struct csv_anon : ref::nth_result_of::csv_anon<N, xxx_Tag1, T>{};\
+} \
+	template<typename T>\
+    typename ref::result_of::empty_csv_anon<xxx_Tag1, T>::type\
+	csv_anon( keyword_aux::nil )\
+    {\
+    	typedef typename ref::result_of::empty_csv_anon<\
+        	xxx_Tag1,\
+            T\
+        >::type result_;\
+        return result_();\
+    }\
+BOOST_PP_REPEAT_FROM_TO( \
+	1, \
+    BOOST_PP_INC(BOOST_ASSIGN_V2_LIMIT_CSV_ARITY), \
+    BOOST_ASSIGN_V2_REF_CSV_ARRAY_iter, \
+    ~ \
+) \
+} \
+} \
+} \
+} \
+} \
+/**/
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/ref/anon/csv/csv.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/ref/anon/csv/csv.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,23 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_REF_CONTAINER_ANON_CSV_CSV_ER_2010_HPP
+#define BOOST_ASSIGN_V2_REF_CONTAINER_ANON_CSV_CSV_ER_2010_HPP
+#include <boost/assign/v2/ref/anon/csv/nth_result_of.hpp>
+#include <boost/assign/v2/ref/anon/csv/make.hpp>
+#include <boost/assign/v2/ref/anon/csv/assign_copy.hpp>
+#include <boost/assign/v2/ref/anon/csv/assign_rebind.hpp>
+
+#undef BOOST_ASSIGN_V2_REF_CSV_ARRAY_invoke
+#undef BOOST_ASSIGN_V2_REF_CSV_ARRAY_tpl
+#undef xxx_Tag1
+#undef BOOST_ASSIGN_V2_REF_CSV_ARRAY_iter
+#undef BOOST_ASSIGN_V2_REF_CSV_ARRAY_ASSIGN_XXX
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/ref/anon/csv/make.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/ref/anon/csv/make.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,63 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_REF_CONTAINER_ANON_CSV_MAKE_ER_2010_HPP
+#define BOOST_ASSIGN_V2_REF_CONTAINER_ANON_CSV_MAKE_ER_2010_HPP
+#include <boost/preprocessor/arithmetic/inc.hpp>
+#include <boost/preprocessor/repeat_from_to.hpp>
+#include <boost/assign/v2/detail/keyword/nil.hpp>
+#include <boost/assign/v2/detail/config/limit_csv_arity.hpp>
+#include <boost/assign/v2/detail/config/limit_arity.hpp>
+#include <boost/assign/v2/ref/anon/csv/nth_result_of.hpp>
+#include <boost/assign/v2/ref/anon/csv/pp.hpp>
+ 
+// Usage
+// using namespace boost::assign::v2::ref::csv;
+//	csv_anon<assign_tag::name>( a, b, c );
+ 
+namespace boost{
+namespace assign{
+namespace v2{
+namespace ref{
+namespace result_of{
+
+	template<typename Tag1,typename T>
+    struct empty_csv_anon 
+    	: nth_result_of::csv_anon<0, Tag1, T>{};
+    
+}// result_of
+
+	template<typename Tag1, typename T>
+    typename result_of::empty_csv_anon<Tag1, T>::type
+	csv_anon( keyword_aux::nil )
+    {
+    	typedef typename result_of::empty_csv_anon<Tag1, T>::type result_;
+        return result_();
+    }
+
+#define MACRO( z, n, data )\
+ BOOST_ASSIGN_V2_REF_CSV_ARRAY_tpl(T      , 	n,	1,	Tag1 ) \
+ BOOST_ASSIGN_V2_REF_CSV_ARRAY_tpl(T const, 	n,	1,	Tag1 ) \
+/**/
+
+BOOST_PP_REPEAT_FROM_TO(
+	1,
+    BOOST_PP_INC(BOOST_ASSIGN_V2_LIMIT_CSV_ARITY),
+    MACRO,
+    ~
+)
+
+#undef MACRO
+
+}// ref
+}// v2
+}// assign
+}// boost
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/ref/anon/csv/nth_result_of.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/ref/anon/csv/nth_result_of.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,36 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_REF_CONTAINER_ANON_CSV_NTH_RESULT_OF_ER_2010_HPP
+#define BOOST_ASSIGN_V2_REF_CONTAINER_ANON_CSV_NTH_RESULT_OF_ER_2010_HPP
+#include <boost/mpl/empty_base.hpp>
+#include <boost/assign/v2/ref/static_array/alloc/fast_alloc_fwd.hpp>
+
+namespace boost{
+	struct use_default;
+namespace assign{
+namespace v2{
+namespace ref{
+namespace anon_aux{
+	typedef boost::use_default csv_tag2_;
+}// anon_aux
+namespace nth_result_of{
+
+    template<std::size_t N, typename Tag1, typename T>
+    struct csv_anon{
+    	typedef static_array_aux::fast_alloc<N, Tag1, T> type;
+    };
+
+}// nth_result_of
+}// ref
+}// v2
+}// assign
+}// boost
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/ref/anon/csv/pp.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/ref/anon/csv/pp.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,62 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_REF_CONTAINER_ANON_CSV_PP_ER_2010_HPP
+#define BOOST_ASSIGN_V2_REF_CONTAINER_ANON_CSV_PP_ER_2010_HPP
+#include <boost/preprocessor/repeat.hpp>
+#include <boost/preprocessor/enum_params.hpp>
+#include <boost/preprocessor/expr_if.hpp>
+#include <boost/preprocessor/comma_if.hpp>
+#include <boost/preprocessor/cat.hpp>
+#include <boost/assign/v2/detail/config/limit_arity.hpp>
+#include <boost/assign/v2/detail/keyword/nil.hpp>
+#include <boost/assign/v2/ref/fusion/make.hpp>
+#include <boost/assign/v2/ref/static_array/alloc/fast_alloc.hpp>
+#include <boost/assign/v2/ref/anon/csv/nth_result_of.hpp>
+ 
+//#define BOOST_ASSIGN_V2_REF_CSV_ARRAY_invoke(z,n,data) \
+// ( BOOST_PP_CAT(_,n) ) \
+///**/
+
+#define BOOST_ASSIGN_V2_REF_CSV_ARRAY_invoke(z, n, data) \
+ result.get_wrapper( n ) = wrapper_( BOOST_PP_CAT(_,n) ); \
+/**/
+
+#define BOOST_ASSIGN_V2_REF_CSV_ARRAY_tpl(U, N, param, Tag1) \
+    template<BOOST_PP_EXPR_IF(param, typename Tag1) \
+    	BOOST_PP_COMMA_IF(param) typename T> \
+    typename nth_result_of::csv_anon< \
+    	N, \
+        BOOST_PP_EXPR_IF(param, Tag1) BOOST_PP_COMMA_IF(param) \
+        U \
+    >::type \
+    csv_anon( BOOST_PP_ENUM_PARAMS(N, U& _) ) \
+    { \
+    	typedef typename nth_result_of::csv_anon< \
+    		N, \
+        	BOOST_PP_EXPR_IF(param, Tag1) BOOST_PP_COMMA_IF(param) \
+        	U \
+    	>::type result_; typedef typename result_::wrapper_type wrapper_;\
+        result_ result;\
+        BOOST_PP_REPEAT( N, BOOST_ASSIGN_V2_REF_CSV_ARRAY_invoke, ~ )\
+        return result;\
+    } \
+/**/
+
+// Old impelementation:
+//    	typedef anon_aux::csv_tag2_ tag2_; \
+//        return ref::fusion< \
+//        	Tag1, \
+//            tag2_, \
+//            U \
+//        >( v2::_nil ) \
+//        	BOOST_PP_REPEAT( N, BOOST_ASSIGN_V2_REF_CSV_ARRAY_invoke, ~ ) ; \
+
+#endif
+
Added: sandbox/statistics/support/boost/assign/v2/ref/anon/generic/cont.hpp
==============================================================================
Added: sandbox/statistics/support/boost/assign/v2/ref/anon/generic/fwd.hpp
==============================================================================
Added: sandbox/statistics/support/boost/assign/v2/ref/anon/generic/generic.hpp
==============================================================================
Added: sandbox/statistics/support/boost/assign/v2/ref/anon/generic/make.hpp
==============================================================================
Added: sandbox/statistics/support/boost/assign/v2/ref/anon/generic/nth_result_of.hpp
==============================================================================
Added: sandbox/statistics/support/boost/assign/v2/ref/anon/generic/policy.hpp
==============================================================================
Added: sandbox/statistics/support/boost/assign/v2/ref/anon/generic/traits.hpp
==============================================================================
Added: sandbox/statistics/support/boost/assign/v2/ref/anon/unary/assign_copy.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/ref/anon/unary/assign_copy.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,17 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_REF_ANON_UNARY_ASSIGN_COPY_ER_2010_HPP
+#define BOOST_ASSIGN_V2_REF_ANON_UNARY_ASSIGN_COPY_ER_2010_HPP
+#include <boost/assign/v2/ref/wrapper/copy.hpp>
+#include <boost/assign/v2/ref/anon/unary/assign_xxx.hpp>
+
+BOOST_ASSIGN_V2_REF_ANON_UNARY_XXX( assign_copy, assign_tag::copy )
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/ref/anon/unary/assign_rebind.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/ref/anon/unary/assign_rebind.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,17 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_REF_ANON_UNARY_ASSIGN_REBIND_ER_2010_HPP
+#define BOOST_ASSIGN_V2_REF_ANON_UNARY_ASSIGN_REBIND_ER_2010_HPP
+#include <boost/assign/v2/ref/wrapper/rebind.hpp>
+#include <boost/assign/v2/ref/anon/unary/assign_xxx.hpp>
+
+BOOST_ASSIGN_V2_REF_ANON_UNARY_XXX( assign_rebind, assign_tag::rebind )
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/ref/anon/unary/assign_xxx.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/ref/anon/unary/assign_xxx.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,64 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_REF_ANON_UNARY_XXX
+#include <boost/assign/v2/detail/keyword/nil.hpp>
+#include <boost/assign/v2/ref/anon/unary/make.hpp>
+#define BOOST_ASSIGN_V2_REF_ANON_UNARY_XXX(NS, Tag1) \
+ \
+namespace boost{ \
+namespace assign{ \
+namespace v2{ \
+namespace ref{ \
+namespace NS{ \
+namespace nth_result_of{ \
+    template<std::size_t N,typename T> \
+	struct anon : ref::nth_result_of::anon<N,Tag1,T>{}; \
+}\
+namespace result_of{ \
+ \
+	template<typename T> \
+    struct empty_anon : ref::result_of::empty_anon< \
+        Tag1, T \
+    >{}; \
+ \
+ 	template<typename T> \
+    struct anon :  ref::result_of::anon< \
+    	Tag1, T \
+    >{}; \
+ \
+} \
+	template<typename T> \
+    typename NS::result_of::empty_anon<T>::type \
+	anon( keyword_aux::nil const& ) \
+    { \
+    	return ref::anon<Tag1,T>( v2::_nil ); \
+    } \
+    template<typename T> \
+	typename NS::result_of::anon<T>::type \
+    anon(T& t) \
+    { \
+    	return ref::anon<Tag1>( t ); \
+    } \
+    template<typename T> \
+	typename NS::result_of::anon<T const>::type \
+    anon(T const& t) \
+    { \
+    	return ref::anon<Tag1>( t ); \
+    } \
+\
+} \
+} \
+} \
+} \
+} \
+/**/
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/ref/anon/unary/make.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/ref/anon/unary/make.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,61 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_REF_ANON_UNARY_MAKE_ER_2010_HPP
+#define BOOST_ASSIGN_V2_REF_ANON_UNARY_MAKE_ER_2010_HPP
+#include <boost/assign/v2/ref/fusion/make.hpp>
+#include <boost/assign/v2/ref/static_array/alloc/lazy_alloc.hpp>
+#include <boost/assign/v2/ref/fusion/assign_array.hpp>
+#include <boost/assign/v2/ref/anon/unary/nth_result_of.hpp>
+#include <boost/assign/v2/ref/anon/unary/tag2.hpp>
+ 
+namespace boost{
+namespace assign{
+namespace v2{
+namespace ref{
+namespace result_of{
+
+	template<typename Tag1,typename T>
+    struct empty_anon 
+    	: nth_result_of::anon<0, Tag1, T>{};
+
+	template<typename Tag1, typename T>
+    struct anon 
+    	: nth_result_of::anon<1, Tag1, T>{};
+
+}// result_of
+
+	template<typename Tag1, typename T>
+    typename result_of::empty_anon<Tag1, T>::type
+	anon( keyword_aux::nil const& )
+    {
+    	typedef anon_aux::unary_tag2_ tag2_;
+    	return ref::fusion<Tag1, tag2_,T>( v2::_nil );
+    }
+
+    template<typename Tag1,typename T>
+	typename result_of::anon<Tag1, T>::type
+    anon(T& t)
+    {
+        return anon<Tag1, T>( v2::_nil )( t );
+    }
+
+    template<typename Tag1,typename T>
+	typename result_of::anon<Tag1, T const>::type
+    anon(T const & t)
+    {
+        return anon<Tag1, T const>( v2::_nil )( t );
+    }
+
+}// ref
+}// v2
+}// assign
+}// boost
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/ref/anon/unary/nth_result_of.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/ref/anon/unary/nth_result_of.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,55 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_REF_ANON_UNARY_NTH_RESULT_OF2_ER_2010_HPP
+#define BOOST_ASSIGN_V2_REF_ANON_UNARY_NTH_RESULT_OF2_ER_2010_HPP
+#include <boost/assign/v2/ref/anon/unary/tag2.hpp>
+#include <boost/assign/v2/ref/fusion/nth_result_of.hpp>
+
+namespace boost{
+namespace assign{
+namespace v2{
+namespace ref{
+namespace anon_aux{
+
+    template<typename Tag1, typename T>
+    struct empty_anon : fusion_aux::empty<
+    	Tag1, 
+        anon_aux::unary_tag2_, 
+        T
+    >{};
+
+	template<std::size_t N,typename Tag1,typename T>
+    struct recursive_result
+    {
+    	typedef typename recursive_result<
+        	N-1, Tag1, T
+        >::type previous_;
+        typedef typename previous_::template result<T>::type type;
+    };
+
+	template<typename Tag1, typename T>
+    struct recursive_result<0, Tag1, T> 
+    	: empty_anon<Tag1, T>{};
+
+}// anon_aux
+namespace nth_result_of{
+
+    template<std::size_t N,typename Tag1, typename T>
+	struct anon 
+    	: anon_aux::recursive_result<N, Tag1, T>
+    {};
+
+}// nth_result_of
+}// ref
+}// v2
+}// assign
+}// boost
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/ref/anon/unary/tag2.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/ref/anon/unary/tag2.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,26 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_REF_ANON_UNARY_TAG2_ER_2010_HPP
+#define BOOST_ASSIGN_V2_REF_ANON_UNARY_TAG2_ER_2010_HPP
+#include <boost/assign/v2/ref/static_array/alloc/lazy_alloc_fwd.hpp>
+
+namespace boost{
+namespace assign{
+namespace v2{
+namespace ref{
+namespace anon_aux{
+	typedef ref::alloc_tag::lazy_alloc unary_tag2_;
+}// anon_aux
+}// ref
+}// v2
+}// assign
+}// boost
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/ref/anon/unary/unary.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/ref/anon/unary/unary.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,20 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_REF_ANON_UNARY_UNARY_ER_2010_HPP
+#define BOOST_ASSIGN_V2_REF_ANON_UNARY_UNARY_ER_2010_HPP
+
+#include <boost/assign/v2/ref/anon/unary/assign_copy.hpp>
+#include <boost/assign/v2/ref/anon/unary/assign_rebind.hpp>
+#include <boost/assign/v2/ref/anon/unary/make.hpp>
+#include <boost/assign/v2/ref/anon/unary/nth_result_of.hpp>
+#include <boost/assign/v2/ref/anon/unary/tag2.hpp>
+
+#endif
+
Added: sandbox/statistics/support/boost/assign/v2/ref/detail/convert_traits/add_const.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/ref/detail/convert_traits/add_const.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,35 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_REF_CONVERT_TRAITS_ADD_CONST_ER_2010_HPP
+#define BOOST_ASSIGN_V2_REF_CONVERT_TRAITS_ADD_CONST_ER_2010_HPP
+#include <boost/mpl/eval_if.hpp>
+#include <boost/mpl/identity.hpp>
+#include <boost/type_traits/add_const.hpp>
+
+namespace boost{
+namespace assign{ 
+namespace v2{
+namespace ref{
+namespace convert_traits{
+
+    template<typename V, bool or_const>
+    struct add_const : boost::mpl::eval_if_c<
+    	or_const,
+        boost::add_const<V>,
+        boost::mpl::identity<V>
+    >{};
+
+}// convert_traits
+}// ref
+}// v2
+}// assign
+}// boost
+
+#endif
\ No newline at end of file
Added: sandbox/statistics/support/boost/assign/v2/ref/detail/convert_traits/checking.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/ref/detail/convert_traits/checking.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,149 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_REF_CONVERT_TRAITS_CHECKING_ER_2010_HPP
+#define BOOST_ASSIGN_V2_REF_CONVERT_TRAITS_CHECKING_ER_2010_HPP
+#include <boost/mpl/apply.hpp>
+#include <boost/mpl/not.hpp>
+#include <boost/config.hpp>
+#include <boost/static_assert.hpp>
+#include <boost/utility/enable_if.hpp>
+#include <boost/type_traits/promote.hpp>
+#include <boost/type_traits/is_same.hpp>
+#include <boost/assign/v2/ref/detail/convert_traits/result.hpp>
+
+namespace boost{
+namespace assign{ 
+namespace v2{
+namespace ref{
+namespace convert_traits{
+namespace checking{
+
+    template<typename T1,typename T2,typename T3>
+    struct tester{
+    
+        typedef typename convert_traits::result<T1,T2>::type result_;
+                
+        static void test()
+        {
+            typedef boost::is_same<result_,T3> pred_;
+            BOOST_STATIC_ASSERT( pred_::value );
+        }
+
+   };
+
+namespace twin_values{
+
+    template<typename T>
+    void do_check()
+    {
+
+        tester<const T &, const T &, const T &>::test(); 
+        tester<const T &,       T &, const T &>::test(); 
+        tester<      T &, const T &, const T &>::test(); 
+        tester<      T &,       T &,       T &>::test(); 
+
+        tester<const T &, const T  , const T  >::test(); 
+        tester<const T &,       T  , const T  >::test(); 
+        tester<      T &, const T  , const T  >::test(); 
+        tester<      T &,       T  ,       T  >::test(); 
+
+        tester<const T ,  const T &, const T  >::test(); 
+        tester<const T ,        T &, const T  >::test(); 
+        tester<      T ,  const T &, const T  >::test(); 
+        tester<      T ,        T &,       T  >::test(); 
+
+        tester<const T ,  const T  , const T  >::test(); 
+        tester<const T ,        T  , const T  >::test(); 
+        tester<      T ,  const T  , const T  >::test(); 
+        tester<      T ,        T  ,       T  >::test(); 
+
+    };
+
+}// twin_values
+namespace distinct_values{
+namespace arithmetic{
+
+    template<typename T1,typename T2,typename T3>
+    void do_check_impl(const T1&, const T2& ,const T3&) 
+    {
+        
+        // Disable for Ubuntu 9.1 - GCC 4.4 (see workaround below).
+        // typedef typename boost::mpl::not_<
+        //   boost::is_same<T1,T2> 
+        // >::type not_same_;
+        // BOOST_STATIC_ASSERT(not_same_::value);
+        
+        tester<const T1&, const T2&, const T3 >::test(); 
+        tester<const T1&,       T2&, const T3 >::test(); 
+        tester<      T1&, const T2&, const T3 >::test(); 
+        tester<      T1&,       T2&,       T3 >::test(); 
+
+        tester<const T1&, const T2 , const T3 >::test(); 
+        tester<const T1&,       T2 , const T3 >::test(); 
+        tester<      T1&, const T2 , const T3 >::test(); 
+        tester<      T1&,       T2 ,       T3 >::test(); 
+
+        tester<const T1 ,  const T2&, const T3 >::test(); 
+        tester<const T1 ,        T2&, const T3 >::test(); 
+        tester<      T1 ,  const T2&, const T3 >::test(); 
+        tester<      T1 ,        T2&,       T3 >::test(); 
+
+        tester<const T1 ,  const T2 , const T3 >::test(); 
+        tester<const T1 ,        T2 , const T3 >::test(); 
+       	tester<      T1 ,  const T2 , const T3 >::test(); 
+        tester<      T1 ,        T2 ,       T3 >::test(); 
+
+    };
+
+
+#define m(T1, T2, T3)													    \
+    template<typename T>													\
+    void do_check(															\
+    	typename boost::enable_if<											\
+    		boost::is_same<T,T1> 											\
+        >::type* = 0														\
+    ) 																		\
+    {																		\
+        distinct_values::arithmetic::do_check_impl( T1(), T2(), T3() );	    \
+    }																		\
+/**/
+
+// Works for Max OSX 10.6 GCC 4.2 but not Ubuntu 9.1 GCC 4.4
+// 	m(short  , long,	int)
+// 	m(int    , long,	long)
+//	m(float  , double,	double)
+//  typedef long double long_double_;
+//	m(double , long_double_, long double)
+
+namespace workaround{
+	typedef boost::numeric::conversion_traits<short, int>::supertype a_;
+	typedef boost::numeric::conversion_traits<int, long>::supertype b_;
+	typedef boost::numeric::conversion_traits<float, double>::supertype c_;
+	typedef boost::numeric::conversion_traits<
+    	double,long double>::supertype d_;
+}// workaround
+
+m(short  , int, 	workaround::a_)
+m(int    , long,	workaround::b_)
+m(float  , double,	workaround::c_)
+typedef long double long_double_;
+m(double , long_double_, workaround::d_)
+
+#undef m
+}// arithmetic
+}// distinct_values
+}// checking
+}// convert_traits
+}// ref
+}// v2
+}// assign
+}// boost
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/ref/detail/convert_traits/distinct_values.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/ref/detail/convert_traits/distinct_values.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,70 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_REF_CONVERT_TRAITS_DISTINCT_VALUES_ER_2010_HPP
+#define BOOST_ASSIGN_V2_REF_CONVERT_TRAITS_DISTINCT_VALUES_ER_2010_HPP
+#include <boost/numeric/conversion/conversion_traits.hpp>
+#include <boost/mpl/eval_if.hpp>
+#include <boost/mpl/identity.hpp>
+#include <boost/mpl/and.hpp>
+#include <boost/type_traits/is_convertible.hpp>
+#include <boost/type_traits/is_arithmetic.hpp>
+#include <boost/assign/v2/ref/detail/convert_traits/add_const.hpp>
+
+namespace boost{
+namespace assign{ 
+namespace v2{
+namespace ref{
+namespace convert_traits{
+namespace distinct_values{
+
+    template<typename V1,typename V2>
+    struct value{
+        
+        struct arithmetic
+        {
+            typedef typename boost::numeric::conversion_traits<
+                V1,
+                V2
+            >::supertype type;
+            
+        };
+            
+        struct non_arithmetic : boost::mpl::eval_if<
+            boost::is_convertible<V1,V2>,
+            boost::mpl::identity<V2>,
+            boost::mpl::identity<V1>
+        >{};
+
+        typedef boost::is_arithmetic<V1> is_ari1_;
+        typedef boost::is_arithmetic<V2> is_ari2_;
+        typedef boost::mpl::and_<is_ari1_,is_ari2_> is_ari_;
+        typedef typename boost::mpl::eval_if<
+            is_ari_,
+            arithmetic,
+            non_arithmetic
+        >::type type;
+            
+    }; // value
+        
+    // There can be no reference if V1 != V2.
+    template<typename V1,typename V2, bool or_const, bool and_ref>
+    struct reference :  convert_traits::add_const<
+        typename distinct_values::value<V1,V2>::type, 
+        or_const
+    >{};
+
+}// distinct_values
+}// convert_traits
+}// ref
+}// v2
+}// assign
+}// boost
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/ref/detail/convert_traits/result.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/ref/detail/convert_traits/result.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,98 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_REF_CONVERT_TRAITS_RESULT_ER_2010_HPP
+#define BOOST_ASSIGN_V2_REF_CONVERT_TRAITS_RESULT_ER_2010_HPP
+#include <boost/config.hpp>
+#include <boost/mpl/and.hpp>
+#include <boost/mpl/or.hpp>
+#include <boost/static_assert.hpp>
+#include <boost/type_traits/is_same.hpp>
+#include <boost/type_traits/is_const.hpp>
+#include <boost/type_traits/is_reference.hpp>
+#include <boost/type_traits/is_convertible.hpp>
+#include <boost/type_traits/remove_reference.hpp>
+#include <boost/type_traits/remove_const.hpp>
+#include <boost/assign/v2/ref/detail/convert_traits/twin_values.hpp>
+#include <boost/assign/v2/ref/detail/convert_traits/distinct_values.hpp>
+
+namespace boost{
+namespace assign{ 
+namespace v2{
+namespace ref{
+namespace convert_traits{
+
+	template<typename T1,typename T2>
+	struct result
+	{
+
+    	template<typename T>
+    	struct traits{
+        
+        	typedef typename boost::is_reference<T>::type is_ref_;
+        	typedef typename boost::remove_reference<T>::type const_;
+        	typedef typename boost::is_const<const_>::type is_const_;
+        	typedef typename boost::remove_const<const_>::type val_;
+
+    	};
+
+    	typedef traits<T1> traits1_;
+	    typedef traits<T2> traits2_;
+      
+    	typedef typename traits1_::val_ val1_;
+	    typedef typename traits2_::val_ val2_;
+      
+	    typedef boost::is_same<val1_,val2_> same_val_;
+
+	    typedef typename boost::mpl::and_<
+    	    typename traits1_::is_ref_,
+        	typename traits2_::is_ref_
+	    >::type and_ref_;
+
+	    typedef typename boost::mpl::or_<
+    	    typename traits1_::is_const_,
+    	    typename traits2_::is_const_
+    	>::type or_const_;
+        
+	    typedef typename boost::mpl::eval_if<
+    	    same_val_,
+    	    twin_values::reference<
+    	        val1_,
+    	        or_const_::value,
+    	        and_ref_::value
+    	    >,
+    	    distinct_values::reference<
+    	        val1_,
+    	        val2_,
+    	        or_const_::value,
+    	        and_ref_::value
+    	    >
+    	>::type type;
+	
+    	typedef boost::mpl::and_<
+        	boost::is_convertible<T1,type>,
+        	boost::is_convertible<T2,type>
+	    > is_valid_type;
+
+	    BOOST_STATIC_CONSTANT(bool, is_valid = is_valid_type::value);
+        
+	    static void test()
+    	{
+	        BOOST_STATIC_ASSERT( is_valid );
+    	}
+        
+	};
+
+}// convert_traits
+}// ref
+}// v2
+}// assign
+}// boost
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/ref/detail/convert_traits/twin_values.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/ref/detail/convert_traits/twin_values.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,43 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_REF_CONVERT_TRAITS_TWIN_VALUES_ER_2010_HPP
+#define BOOST_ASSIGN_V2_REF_CONVERT_TRAITS_TWIN_VALUES_ER_2010_HPP
+#include <boost/mpl/eval_if.hpp>
+#include <boost/mpl/identity.hpp>
+#include <boost/type_traits/add_reference.hpp>
+#include <boost/assign/v2/ref/detail/convert_traits/add_const.hpp>
+
+namespace boost{
+namespace assign{ 
+namespace v2{
+namespace ref{
+namespace convert_traits{
+namespace twin_values{
+
+    template<typename V, bool or_const, bool and_ref>
+    struct reference
+    {
+    	typedef typename convert_traits::add_const<V,or_const>::type c_;
+        typedef typename boost::mpl::eval_if_c<
+            and_ref,
+            boost::add_reference<c_>,
+            boost::mpl::identity<c_>
+        >::type type;
+    };
+
+}// twin_values 
+}// convert_traits
+}// ref
+}// v2
+}// assign
+}// boost
+
+#endif
+
Added: sandbox/statistics/support/boost/assign/v2/ref/detail/fusion_list/assign_array.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/ref/detail/fusion_list/assign_array.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1 @@
+// TODO remove file
Added: sandbox/statistics/support/boost/assign/v2/ref/detail/fusion_list/container.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/ref/detail/fusion_list/container.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1 @@
+// TODO remove file
Added: sandbox/statistics/support/boost/assign/v2/ref/detail/fusion_list/fusion_list.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/ref/detail/fusion_list/fusion_list.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1 @@
+// TODO remove file
Added: sandbox/statistics/support/boost/assign/v2/ref/detail/fusion_list/fwd.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/ref/detail/fusion_list/fwd.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1 @@
+// TODO remove file
Added: sandbox/statistics/support/boost/assign/v2/ref/detail/fusion_list/make.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/ref/detail/fusion_list/make.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1 @@
+// TODO remove file
Added: sandbox/statistics/support/boost/assign/v2/ref/detail/fusion_list/nth_result_of.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/ref/detail/fusion_list/nth_result_of.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1 @@
+// TODO remove file
Added: sandbox/statistics/support/boost/assign/v2/ref/detail/unwrap/iterator.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/ref/detail/unwrap/iterator.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,113 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_REF_WRAPPER_UNWRAP_ITERATOR_ER_2010_HPP
+#define BOOST_ASSIGN_V2_REF_WRAPPER_UNWRAP_ITERATOR_ER_2010_HPP
+#include <boost/mpl/assert.hpp>
+#include <boost/mpl/bool.hpp>
+#include <boost/type_traits/is_convertible.hpp>
+#include <boost/type_traits/remove_cv.hpp>
+#include <boost/type_traits/remove_reference.hpp>
+#include <boost/type_traits/add_const.hpp>
+#include <boost/iterator/iterator_adaptor.hpp>
+#include <boost/assign/v2/ref/detail/unwrap/reference.hpp>
+
+// Note : In Boost.Assign.v2, this is deprecated but it could be used 
+// elsewhere.
+
+// Calling
+// 	*unwrap_iterator( it );
+// is equivalent to
+//	(*it).unwrap(); 
+//  if *it is a reference wrapper, otherwise
+//  (*it);
+
+namespace boost{
+namespace assign{ 
+namespace v2{
+namespace ref{
+namespace unwrap_aux{
+
+    template<typename I>
+    struct reference_of_iterator : unwrap_aux::reference<
+        typename boost::iterator_reference<I>::type
+    >{};
+
+    template<
+        typename I, 
+        typename R = typename unwrap_aux::reference_of_iterator<I>::type,
+        typename V = typename boost::remove_reference<R>::type
+    >
+    struct iterator : boost::iterator_adaptor<
+        iterator<I,R,V>           // Derived
+        ,I                        // Base
+        ,V                        // Value
+        ,use_default              // CategoryOrTraversal
+        ,R                        // Reference
+        ,use_default              // Difference
+    >{
+        typedef boost::iterator_adaptor<
+        	iterator<I,R,V>, 
+            I, 
+            V,
+            use_default, 
+            R, 
+            use_default 
+        > super_;
+
+        iterator(){}
+        iterator(I base):super_(base)
+        {
+            typedef typename boost::iterator_reference<I>::type ref_;
+            typedef typename 
+            	boost::is_convertible<ref_,R>::type is_convertible_;
+            BOOST_MPL_ASSERT(( is_convertible_ ));
+        }
+    };
+              
+    template<typename It>
+    struct is_iterator : boost::mpl::false_{};
+    
+	template<typename I, typename R, typename V>
+    struct is_iterator< unwrap_aux::iterator<I,R,V> >
+        : boost::mpl::true_{};
+
+}// unwrap_aux
+
+	template<typename It>
+    struct is_unwrapped_iterator : unwrap_aux::is_iterator<
+       typename boost::remove_cv<It>::type
+    >{};
+
+namespace result_of{
+
+    template<typename I>
+    struct unwrap_iterator
+    {
+        typedef  unwrap_aux::iterator<I> type;
+    };
+
+}// result_of
+
+    template<typename I>
+    typename result_of::unwrap_iterator<I>::type
+    unwrap_iterator(const I& base)
+    {
+        typedef typename result_of::unwrap_iterator<I>::type result_;
+        return result_( base );
+    }
+
+    
+}// ref
+}// v2
+}// assign
+}// boost
+
+#endif
+
Added: sandbox/statistics/support/boost/assign/v2/ref/detail/unwrap/range.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/ref/detail/unwrap/range.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,100 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_REF_WRAPPER_UNWRAP_RANGE_ER_2010_HPP
+#define BOOST_ASSIGN_V2_REF_WRAPPER_UNWRAP_RANGE_ER_2010_HPP
+#include <boost/type_traits/add_reference.hpp>
+#include <boost/range/begin.hpp>
+#include <boost/range/end.hpp>
+#include <boost/range/iterator.hpp>
+#include <boost/range/iterator_range.hpp>
+#include <boost/assign/v2/ref/detail/unwrap/iterator.hpp>
+
+// Note : In Boost.Assign.v2, this is deprecated but it could be used 
+// elsewhere.
+
+
+// See iterator.hpp
+
+namespace boost{
+namespace assign{ 
+namespace v2{
+namespace ref{
+namespace unwrap_aux{
+
+	template<typename R>
+    struct is_range : is_unwrapped_iterator<
+        typename boost::range_iterator<R>::type
+    >{};
+
+// TODO remove
+// I guess this is subsumed by range_reference
+//    template<typename R>
+//    struct reference_of_unwrapped_range
+//     : unwrap::reference_of_iterator<
+//         typename boost::range_iterator<R>::type
+//     >{};
+
+    template<typename R, bool = unwrap_aux::is_range<R>::value>
+    struct result_of_unwrap_range
+    {
+        typedef typename boost::range_iterator<R>::type base_it_;
+        typedef typename result_of::unwrap_iterator<base_it_>::type it_;
+        typedef boost::iterator_range<it_> type;
+
+        static type call( R& r){
+            return type(
+                ref::unwrap_iterator( boost::begin( r ) ),
+                ref::unwrap_iterator( boost::end( r ) )
+            );
+        }
+    };
+
+    // No need to unwrap twice
+    template<typename R>
+    struct result_of_unwrap_range<R,true>
+    {
+        typedef R type; // don't change this to R&
+        static type call( R& r){ return r; }
+    };
+
+}// unwrap_aux
+
+	template<typename R>
+    struct is_unwrapped_range : unwrap_aux::is_range<R>{};
+
+namespace result_of{
+
+	template<typename R>
+    struct unwrap_range : unwrap_aux::result_of_unwrap_range<R>{};
+
+}// result_of
+
+    template<typename R>
+    typename result_of::unwrap_range<R>::type 
+    unwrap_range( R& r)
+    {    
+        typedef result_of::unwrap_range<R> result_;
+        return result_::call( r );
+    }
+
+    template<typename R>
+    typename result_of::unwrap_range<R const>::type 
+    unwrap_range( R const& r)
+    {    
+        typedef result_of::unwrap_range<R const> result_;
+        return result_::call( r );
+    }
+
+}// ref
+}// v2
+}// assign
+}// boost
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/ref/detail/unwrap/reference.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/ref/detail/unwrap/reference.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,55 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_REF_UNWRAP_REFERENCE_ER_2010_HPP
+#define BOOST_ASSIGN_V2_REF_UNWRAP_REFERENCE_ER_2010_HPP
+#include <boost/mpl/assert.hpp>
+#include <boost/mpl/eval_if.hpp>
+#include <boost/mpl/identity.hpp>
+#include <boost/iterator/iterator_traits.hpp>
+#include <boost/type_traits/is_reference.hpp>
+#include <boost/type_traits/add_reference.hpp>
+#include <boost/type_traits/remove_reference.hpp>
+#include <boost/range/reference.hpp>
+#include <boost/assign/v2/ref/wrapper/framework.hpp>
+
+// Note : In Boost.Assign.v2, this is deprecated but it could be used 
+// elsewhere.
+
+namespace boost{
+namespace assign{ 
+namespace v2{
+namespace ref{
+namespace unwrap_aux{
+
+    // U					Result
+    // ref::wrapper<Tag,T>	T&
+    // ref::wrapper<Tag,T>&	T&
+    // T&					T&
+    template<typename U,typename T = typename boost::remove_reference<U>::type>
+    struct reference : boost::mpl::eval_if<
+        boost::is_reference_wrapper<T>,
+        boost::add_reference<
+           typename boost::unwrap_reference<T>::type
+        >,
+        boost::mpl::identity<U>
+    >{
+        static void test()
+        {
+            BOOST_MPL_ASSERT_NOT(( boost::is_reference<T> ));
+        };
+    };
+
+}// unwrap_aux
+}// ref
+}// v2
+}// assign
+}// boost
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/ref/fusion/assign_array.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/ref/fusion/assign_array.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,80 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_REF_FUSION_ASSIGN_ARRAY_ER_2010_HPP
+#define BOOST_ASSIGN_V2_REF_FUSION_ASSIGN_ARRAY_ER_2010_HPP
+#include <boost/static_assert.hpp>
+#include <boost/mpl/bool.hpp>
+#include <boost/mpl/int.hpp>
+#include <boost/mpl/equal_to.hpp>
+#include <boost/assign/v2/ref/fusion/fwd.hpp>
+
+namespace boost{
+	struct use_default;
+namespace assign{ 
+namespace v2{
+namespace ref{
+namespace fusion_aux{
+
+    // ---- assign_array ---- //
+	
+    template<
+    	std::size_t K,typename A, 
+        std::size_t N, typename L, typename Tag1, typename Tag2, typename T
+    >
+    void assign_array(
+    	boost::mpl::true_ /*exit*/,
+    	A& a,
+        const fusion_aux::container<N, L, Tag1, Tag2, T>& f
+    )
+    {
+    	/*exit*/
+    }
+
+    template<
+    	std::size_t K,typename A, 
+        std::size_t N, typename L, typename Tag1, typename Tag2,typename T
+    >
+    void assign_array(
+    	boost::mpl::false_ /*exit*/,
+    	A& a,
+        const fusion_aux::container<N, L, Tag1, Tag2, T>& f
+    )
+    {	
+        typedef boost::mpl::int_<K-1> index_; 
+        a[ K - 1 ].rebind( f.static_lookup( index_() ) ) ; 
+        typedef index_ next_size_; 
+        typedef boost::mpl::int_<0> zero_; 
+        typedef typename boost::mpl::equal_to<next_size_,zero_>::type exit_; 
+        assign_array<K-1>( exit_(), a, f ); 
+    }
+
+	// A must be a static array of reference wrappers
+    template<typename A,std::size_t N, typename L,
+    	typename Tag1, typename Tag2, typename T>
+    void assign_array(
+    	A& a, 
+        fusion_aux::container<N, L, Tag1, Tag2, T> const & f
+    )
+    {
+    	// don't replace by size_::value <= N (causes warning)
+    	BOOST_STATIC_ASSERT( A::static_size <= N );
+        typedef boost::mpl::int_<0> zero_;
+        typedef boost::mpl::int_<A::static_size> size_;
+        typedef typename boost::mpl::equal_to<size_, zero_>::type exit_;
+        fusion_aux::assign_array<size_::value>( exit_(), a, f );
+    }
+    
+}// fusion_aux                
+}// ref
+}// v2
+}// assign
+}// boost
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/ref/fusion/assign_copy.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/ref/fusion/assign_copy.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,17 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_REF_FUSION_ASSIGN_COPY_ER_2010_HPP
+#define BOOST_ASSIGN_V2_REF_FUSION_ASSIGN_COPY_ER_2010_HPP
+#include <boost/assign/v2/ref/wrapper/copy.hpp>
+#include <boost/assign/v2/ref/fusion/assign_xxx.hpp>
+
+BOOST_ASSIGN_V2_REF_FUSION_ASSIGN_XXX(assign_copy, assign_tag::copy)
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/ref/fusion/assign_rebind.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/ref/fusion/assign_rebind.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,17 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_REF_FUSION_ASSIGN_REBIND_ER_2010_HPP
+#define BOOST_ASSIGN_V2_REF_FUSION_ASSIGN_REBIND_ER_2010_HPP
+#include <boost/assign/v2/ref/wrapper/rebind.hpp>
+#include <boost/assign/v2/ref/fusion/assign_xxx.hpp>
+
+BOOST_ASSIGN_V2_REF_FUSION_ASSIGN_XXX(assign_rebind, assign_tag::rebind)
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/ref/fusion/assign_xxx.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/ref/fusion/assign_xxx.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,43 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_REF_FUSION_ASSIGN_XXX
+#include <boost/assign/v2/detail/keyword/nil.hpp>
+#include <boost/assign/v2/ref/fusion/make.hpp>
+#include <boost/assign/v2/ref/fusion/nth_result_of.hpp>
+#define BOOST_ASSIGN_V2_REF_FUSION_ASSIGN_XXX(NS, Tag1) \
+ \
+namespace boost{ \
+namespace assign{ \
+namespace v2{ \
+namespace ref{ \
+namespace NS{ \
+namespace nth_result_of{ \
+    template<typename Tag2, typename Tnil = fusion_aux::nil_arg_type> \
+	struct fusion : ref::nth_result_of::fusion<Tag1, Tag2, Tnil>{}; \
+} \
+	template<typename Tag2> \
+    typename ref::result_of::fusion_nil< \
+    	Tag1, \
+        Tag2, \
+        fusion_aux::nil_arg_type \
+    >::type \
+	fusion( keyword_aux::nil const& ) \
+    { \
+    	return ref::fusion<Tag1, Tag2>( v2::_nil ); \
+    } \
+\
+} \
+} \
+} \
+} \
+} \
+/**/
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/ref/fusion/container.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/ref/fusion/container.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,160 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_REF_FUSION_CONTAINER_ER_2010_HPP
+#define BOOST_ASSIGN_V2_REF_FUSION_CONTAINER_ER_2010_HPP
+#include <boost/mpl/apply.hpp>
+#include <boost/mpl/bool.hpp>
+#include <boost/mpl/equal_to.hpp>
+#include <boost/mpl/eval_if.hpp>
+#include <boost/mpl/identity.hpp>
+#include <boost/mpl/if.hpp>
+#include <boost/mpl/int.hpp>
+#include <boost/mpl/minus.hpp>
+#include <boost/mpl/size.hpp>
+#include <boost/mpl/void.hpp>
+#include <boost/config.hpp>
+#include <boost/utility/enable_if.hpp>
+#include <boost/assign/v2/ref/wrapper/framework.hpp>
+#include <boost/assign/v2/ref/wrapper/copy.hpp>
+#include <boost/assign/v2/ref/fusion/policy.hpp>
+#include <boost/assign/v2/ref/fusion/link_holder.hpp>
+#include <boost/assign/v2/ref/fusion/head_holder.hpp>
+
+namespace boost{
+	struct use_default;
+namespace assign{
+namespace v2{
+namespace ref{
+namespace fusion_aux{
+
+    template<std::size_t N, typename L,typename Tag1, typename Tag2, typename T>
+	struct interface : boost::mpl::apply4<
+        fusion_aux::policy<Tag2>,
+        boost::mpl::int_<N>, L, Tag1, T
+    >{};
+
+    template<
+    	std::size_t N, typename L, typename Tag1, typename Tag2, typename T>
+    class container 
+    	: public fusion_aux::link_holder<L, N == 0>,
+        public fusion_aux::head_holder<Tag1, T, N == 0>,	
+        public fusion_aux::interface<N, L, Tag1, Tag2, T>::type
+    {
+
+    	typedef boost::mpl::int_<0> int0_;
+        typedef boost::mpl::int_<1> int1_;
+        typedef boost::mpl::int_<N> size_;
+        typedef typename boost::mpl::minus<size_,int1_>::type index_;
+        typedef Tag1 assign_tag_;
+
+		typedef typename fusion_aux::interface<
+        	N, 
+            L, 
+            Tag1, 
+            Tag2, 
+            T
+        >::type super_t;
+
+		typedef fusion_aux::link_holder<L, size_::value == 0> link_;
+		typedef fusion_aux::head_holder<Tag1, T, size_::value == 0> head_;
+
+        public:
+
+		// -- used by most_const -- //
+		typedef T head_value_type;
+        typedef L link_value_type;
+
+		typedef std::size_t size_type;
+        BOOST_STATIC_CONSTANT(std::size_t, static_size = N);
+        typedef typename boost::mpl::equal_to<size_,int0_>::type is_empty_;
+
+        explicit container(){}
+        explicit container(const L& l, T& h)
+            : link_( l ),
+            head_( h )
+        {}
+
+        template<typename NewL, typename NewTag2, typename U>
+        explicit container(const container<N, NewL, Tag1, NewTag2, U>& that)
+            :link_( that ), 
+            head_( that ),
+            super_t( that ){}
+
+        // ------ operator() ----- //
+		//     adds an element	   //
+        // ----------------------- //
+
+        template<typename T1>
+        struct result{
+            typedef container this_;
+            typedef container<N+1, this_, Tag1, Tag2, T1> type;
+        };
+
+        template<typename T1>
+        typename result<T1>::type
+        operator()(T1& t)const{
+        	typedef typename result<T1>::type result_;
+        	return result_( *this, t );
+        }
+
+        template<typename T1>
+        typename result<T1 const>::type
+        operator()(T1 const& t)const{
+        	typedef typename result<T1 const>::type result_;
+        	return result_( *this, t );
+        }
+
+        // ---- static_lookup ---- //
+
+        template<int I>
+        struct is_head : boost::mpl::bool_< I + 1 == N >{};
+
+        template<int I>
+        struct link_result_static_lookup : L::template 
+        	result_static_lookup<I>{};
+
+		template<int I>
+		struct result_static_lookup : boost::mpl::eval_if<
+        	is_head<I>,
+            boost::mpl::identity<T&>,
+            link_result_static_lookup<I>
+        >{};
+
+		// A template is needed even as the argument is known, to prevent
+        // compiler errors for N = 0.
+        template<int I>
+        typename boost::lazy_enable_if<
+        	is_head<I>,
+        	result_static_lookup<I>
+        >::type
+        static_lookup(boost::mpl::int_<I> same_index)const
+        {
+        	return this->head.unwrap(); 
+        }
+
+        template<int I>
+        typename boost::lazy_disable_if<
+        	is_head<I>,
+        	result_static_lookup<I>
+        >::type
+        static_lookup(boost::mpl::int_<I> smaller_index)const
+        {
+        	return this->link().static_lookup( smaller_index );
+        }
+
+    };
+
+}// fusion_aux
+}// ref
+}// v2
+}// assign
+}// boost
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/ref/fusion/fusion.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/ref/fusion/fusion.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,24 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_REF_FUSION_FUSION_ER_2010_HPP
+#define BOOST_ASSIGN_V2_REF_FUSION_FUSION_ER_2010_HPP
+
+#include <boost/assign/v2/ref/fusion/assign_array.hpp>
+#include <boost/assign/v2/ref/fusion/assign_copy.hpp>
+#include <boost/assign/v2/ref/fusion/assign_rebind.hpp>
+#include <boost/assign/v2/ref/fusion/container.hpp>
+#include <boost/assign/v2/ref/fusion/make.hpp>
+#include <boost/assign/v2/ref/fusion/most_const.hpp>
+#include <boost/assign/v2/ref/fusion/nil_arg.hpp>
+#include <boost/assign/v2/ref/fusion/nth_result_of.hpp>
+#include <boost/assign/v2/ref/fusion/policy.hpp>
+#include <boost/assign/v2/ref/fusion/root.hpp>
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/ref/fusion/fwd.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/ref/fusion/fwd.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,36 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_REF_FUSION_FWD_ER_2010_HPP
+#define BOOST_ASSIGN_V2_REF_FUSION_FWD_ER_2010_HPP
+
+namespace boost{
+namespace assign{ 
+namespace v2{
+namespace ref{
+namespace fusion_aux{
+
+    template<std::size_t N, typename L, 
+    	typename Tag1,typename Tag2, typename T>
+    class container;
+    
+    template<typename A, std::size_t N, typename L, 
+    	typename Tag1, typename Tag2, typename T>
+    void assign_array(
+    	A& a, 
+        fusion_aux::container<N, L, Tag1, Tag2, T> const & f
+    );
+
+}// fusion_aux
+}// ref
+}// v2
+}// assign
+}// boost
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/ref/fusion/head_holder.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/ref/fusion/head_holder.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,66 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_REF_FUSION_HEAD_HOLDER_ER_2010_HPP
+#define BOOST_ASSIGN_V2_REF_FUSION_HEAD_HOLDER_ER_2010_HPP
+#include <boost/mpl/int.hpp>
+#include <boost/mpl/void.hpp>
+#include <boost/assign/v2/ref/wrapper/framework.hpp>
+#include <boost/assign/v2/ref/wrapper/copy.hpp>
+
+namespace boost{
+namespace assign{
+namespace v2{
+namespace ref{
+namespace fusion_aux{
+
+	template<typename Tag,typename T, bool is_empty = false>
+	class head_holder{
+    
+		typedef ref::wrapper<Tag, T> wrapper_;
+        
+        public:
+
+		typedef T head_value_type;
+        
+        head_holder(){}
+        head_holder( T& h ) : head( h ){}
+        
+        mutable wrapper_ head;
+        
+    	T& back()const
+        {
+        	return this->head.unwrap();
+        }
+        
+    };
+
+	template<typename Tag, typename T>
+	class head_holder<Tag, T, true>{
+    
+    	//head_holder(){}
+    
+    	public:
+    
+    	typedef boost::mpl::void_ head_value_type;
+    
+    	head_value_type back()const
+        {
+        	return head_value_type();
+        }
+    
+    };
+
+}// fusion_aux
+}// ref
+}// v2
+}// assign
+}// boost
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/ref/fusion/link_holder.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/ref/fusion/link_holder.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,61 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_REF_FUSION_LINK_HOLDER_ER_2010_HPP
+#define BOOST_ASSIGN_V2_REF_FUSION_LINK_HOLDER_ER_2010_HPP
+#include <boost/mpl/int.hpp>
+#include <boost/assign/v2/ref/wrapper/framework.hpp>
+#include <boost/assign/v2/ref/wrapper/copy.hpp>
+
+namespace boost{
+namespace assign{
+namespace v2{
+namespace ref{
+namespace fusion_aux{
+
+	template<typename L, bool is_empty = false>
+	class link_holder{
+    
+		typedef ref::assign_tag::copy tag_;
+		typedef ref::wrapper<tag_, const L> wrapper_;
+        
+        public:
+        
+        link_holder(){}
+        link_holder( const L& l) : value( l ){}
+                
+    	wrapper_ pop()const
+        {
+        	// Warning : probably inefficient
+        	return value;
+        }
+        
+        const L& link()const{ return this->value.unwrap(); }
+        
+        protected:
+        mutable wrapper_ value;
+
+    };
+
+	template<typename L>
+	class link_holder<L,true>{
+    
+    	//link_holder(){}
+    
+    	void pop()const{}
+    
+    };
+
+}// fusion_aux
+}// ref
+}// v2
+}// assign
+}// boost
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/ref/fusion/make.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/ref/fusion/make.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,71 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_REF_FUSION_MAKE_ER_2010_HPP
+#define BOOST_ASSIGN_V2_REF_FUSION_MAKE_ER_2010_HPP
+#include <boost/mpl/void.hpp>
+#include <boost/mpl/eval_if.hpp>
+#include <boost/mpl/identity.hpp>
+#include <boost/mpl/vector/vector0.hpp>
+#include <boost/mpl/vector/vector10.hpp>
+#include <boost/type_traits/is_same.hpp>
+#include <boost/assign/v2/detail/keyword/nil.hpp>
+#include <boost/assign/v2/ref/fusion/container.hpp> 
+#include <boost/assign/v2/ref/fusion/nth_result_of.hpp> 
+
+namespace boost{
+	struct use_default;
+namespace assign{
+namespace v2{
+namespace ref{
+namespace result_of{
+
+	template<typename Tag1,typename Tag2,typename Tnil>
+    struct fusion_nil : boost::mpl::apply1< 
+        nth_result_of::fusion<Tag1, Tag2, Tnil>,
+        boost::mpl::vector0<>
+    >{};
+    
+}// result_of
+
+	template<typename Tag1, typename Tag2, typename Tnil>
+    typename result_of::fusion_nil<Tag1, Tag2, Tnil>::type
+    fusion( keyword_aux::nil )
+    {
+    	typedef typename result_of::fusion_nil<
+            Tag1,
+            Tag2,
+        	Tnil
+        >::type result_;
+    	return result_();
+    }
+
+	template<typename Tag1, typename Tag2>
+    typename result_of::fusion_nil<
+    	Tag1, 
+        Tag2, 
+        fusion_aux::nil_arg_type
+    >::type
+	fusion( keyword_aux::nil )
+    {
+    	typedef fusion_aux::nil_arg_type nil_arg_;
+    	typedef typename result_of::fusion_nil<
+            Tag1,
+            Tag2,
+        	nil_arg_
+        >::type result_;
+    	return result_();
+    }
+     
+}// ref
+}// v2
+}// assign
+}// boost
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/ref/fusion/most_const.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/ref/fusion/most_const.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,56 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_REF_FUSION_MOST_CONST_ER_2010_HPP
+#define BOOST_ASSIGN_V2_REF_FUSION_MOST_CONST_ER_2010_HPP
+#include <boost/utility/enable_if.hpp>
+#include <boost/mpl/eval_if.hpp>
+#include <boost/mpl/identity.hpp>
+#include <boost/assign/v2/detail/type_traits/same_remove_cv.hpp>
+#include <boost/assign/v2/ref/fusion/fwd.hpp>
+#include <boost/assign/v2/ref/fusion/root.hpp>
+
+namespace boost{
+namespace assign{
+namespace v2{
+namespace ref{
+namespace fusion_aux{
+
+	// {U1,...,Un} is mapped to {T if Ui = T for all i, else T const}, if  
+    //	remove_cv<Ui>::type != remove_cv<Uj>::type 
+    // for some i,j, otherwise the mapping is undefined.
+	template<typename L,typename T>
+    struct most_const : boost::lazy_enable_if<
+        v2::type_traits::same_remove_cv<typename L::head_value_type, T>,
+    	boost::mpl::eval_if<
+    		boost::is_const<T>,
+        	boost::mpl::identity<T>,
+        	most_const<
+    			typename L::link_value_type,
+    			typename L::head_value_type
+        	>
+    	>
+    >
+    {};
+    
+	template<typename T>
+    struct most_const<
+    	fusion_aux::root_type,
+        T
+    >{ 
+    	typedef T type; 
+    };
+
+}// fusion_aux
+}// ref
+}// v2
+}// assign
+}// boost
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/ref/fusion/nil_arg.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/ref/fusion/nil_arg.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,29 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_REF_FUSION_NIL_ARG_ER_2010_HPP
+#define BOOST_ASSIGN_V2_REF_FUSION_NIL_ARG_ER_2010_HPP
+#include <boost/mpl/void.hpp>
+//#include <boost/mpl/aux_/na.hpp> // TODO
+
+namespace boost{
+namespace assign{ 
+namespace v2{
+namespace ref{
+namespace fusion_aux{
+
+	typedef boost::mpl::void_ nil_arg_type;
+
+}// fusion_aux
+}// ref
+}// v2
+}// assign
+}// boost
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/ref/fusion/nth_result_of.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/ref/fusion/nth_result_of.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,83 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_REF_FUSION_NTH_RESULT_OF_ER_2010_HPP
+#define BOOST_ASSIGN_V2_REF_FUSION_NTH_RESULT_OF_ER_2010_HPP
+#include <boost/mpl/void.hpp>
+#include <boost/mpl/vector.hpp>
+#include <boost/mpl/fold.hpp>
+#include <boost/mpl/placeholders.hpp>
+#include <boost/mpl/eval_if.hpp>
+#include <boost/mpl/identity.hpp>
+#include <boost/type_traits/is_same.hpp>
+#include <boost/assign/v2/ref/wrapper/deduce_assign_tag.hpp>
+#include <boost/assign/v2/ref/fusion/fwd.hpp>
+#include <boost/assign/v2/ref/fusion/root.hpp>
+#include <boost/assign/v2/ref/fusion/nil_arg.hpp>
+
+namespace boost{
+	struct use_default;
+namespace assign{
+namespace v2{
+namespace ref{
+namespace fusion_aux{
+
+	template<typename Tag1, typename Tag2, typename Tnil>
+    struct empty
+    {
+        typedef fusion_aux::container<
+        	0,
+            typename fusion_aux::root_type,
+            Tag1,
+            Tag2, 
+            Tnil
+        > type;
+    };
+
+    template<typename Tag1, typename Tag2, typename Tnil>
+	struct nth_result
+    {
+
+		typedef typename
+        	fusion_aux::empty<Tag1, Tag2, Tnil>::type state_;
+
+		template<typename State, typename T>
+        struct result : State::template result<T>{};
+
+		template<typename Vec>
+    	struct apply : boost::mpl::fold<
+        	Vec,
+            state_,
+            result<boost::mpl::_1, boost::mpl::_2>
+        >{};
+
+	};
+
+}// fusion_aux
+namespace nth_result_of{
+
+	template<
+    	typename Tag1, typename Tag2, typename Tnil = fusion_aux::nil_arg_type
+    >
+	struct fusion
+    {
+        template<typename Vec>
+        struct apply : boost::mpl::apply1<
+        	fusion_aux::nth_result<Tag1, Tag2, Tnil>,
+        	Vec
+        >{};
+	};
+
+}// nth_result_of
+}// ref
+}// v2
+}// assign
+}// boost
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/ref/fusion/policy.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/ref/fusion/policy.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,64 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_REF_FUSION_POLICY_ER_2010_HPP
+#define BOOST_ASSIGN_V2_REF_FUSION_POLICY_ER_2010_HPP
+#include <boost/mpl/empty_base.hpp>
+#include <boost/mpl/always.hpp>
+#include <boost/assign/v2/ref/static_array/alloc/lazy_alloc.hpp>
+#include <boost/assign/v2/ref/fusion/fwd.hpp>
+#include <boost/assign/v2/ref/fusion/most_const.hpp>
+
+namespace boost{
+	struct use_default;
+namespace assign{
+namespace v2{
+namespace ref{
+namespace fusion_aux{
+
+	template<typename Tag2>
+    struct policy{};
+
+	template<>
+    struct policy<boost::use_default> : boost::mpl::always<
+    	boost::mpl::empty_base
+    >{};
+
+    template<>
+    struct policy<alloc_tag::lazy_alloc>
+    {
+    	template<typename N,typename L,typename Tag1,typename T>
+    	struct apply
+        {
+        	typedef alloc_tag::lazy_alloc tag2_;
+            typedef typename fusion_aux::most_const<L, T>::type most_c_;
+    		typedef fusion_aux::container<
+            	N::value, 
+                L, 
+                Tag1, 
+                tag2_, 
+                T
+            > derived_;
+        	typedef static_array_aux::lazy_alloc<
+            	N::value,
+                Tag1, 
+                most_c_, 
+                derived_
+            > type;
+        };
+
+	}; 
+
+}// fusion_aux
+}// ref
+}// v2
+}// assign
+}// boost
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/ref/fusion/root.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/ref/fusion/root.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,28 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_REF_FUSION_ROOT_ER_2010_HPP
+#define BOOST_ASSIGN_V2_REF_FUSION_ROOT_ER_2010_HPP
+#include <boost/mpl/void.hpp>
+
+namespace boost{
+namespace assign{ 
+namespace v2{
+namespace ref{
+namespace fusion_aux{
+
+	typedef boost::mpl::void_ root_type;
+
+}// fusion_aux
+}// ref
+}// v2
+}// assign
+}// boost
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/ref/fusion_matrix/container.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/ref/fusion_matrix/container.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,288 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_REF_FUSION_MATRIX_CONTAINER_ER_2010_HPP
+#define BOOST_ASSIGN_V2_REF_FUSION_MATRIX_CONTAINER_ER_2010_HPP
+#include <boost/preprocessor/arithmetic/dec.hpp>
+#include <boost/preprocessor/cat.hpp>
+#include <boost/preprocessor/punctuation/comma.hpp>
+#include <boost/preprocessor/punctuation/comma_if.hpp>
+#include <boost/preprocessor/repetition/enum_binary_params.hpp>
+#include <boost/preprocessor/repetition/enum.hpp>
+#include <boost/preprocessor/repetition/enum_params.hpp>
+#include <boost/preprocessor/repetition/enum_params_with_a_default.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/repetition/repeat_from_to.hpp>
+
+#include <boost/mpl/apply.hpp>
+#include <boost/mpl/unpack_args.hpp>
+#include <boost/mpl/aux_/na.hpp>
+#include <boost/mpl/int.hpp>
+#include <boost/mpl/minus.hpp>
+#include <boost/mpl/size.hpp>
+#include <boost/mpl/vector.hpp>
+
+#include <boost/utility/enable_if.hpp>
+
+#include <boost/assign/v2/detail/config/limit_arity.hpp>
+#include <boost/assign/v2/detail/functor/crtp_unary_and_up.hpp>
+#include <boost/assign/v2/ref/wrapper/framework.hpp>
+#include <boost/assign/v2/ref/fusion/link_holder.hpp>
+#include <boost/assign/v2/ref/fusion_matrix/fwd.hpp>
+
+namespace boost{
+	struct use_default;
+namespace assign{
+namespace v2{
+namespace ref{
+namespace fusion_matrix_aux{
+
+    template<
+    	std::size_t N, typename L, typename Tag1, typename Tag2, 
+        BOOST_PP_ENUM_PARAMS_WITH_A_DEFAULT(
+            BOOST_ASSIGN_V2_LIMIT_ARITY,
+            typename T,
+            boost::mpl::na
+        )
+    >
+    struct meta_result{
+
+        typedef fusion_matrix_aux::container<N, L, Tag1, Tag2, 
+	        BOOST_PP_ENUM_PARAMS(BOOST_ASSIGN_V2_LIMIT_ARITY, T)
+        > this_;
+
+
+		template<
+        	BOOST_PP_ENUM_PARAMS_WITH_A_DEFAULT(
+        		BOOST_ASSIGN_V2_LIMIT_ARITY,
+            	typename U,
+            	boost::mpl::na
+        	)
+        >
+        struct apply
+        {
+
+            typedef fusion_matrix_aux::container<
+            	N+1, 
+                this_, 
+                Tag1, 
+                Tag2, 
+                BOOST_PP_ENUM_PARAMS(
+                	BOOST_ASSIGN_V2_LIMIT_ARITY, 
+                    U
+                )
+            > type;
+
+        };
+
+	};
+
+    template<
+    	std::size_t N, typename L, typename Tag1, typename Tag2, 
+        BOOST_PP_ENUM_PARAMS(
+        	BOOST_ASSIGN_V2_LIMIT_ARITY, 
+            typename T
+        )
+    >
+    class container 
+    	: public fusion_aux::link_holder<L, N == 0>,
+    	public functor_aux::crtp_unary_and_up<
+        	fusion_matrix_aux::container<N, L, Tag1, Tag2,
+            	BOOST_PP_ENUM_PARAMS(
+                	BOOST_ASSIGN_V2_LIMIT_ARITY, 
+                    T
+                )	
+            >,
+            boost::mpl::unpack_args<
+        		fusion_matrix_aux::meta_result<N, L, Tag1, Tag2,
+            		BOOST_PP_ENUM_PARAMS(
+                		BOOST_ASSIGN_V2_LIMIT_ARITY, 
+                    	T
+                	)	
+            	>
+            >
+    	>
+    {
+
+    	typedef boost::mpl::int_<0> int0_;
+        typedef boost::mpl::int_<1> int1_;
+        typedef boost::mpl::int_<N> size_;
+        typedef typename boost::mpl::minus<size_,int1_>::type index_;
+        typedef Tag1 assign_tag_;
+
+		template<typename T>
+        struct wrapper{ typedef ref::wrapper<assign_tag_,T> type; };
+        
+        typedef fusion_aux::link_holder<L, N == 0> link_;
+
+		typedef fusion_matrix_aux::meta_result<N, L, Tag1, Tag2,
+            BOOST_PP_ENUM_PARAMS(
+                BOOST_ASSIGN_V2_LIMIT_ARITY, 
+                T
+            )	
+        > meta_result_;
+
+		typedef functor_aux::crtp_unary_and_up<
+        	container,
+            boost::mpl::unpack_args<
+        		meta_result_
+            >
+    	> super_t;
+
+		typedef boost::mpl::vector<
+        	BOOST_PP_ENUM_PARAMS(BOOST_ASSIGN_V2_LIMIT_ARITY, T)
+        > vec_;
+
+        public:
+
+		typedef std::size_t size_type;
+        BOOST_STATIC_CONSTANT(size_type, static_row_size = N);
+        BOOST_STATIC_CONSTANT(size_type, 
+        	static_column_size = boost::mpl::size<vec_>::value
+        );
+
+		container(){}
+
+#define MACRO1(z, n, data)\
+    BOOST_PP_CAT(w, n) ( BOOST_PP_CAT(_, n) )\
+/**/
+#define MACRO2(z, n, data) \
+    explicit container( \
+    	const L& l BOOST_PP_COMMA_IF(n) \
+        BOOST_PP_ENUM_BINARY_PARAMS(n, T, & _) \
+    ) : link_( l )\
+          BOOST_PP_ENUM_TRAILING(n, MACRO1, ~)\
+    {}\
+/**/        
+BOOST_PP_REPEAT(
+	BOOST_ASSIGN_V2_LIMIT_ARITY,
+    MACRO2,
+    ~
+)
+#undef MACRO1
+#undef MACRO2
+
+        // ------ operator() ----- //
+		//       adds a row	   	   //
+        // ----------------------- //
+
+        template<
+        	BOOST_PP_ENUM_PARAMS_WITH_A_DEFAULT(
+            	BOOST_PP_INC(BOOST_ASSIGN_V2_LIMIT_ARITY),
+            	typename U,
+            	boost::mpl::na
+        	)
+        >
+        struct result : boost::mpl::apply<
+        	meta_result_,
+            BOOST_PP_ENUM_PARAMS(
+            	BOOST_ASSIGN_V2_LIMIT_ARITY,
+            	U
+        	)
+        >{};
+
+		using super_t::operator();
+
+        typename result<>::type
+        operator()()const{
+        	typedef typename result<>::type result_;
+        	return result_( *this );
+        }
+
+#define MACRO1( z, n, data ) \
+ ( BOOST_PP_CAT(_,n) ) \
+/**/
+
+#define MACRO2(z, N1, data) \
+    template<BOOST_PP_ENUM_PARAMS(N1, typename U)> \
+    typename result<BOOST_PP_ENUM_PARAMS(N1, U)>::type \
+    impl( BOOST_PP_ENUM_BINARY_PARAMS(N1, U, &_) )const{ \
+        typedef typename result<BOOST_PP_ENUM_PARAMS(N1, U)>::type result_; \
+        return result_( *this BOOST_PP_ENUM_TRAILING_PARAMS(N1, _) );\
+    } \
+/**/
+BOOST_PP_REPEAT_FROM_TO(
+	1,
+    BOOST_PP_INC(BOOST_ASSIGN_V2_LIMIT_ARITY),
+    MACRO2,
+    ~
+)
+#undef MACRO1
+#undef MACRO2
+
+		// Row extraction
+
+        template<int I>
+        struct is_head : boost::mpl::bool_< I + 1 == N >{};
+
+        template<int I>
+        struct link_result_static_row 
+        	: L::template result_static_row<I>{};
+
+		template<int I>
+		struct result_static_row : boost::mpl::eval_if<
+        	is_head<I>,
+            boost::mpl::identity<
+            	container const&
+            >,
+            link_result_static_row<I>
+        >{};
+
+        template<int I>
+        typename boost::lazy_enable_if<
+        	is_head<I>,
+        	result_static_row<I>
+        >::type
+        static_row(boost::mpl::int_<I> index)const
+        {
+        	return (*this);
+        }
+		
+        template<int I>
+        typename boost::lazy_disable_if<
+        	is_head<I>,
+        	result_static_row<I>
+        >::type
+        static_row( boost::mpl::int_<I> index )const
+        {
+        	return static_cast<link_ const&>( 
+            	*this 
+            ).link().static_row( index );	
+        }
+
+		// Column extraction
+
+#define MACRO(z, n, data)\
+    private: \
+        typename wrapper<BOOST_PP_CAT(T,n)>::type BOOST_PP_CAT(w,n); \
+    public: \
+    BOOST_PP_CAT(T,n)& static_column(boost::mpl::int_<n>)const\
+    {\
+        return this->BOOST_PP_CAT(w,n).unwrap(); \
+    }\
+/**/
+BOOST_PP_REPEAT(
+	BOOST_ASSIGN_V2_LIMIT_ARITY,
+    MACRO,
+    ~
+)
+#undef MACRO
+
+    };
+
+}// fusion_matrix_aux
+}// ref
+}// v2
+}// assign
+}// boost
+
+#endif
+
Added: sandbox/statistics/support/boost/assign/v2/ref/fusion_matrix/fusion_matrix.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/ref/fusion_matrix/fusion_matrix.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,16 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_REF_FUSION_MATRIX_FUSION_MATRIX_ER_2010_HPP
+#define BOOST_ASSIGN_V2_REF_FUSION_MATRIX_FUSION_MATRIX_ER_2010_HPP
+
+#include <boost/assign/v2/ref/fusion_matrix/container.hpp>
+#include <boost/assign/v2/ref/fusion_matrix/nth_result_of.hpp>
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/ref/fusion_matrix/fwd.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/ref/fusion_matrix/fwd.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,39 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_REF_FUSION_MATRIX_FWD_ER_2010_HPP
+#define BOOST_ASSIGN_V2_REF_FUSION_MATRIX_FWD_ER_2010_HPP
+#include <boost/preprocessor/arithmetic/dec.hpp>
+#include <boost/preprocessor/repetition/enum_params_with_a_default.hpp>
+#include <boost/mpl/aux_/na.hpp>
+#include <boost/assign/v2/detail/config/limit_arity.hpp>
+
+namespace boost{
+namespace assign{
+namespace v2{
+namespace ref{
+namespace fusion_matrix_aux{
+
+    template<
+    	std::size_t N, typename L,typename Tag1, typename Tag2, 
+        BOOST_PP_ENUM_PARAMS_WITH_A_DEFAULT(
+            BOOST_ASSIGN_V2_LIMIT_ARITY,
+            typename T,
+            boost::mpl::na
+        )
+    >
+    class container;
+
+}// fusion_matrix_aux                
+}// ref
+}// v2
+}// assign
+}// boost
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/ref/fusion_matrix/nth_result_of.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/ref/fusion_matrix/nth_result_of.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,131 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_REF_FUSION_MATRIX_NTH_RESULT_OF_ER_2010_HPP
+#define BOOST_ASSIGN_V2_REF_FUSION_MATRIX_NTH_RESULT_OF_ER_2010_HPP
+#include <boost/preprocessor/arithmetic/dec.hpp>
+#include <boost/preprocessor/repetition/enum_trailing.hpp>
+#include <boost/preprocessor/repetition/enum_params_with_a_default.hpp>
+
+#include <boost/mpl/apply.hpp>
+#include <boost/mpl/at.hpp>
+#include <boost/mpl/aux_/na.hpp>
+#include <boost/mpl/eval_if.hpp>
+#include <boost/mpl/fold.hpp>
+#include <boost/mpl/identity.hpp>
+#include <boost/mpl/placeholders.hpp>
+#include <boost/mpl/size.hpp>
+//#include <boost/mpl/unpack_args.hpp>
+#include <boost/mpl/at.hpp>
+
+#include <boost/assign/v2/ref/fusion/root.hpp>
+#include <boost/assign/v2/ref/fusion_matrix/fwd.hpp>
+#include <boost/assign/v2/ref/wrapper/copy.hpp>
+
+#include <boost/mpl/aux_/na.hpp>
+#include <boost/assign/v2/detail/config/limit_arity.hpp>
+
+
+namespace boost{
+	struct use_default;
+namespace assign{
+namespace v2{
+namespace ref{
+namespace fusion_matrix_aux{
+
+	template<
+    	typename Tag1 = ref::assign_tag::copy, 
+        typename Tag2 = boost::use_default
+    >
+    struct empty
+    {
+        typedef fusion_matrix_aux::container<
+        	0,
+            typename fusion_aux::root_type,
+            Tag1,
+            Tag2
+        > type;
+    };
+
+    template<typename Tag1,typename Tag2>
+	struct nth_result
+    {
+
+		typedef typename fusion_matrix_aux::empty<Tag1, Tag2>::type state_;
+
+		template<typename NewState>
+        struct result
+        {
+        	template<
+				BOOST_PP_ENUM_PARAMS_WITH_A_DEFAULT(
+            		BOOST_ASSIGN_V2_LIMIT_ARITY,
+            		typename T,
+            		boost::mpl::na
+        		) 
+            >
+            struct apply : NewState::template result<
+            	BOOST_PP_ENUM_PARAMS(
+                	BOOST_ASSIGN_V2_LIMIT_ARITY,
+                    T
+                )
+            >{};
+         
+        }; 
+
+        struct forward_op{
+        
+			template<typename NewState, typename Vec>
+            struct apply{
+            	typedef result<NewState> meta_;
+            	typedef boost::mpl::unpack_args< meta_ > g_;
+                typedef typename boost::mpl::apply1<
+                	g_,
+                    Vec
+                >::type type;
+                
+            };
+
+		};
+
+		template<typename VecTypes>
+    	struct apply : boost::mpl::fold<
+        	VecTypes,
+            state_,
+            forward_op
+        >{};
+
+	};
+    
+}// fusion_matrix_aux
+namespace nth_result_of{
+
+	template<
+    	typename Tag1 = ref::assign_tag::copy, 
+        typename Tag2 = boost::use_default
+	>
+	struct fusion_matrix
+    {
+
+		typedef fusion_matrix_aux::nth_result<Tag1, Tag2> meta_;
+
+        template<typename VecTypes>
+        struct apply : boost::mpl::apply1<
+        	meta_,
+        	VecTypes
+        >{};
+
+	};
+
+}// nth_result_of
+}// ref
+}// v2
+}// assign
+}// boost
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/ref/ref.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/ref/ref.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,18 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_REF_REF_ER_2010_HPP
+#define BOOST_ASSIGN_V2_REF_REF_ER_2010_HPP
+
+#include <boost/assign/v2/ref/anon/anon.hpp>
+#include <boost/assign/v2/ref/fusion/fusion.hpp>
+#include <boost/assign/v2/ref/fusion_matrix/fusion_matrix.hpp>
+#include <boost/assign/v2/ref/wrapper/wrapper.hpp>
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/ref/static_array/alloc/alloc.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/ref/static_array/alloc/alloc.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,16 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_REF_STATIC_ARRAY_ALLOC_ALLOC_ER_2010_HPP
+#define BOOST_ASSIGN_V2_REF_STATIC_ARRAY_ALLOC_ALLOC_ER_2010_HPP
+
+#include <boost/assign/v2/ref/static_array/alloc/fast_alloc.hpp>
+#include <boost/assign/v2/ref/static_array/alloc/lazy_alloc.hpp>
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/ref/static_array/alloc/fast_alloc.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/ref/static_array/alloc/fast_alloc.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,68 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_REF_STATIC_ARRAY_ALLOC_FAST_ALLOC_ER_2010_HPP
+#define BOOST_ASSIGN_V2_REF_STATIC_ARRAY_ALLOC_FAST_ALLOC_ER_2010_HPP
+#include <boost/assign/v2/ref/wrapper/wrapper.hpp>
+#include <boost/assign/v2/ref/fusion/assign_array.hpp>
+#include <boost/assign/v2/ref/static_array/interface.hpp>
+#include <boost/assign/v2/ref/static_array/alloc/fast_alloc_fwd.hpp>
+ 
+namespace boost{
+namespace assign{
+namespace v2{
+namespace ref{
+namespace alloc_tag{
+	struct fast_alloc{};
+}// alloc_tag
+namespace static_array_aux{ 
+
+    template<std::size_t N,typename Tag, typename T>
+    class fast_alloc 
+    	: public static_array_aux::interface<
+   		N, Tag, T, fast_alloc<N,Tag,T> 
+	>
+    {
+
+    	typedef Tag assign_tag_;
+        typedef typename ref::wrapper<assign_tag_,T> wrapper_;
+        typedef boost::array<wrapper_,N> array_;
+                
+        public:
+
+        fast_alloc(){}	
+
+        template<typename L>
+        fast_alloc(const L& l){
+            assign_array(
+            	this->array,
+                l
+            );	
+        }	
+        
+        array_& impl(){ 
+            return this->array;
+        }
+
+        array_ const & impl()const{ 
+            return this->array;
+        }
+        
+        protected:
+        mutable array_ array;
+        
+    };
+
+}// static_array_aux
+}// ref
+}// v2
+}// assign
+}// boost
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/ref/static_array/alloc/fast_alloc_fwd.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/ref/static_array/alloc/fast_alloc_fwd.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,29 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_REF_STATIC_ARRAY_ALLOC_FAST_ALLOC_FWD_ER_2010_HPP
+#define BOOST_ASSIGN_V2_REF_STATIC_ARRAY_ALLOC_FAST_ALLOC_FWD_ER_2010_HPP
+ 
+namespace boost{
+namespace assign{
+namespace v2{
+namespace ref{
+namespace alloc_tag{
+	struct fast_alloc;
+}// alloc_tag
+namespace static_array_aux{ 
+   template<std::size_t N, typename Tag, typename T>
+   class fast_alloc;
+}// static_array_aux   
+}// ref 
+}// v2    
+}// assign
+}// boost
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/ref/static_array/alloc/lazy_alloc.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/ref/static_array/alloc/lazy_alloc.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,83 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_REF_STATIC_ARRAY_ALLOC_LAZY_ALLOC_ER_2010_HPP
+#define BOOST_ASSIGN_V2_REF_STATIC_ARRAY_ALLOC_LAZY_ALLOC_ER_2010_HPP
+#include <boost/shared_ptr.hpp>
+#include <boost/assign/v2/ref/wrapper/wrapper.hpp>
+#include <boost/assign/v2/ref/fusion/assign_array.hpp>
+#include <boost/assign/v2/ref/static_array/alloc/lazy_alloc_fwd.hpp>
+#include <boost/assign/v2/ref/static_array/interface.hpp>
+ 
+namespace boost{
+namespace assign{
+namespace v2{
+namespace ref{
+namespace alloc_tag{
+	struct lazy_alloc;
+}// alloc_tag
+namespace static_array_aux{ 
+                  
+   	template<std::size_t N,typename Tag, typename T, typename D>
+   	class lazy_alloc : public static_array_aux::interface<
+   		N, Tag, T, lazy_alloc<N,Tag,T,D> 
+	>
+    {
+    	typedef Tag assign_tag_;
+        typedef typename ref::wrapper<assign_tag_,T> wrapper_;
+        typedef boost::array<wrapper_,N> array_;
+
+		typedef boost::mpl::int_<N> size_;
+                
+        void alloc_if()const{
+            if(!this->ptr){
+               return this->alloc();
+            }
+        }
+
+        void alloc()const{ 
+            this->ptr = smart_ptr_(new array_);
+            assign_array(
+            	*this->ptr,
+                static_cast<const D&>(*this)
+            );	
+        }
+
+		typedef static_array_aux::interface<
+   			N, Tag, T, lazy_alloc 
+		> super_t;
+		
+        public:
+
+        array_& impl(){ 
+            this->alloc_if();
+            return (*this->ptr);
+        }
+
+        array_ const & impl()const{ 
+            this->alloc_if();
+            return (*this->ptr);
+        }
+        
+        using super_t::operator[];
+        
+        private:
+        
+        typedef boost::shared_ptr<array_> smart_ptr_;
+        mutable smart_ptr_ ptr;
+
+    };
+
+}// static_array_aux
+}// ref 
+}// v2    
+}// assign
+}// boost
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/ref/static_array/alloc/lazy_alloc_fwd.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/ref/static_array/alloc/lazy_alloc_fwd.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,29 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_REF_STATIC_ARRAY_ALLOC_LAZY_ALLOC_FWD_ER_2010_HPP
+#define BOOST_ASSIGN_V2_REF_STATIC_ARRAY_ALLOC_LAZY_ALLOC_FWD_ER_2010_HPP
+ 
+namespace boost{
+namespace assign{
+namespace v2{
+namespace ref{
+namespace alloc_tag{
+	struct lazy_alloc;
+}// alloc_tag
+namespace static_array_aux{ 
+   template<std::size_t N, typename Tag, typename T, typename D>
+   class lazy_alloc;
+}// static_array_aux   
+}// ref 
+}// v2    
+}// assign
+}// boost
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/ref/static_array/interface.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/ref/static_array/interface.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,241 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_REF_STATIC_ARRAY_INTERFACE_ER_2010_HPP
+#define BOOST_ASSIGN_V2_REF_STATIC_ARRAY_INTERFACE_ER_2010_HPP
+#include <algorithm>
+#include <boost/mpl/bool.hpp>
+#include <boost/mpl/int.hpp>
+
+#include <boost/utility/enable_if.hpp>
+#include <boost/type_traits/is_same.hpp>
+#include <boost/type_traits/remove_const.hpp>
+#include <boost/type_traits/add_const.hpp>
+
+#include <boost/array.hpp>
+#include <boost/range.hpp>
+#include <boost/call_traits.hpp>
+#include <boost/range/algorithm/for_each.hpp>
+#include <boost/range/iterator_range.hpp> //iterator_range_detail::
+
+#include <boost/assign/v2/ref/wrapper/framework.hpp>
+#include <boost/assign/v2/ref/wrapper/crtp.hpp>
+#include <boost/assign/v2/ref/detail/unwrap/range.hpp>
+#include <boost/assign/v2/detail/relational_op/relational_op.hpp>
+#include <boost/assign/v2/put/range/convert.hpp>
+
+namespace boost{
+namespace assign{
+namespace v2{
+namespace ref{
+namespace static_array_aux{
+
+    template<std::size_t N, typename Tag, typename T>
+    struct interface_traits{
+    
+        typedef Tag assign_tag_;
+        typedef typename ref::wrapper<assign_tag_,T> wrapper_;
+        typedef boost::array<wrapper_,N> impl_;
+		typedef typename ref::result_of::unwrap_range<impl_>::type range_;
+		typedef typename ref::result_of::unwrap_range<
+        	impl_ const>::type range_c_;
+        
+        typedef typename boost::unwrap_reference<T>::type value_type;
+		typedef typename boost::add_reference<value_type>::type reference;
+        typedef typename boost::call_traits<reference>::const_reference 
+        	const_reference;
+        typedef typename boost::range_iterator<range_>::type iterator;
+        typedef typename boost::range_iterator<range_c_>::type const_iterator;
+        // wrappers
+        #ifndef BOOST_MSVC
+		    typedef typename boost::range_size<impl_>::type size_type;
+        #endif
+        #ifdef BOOST_MSVC 
+            typedef std::size_t size_type; 
+        #endif
+        typedef typename boost::range_difference<range_>::type difference_type;
+
+    };
+                   
+    // Requirements: 
+    // D.impl()				Returns an array of ref-wrappers
+    // D.impl()const		Returns a const array of ref-wrappers
+    template<std::size_t N, typename Tag, typename T, typename D>
+    class interface 
+      :  public relational_op_aux::crtp<
+      		interface<N, Tag, T, D>
+        >
+    {
+    
+        typedef interface_traits<N, Tag, T> traits_;
+        typedef typename traits_::wrapper_ wrapper_;
+        typedef typename traits_::impl_ impl_;
+        typedef interface<N, T, Tag, D> this_;
+
+		typedef typename boost::remove_const<T>::type lvalue_;
+		typedef typename boost::add_const<T>::type rvalue_;
+
+        public:
+        typedef wrapper_ wrapper_type;
+        typedef typename traits_::value_type value_type;
+        typedef typename traits_::iterator iterator;
+        typedef typename traits_::const_iterator const_iterator;
+        typedef typename traits_::size_type size_type;
+        typedef typename traits_::difference_type difference_type;
+        typedef typename traits_::reference reference;
+        typedef typename traits_::const_reference const_reference;
+                
+        BOOST_STATIC_CONSTANT(size_type, static_size = N);
+                                            
+        iterator begin() 
+        { 
+        	return boost::begin( this->unwrap() ); 
+        }
+        iterator end() 
+        { 
+        	return boost::end( this->unwrap() ); 
+        }
+        const_iterator begin()const 
+        { 
+        	return boost::begin( this->unwrap() ); 
+        }
+        const_iterator end()const 
+        { 
+        	return boost::end( this->unwrap() ); 
+        }
+
+        size_type size() const
+        { 
+        	return this->impl().size(); 
+        }
+        bool empty() const
+        { 
+        	return this->impl().empty(); 
+        }
+                
+		wrapper_& get_wrapper(size_type i)
+        {
+        	return (this->impl())[i];
+        }
+
+		wrapper_ const& get_wrapper(size_type i)const
+        {
+        	return (this->impl())[i];
+        }
+                
+        reference operator[](size_type i)
+        { 
+        	return (this->impl())[i].unwrap(); 
+        }
+        const_reference operator[](size_type i)const
+        { 
+             return (this->impl())[i].unwrap(); 
+        }
+			
+        reference front()
+        { 
+        	return (this->impl()).front().unwrap(); 
+        }
+        const_reference front() const
+        { 
+        	return (this->impl()).front().unwrap(); 
+        }
+        reference back()
+        { 
+        	return (this->impl()).back().unwrap(); 
+        }
+        const_reference back() const
+        { 
+        	return (this->impl()).back().unwrap(); 
+        }
+        
+        void swap(interface& other)
+        { 
+            typedef boost::mpl::int_<N> int_n_;
+            this->swap_impl(other,int_n_());
+        }
+
+        void assign(lvalue_& val){ this->assign_impl<lvalue_>( val ); }
+        void assign(rvalue_& val){ this->assign_impl<rvalue_>( val ); }
+
+		BOOST_ASSIGN_V2_CONVERT_CONVERT_MF
+		BOOST_ASSIGN_V2_CONVERT_OPERATOR_MF
+
+        // Relational op
+
+		template<typename R>
+        bool equal_to(const R& r)const{
+         	return ::boost::iterator_range_detail::equal( 
+            	(*this), r );
+		}
+
+		template<typename R>
+        bool less_than(const R& r)const{
+         	return ::boost::iterator_range_detail::less_than( 
+            	(*this), r );
+		}
+
+        protected:
+        typedef boost::mpl::false_ false_;
+        typedef boost::mpl::true_ true_;
+
+        void swap_impl(interface& other, boost::mpl::int_<0>){}
+
+        template<int N1>
+        void swap_impl(interface& other, boost::mpl::int_<N1>)
+        {
+            reference lhs = (*this)[N1-1];
+            reference rhs = (other)[N1-1];
+            lhs.swap(rhs); 
+            typedef boost::mpl::int_<N1-1> next_int_;
+            this->swap_impl( other, next_int_() );
+        }
+        
+        typename traits_::range_ unwrap()
+        { 
+        	return ref::unwrap_range( this->impl() ); 
+        }
+        typename traits_::range_c_ unwrap()const{ 	
+        	return ref::unwrap_range( this->impl() ); 
+        }
+        
+        impl_& impl(){ 
+            return static_cast<D&>(*this).impl();
+        }
+
+        impl_ const& impl()const{ 
+            return static_cast<const D&>(*this).impl();
+        }
+
+		template<typename U>
+        void assign_impl(U& val)
+        { 
+            impl_& ra = this->impl();
+            boost::for_each(
+            	ra, 
+                functional::assigner<U>( val )
+            );
+        }
+
+    };
+
+}// static_array_aux
+namespace container_type_traits{
+	// TODO
+
+//    template<typename T,std::size_t sz>
+//    struct is_static_array<boost::array<T, sz> > : boost::mpl::true_{};
+
+}// container_type_traits
+}// ref
+}// v2
+}// assign
+}// boost
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/ref/static_array/static_array.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/ref/static_array/static_array.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,16 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_REF_STATIC_ARRAY_STATIC_ARRAY_ER_2010_HPP
+#define BOOST_ASSIGN_V2_REF_STATIC_ARRAY_STATIC_ARRAY_ER_2010_HPP
+
+#include <boost/assign/v2/ref/static_array/alloc/alloc.hpp>
+#include <boost/assign/v2/ref/static_array/interface.hpp>
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/ref/wrapper/base.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/ref/wrapper/base.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,49 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_REF_WRAPPER_BASE 
+#include <boost/config.hpp>
+#include <boost/type_traits/is_const.hpp>
+    template<typename D, typename T>
+    class wrapper_crtp;
+#define BOOST_ASSIGN_V2_REF_WRAPPER_BASE(X) \
+        typedef T type; \
+        BOOST_STATIC_CONSTANT( \
+            bool, \
+            is_const = boost::is_const<T>::value \
+        ); \
+        \
+        X(){} \
+        \
+        explicit X( T& r ) : ref_(&r) \
+        { } \
+        \
+        void rebind(T& r ) \
+    	{ \
+            this->ref_ = &r; \
+    	} \
+        \
+        T& unwrap() const \
+        { \
+            return *this->ref_; \
+        } \
+        \
+        T* get_pointer() const { return this->ref_; } \
+        \
+        using wrapper_crtp<wrapper,T>::operator=; \
+        \
+        protected: \
+		friend class wrapper_crtp<wrapper,T>; \
+        \
+        T* ref_; \
+        public: \
+/**/
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/ref/wrapper/copy.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/ref/wrapper/copy.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,72 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_REF_WRAPPER_COPY_ER_2010_HPP
+#define BOOST_ASSIGN_V2_REF_WRAPPER_COPY_ER_2010_HPP
+#include <algorithm>
+#include <boost/mpl/bool.hpp>
+#include <boost/call_traits.hpp>
+#include <boost/type_traits/remove_cv.hpp>
+#include <boost/assign/v2/ref/wrapper/framework.hpp>
+#include <boost/assign/v2/ref/wrapper/base.hpp>
+#include <boost/assign/v2/ref/wrapper/crtp.hpp>
+
+namespace boost{
+namespace assign{ 
+namespace v2{
+namespace ref{
+namespace assign_tag{ struct copy{}; }
+namespace assign_copy{ typedef assign_tag::copy assign_tag_; }
+
+    template< class T >
+    struct wrapper<ref::assign_tag::copy, T> 
+    : 
+    	public ref::wrapper_crtp< wrapper<ref::assign_tag::copy, T>, T>
+    {
+        BOOST_ASSIGN_V2_REF_WRAPPER_BASE( wrapper )     
+
+        typedef ref::assign_tag::copy assign_tag;
+
+        void assign(typename boost::call_traits<T>::param_type r )
+        {
+            this->unwrap() = r;
+        }
+
+        void swap( wrapper& r )
+        {
+            std::swap( this->unwrap(), r.unwrap() );
+        }
+
+    };
+    
+namespace type_traits{
+    
+    template<typename T>
+    struct copy_wrapper{ typedef ref::wrapper<assign_tag::copy,T> type; };
+    
+    template<typename T>
+    struct does_assign_copy_impl : boost::mpl::false_{};
+    
+    template<typename T>
+    struct does_assign_copy_impl< 	
+    	ref::wrapper<assign_tag::copy, T> 
+    > : boost::mpl::true_{};
+    
+    template<typename T>
+    struct does_assign_copy : does_assign_copy_impl<
+    	typename boost::remove_cv<T>::type
+    >{};
+    
+}// type_traits
+}// ref
+}// v2
+}// assign
+}// boost
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/ref/wrapper/crtp.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/ref/wrapper/crtp.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,149 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Manuel Peinado Gallego                               //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_REF_WRAPPER_CRTP_ER_MPG_2010_HPP
+#define BOOST_ASSIGN_V2_REF_WRAPPER_CRTP_ER_MPG_2010_HPP
+#include <boost/utility/enable_if.hpp>
+#include <boost/type_traits/is_same.hpp>
+#include <boost/type_traits/remove_const.hpp>
+#include <boost/type_traits/add_const.hpp>
+#include <boost/call_traits.hpp>
+#include <boost/operators.hpp>
+
+// This design is an outgrowth of assign_detail::assign_reference<> by TO. The 
+// new feature is that the assignment operator and swap member function are 
+// customizable and there are two options, identified by MPG : the 
+// reference is assigned a new value (copy), or a new address (rebind). 
+
+namespace boost{
+namespace assign{ 
+namespace v2{
+namespace ref{
+    
+    template<typename D, typename T>
+    class wrapper_crtp 
+    : 
+        boost::less_than_comparable1< 
+            wrapper_crtp<D,T>, 
+            boost::less_than_comparable2<
+                wrapper_crtp<D,T>,
+                T,
+                boost::equality_comparable1<
+                    wrapper_crtp<D,T>,
+                    boost::equality_comparable2<
+                        wrapper_crtp<D,T>,
+                        T
+                    >
+                >
+            >
+        >
+    {
+
+		typedef typename boost::remove_const<T>::type lvalue_;
+		typedef typename boost::add_const<T>::type rvalue_;
+
+        public: 
+        // protected
+
+        D& derived(){ return static_cast<D&>( *this ); }
+        D const & derived()const{ return static_cast<D const&>( *this ); }
+
+        public:
+
+        void operator=(lvalue_& r ){ this->derived().assign( r ); }
+		void operator=(rvalue_& r ){ this->derived().assign( r ); }
+
+        void swap( wrapper_crtp& r )
+        {
+            return this->derived().swap( r );
+        }
+
+        operator T&() const
+        {
+            return this->derived().unwrap();
+        }
+
+        bool operator==( const wrapper_crtp& r )const
+        {
+            return this->derived().unwrap() == r.derived().unwrap();
+        }
+
+        bool operator<( const wrapper_crtp& r )const
+        {
+            return this->derived().unwrap() < r.derived().unwrap();
+        }
+
+        bool operator==( typename boost::call_traits<T>::param_type r )const
+        {
+            return this->derived().unwrap() == r;
+        }
+
+        bool operator<( typename boost::call_traits<T>::param_type r )const
+        {
+            return this->derived().unwrap() < r;
+        }
+
+        bool operator>( typename boost::call_traits<T>::param_type r )const
+        {
+            return this->derived().unwrap() > r;
+        }
+        
+
+    };
+
+	template<typename D,typename T>
+	void rebind( wrapper_crtp<D,T>& a, T& r ){ a.rebind( r ); }
+
+    template<typename D,typename T>
+    inline void swap( wrapper_crtp<D,T>& l, wrapper_crtp<D,T>& r )
+    {
+        l.swap( r );
+    }
+
+namespace functional{
+
+	template<typename T>
+    struct assigner
+    {
+    	assigner(T& val):value( val ){}
+        
+		typedef typename boost::remove_const<T>::type lvalue_;
+		typedef typename boost::add_const<T>::type rvalue_;
+        
+        typedef void result_type;
+        
+        template<typename D> void operator()(wrapper_crtp<D, lvalue_>& w)const
+        {
+			this->impl<D, lvalue_>( w );
+		}        
+
+        template<typename D> void operator()(wrapper_crtp<D, rvalue_>& w)const
+        {
+			this->impl<D, rvalue_>( w );
+		}        
+
+        private:
+		template<typename D, typename U>        
+        void impl(wrapper_crtp<D, U>& w)const
+        {
+			w = this->value;
+		}        
+        
+        assigner();
+        mutable T& value;
+    };
+
+}// functional
+}// ref
+}// v2
+}// assign
+}// boost
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/ref/wrapper/deduce_assign_tag.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/ref/wrapper/deduce_assign_tag.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,40 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_REF_WRAPPER_DEDUCE_ASSIGN_TAG_ER_2010_HPP
+#define BOOST_ASSIGN_V2_REF_WRAPPER_DEDUCE_ASSIGN_TAG_ER_2010_HPP
+#include <boost/mpl/eval_if.hpp>
+#include <boost/mpl/identity.hpp>
+#include <boost/type_traits/is_same.hpp>
+
+namespace boost{
+	struct use_default;
+namespace assign{ 
+namespace v2{
+namespace ref{
+namespace assign_tag{
+	struct copy;
+}// assign_tag
+namespace wrapper_aux{
+
+	template<typename Tag>
+	struct deduce_assign_tag : boost::mpl::eval_if<
+        boost::is_same<Tag, boost::use_default>,
+        boost::mpl::identity<ref::assign_tag::copy>,
+        boost::mpl::identity<Tag>
+    >
+    {};
+
+}// wrapper_aux
+}// ref
+}// v2
+}// assign
+}// boost
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/ref/wrapper/framework.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/ref/wrapper/framework.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,89 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_REF_WRAPPER_FRAMEWORK_ER_2010_HPP
+#define BOOST_ASSIGN_V2_REF_WRAPPER_FRAMEWORK_ER_2010_HPP
+
+namespace boost{
+namespace assign{ 
+namespace v2{
+namespace ref{
+
+	template<typename Tag,typename T>
+    struct wrapper{
+        // specialize on Tag
+    };
+
+namespace result_of{
+	template<typename Tag,typename T>
+    struct wrap{
+        typedef ref::wrapper<Tag,T> type;
+    };
+}
+
+
+template<typename Tag, typename T> 
+inline ref::wrapper<Tag,T> 
+wrap(T & t)
+{ 
+    typedef ref::wrapper<Tag,T> result_;
+    return result_( t );
+}
+
+template<typename Tag, typename T> 
+inline ref::wrapper<Tag,T const> 
+wrap(T const & t)
+{ 
+    typedef ref::wrapper<Tag,T const> result_;
+    return result_( t );
+}
+
+}// ref
+}// v2
+}// assign
+}// boost
+
+#include <boost/mpl/bool.hpp>
+#include <boost/ref.hpp>
+#include <boost/assign/v2/ref/wrapper/wrapper.hpp>
+
+// These are specializations of classes in boost/ref.hpp.
+
+namespace boost{
+
+#define t assign::v2::ref::wrapper<Tag,T>
+
+#  define AUX_REFERENCE_WRAPPER_METAFUNCTIONS_DEF(suffix) \
+template<typename Tag,typename T> \
+class is_reference_wrapper< t suffix> \
+    : public mpl::true_ \
+{ \
+}; \
+\
+template<typename Tag,typename T> \
+class unwrap_reference< t suffix > \
+{ \
+ public: \
+    typedef T type; \
+}; \
+/**/
+
+AUX_REFERENCE_WRAPPER_METAFUNCTIONS_DEF( )
+#if !defined(BOOST_NO_CV_SPECIALIZATIONS)
+AUX_REFERENCE_WRAPPER_METAFUNCTIONS_DEF( const )
+AUX_REFERENCE_WRAPPER_METAFUNCTIONS_DEF( volatile )
+AUX_REFERENCE_WRAPPER_METAFUNCTIONS_DEF( const volatile )
+#endif
+
+#undef t
+#undef AUX_REFERENCE_WRAPPER_METAFUNCTIONS_DEF
+
+}// boost
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/ref/wrapper/rebind.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/ref/wrapper/rebind.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,60 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_REF_WRAPPER_REBIND_ER_2010_HPP
+#define BOOST_ASSIGN_V2_REF_WRAPPER_REBIND_ER_2010_HPP
+#include <algorithm>
+//#include <boost/call_traits.hpp>
+#include <boost/assign/v2/ref/wrapper/framework.hpp>
+#include <boost/assign/v2/ref/wrapper/base.hpp>
+#include <boost/assign/v2/ref/wrapper/crtp.hpp>
+
+namespace boost{
+namespace assign{ 
+namespace v2{
+namespace ref{
+namespace assign_tag{ struct rebind{}; }
+namespace assign_rebind{ typedef assign_tag::rebind assign_tag_; }
+
+    template< class T >
+    struct wrapper<assign_tag::rebind, T> 
+    : public wrapper_crtp< wrapper<assign_tag::rebind, T>, T >
+    {
+        typedef assign_tag::rebind assign_tag;
+    
+        BOOST_ASSIGN_V2_REF_WRAPPER_BASE( wrapper )     
+
+        void assign( T& r )
+        {
+            this->rebind( r );
+        }
+
+        void swap( wrapper& r )
+        {
+            T* tmp = this->ref_;
+            this->rebind( r.unwrap() );
+            r.rebind( tmp );
+        }
+
+    };
+
+namespace type_traits{
+    
+    template<typename T>
+    struct rebind_wrapper{ 
+    	typedef ref::wrapper<assign_tag::rebind,T> type; 
+    };
+
+}// type_traits
+}// ref
+}// v2
+}// assign
+}// boost
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/ref/wrapper/wrapper.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/ref/wrapper/wrapper.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,17 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_REF_WRAPPER_WRAPPER_ER_2010_HPP
+#define BOOST_ASSIGN_V2_REF_WRAPPER_WRAPPER_ER_2010_HPP
+
+#include <boost/assign/v2/ref/wrapper/deduce_assign_tag.hpp>
+#include <boost/assign/v2/ref/wrapper/copy.hpp>
+#include <boost/assign/v2/ref/wrapper/rebind.hpp>
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/v2.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/v2.hpp	2010-11-15 16:07:23 EST (Mon, 15 Nov 2010)
@@ -0,0 +1,19 @@
+//////////////////////////////////////////////////////////////////////////////
+//  Boost.Assign v2                                                         //
+//                                                                          //
+//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
+//  Copyright (C) 2010 Erwann Rogard                                        //
+//  Use, modification and distribution are subject to the                   //
+//  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_ASSIGN_V2_V2_ER_2010_HPP
+#define BOOST_ASSIGN_V2_V2_ER_2010_HPP
+
+#include <boost/assign/v2/anon/anon.hpp>
+#include <boost/assign/v2/chain/chain.hpp>
+#include <boost/assign/v2/detail/detail.hpp>
+#include <boost/assign/v2/put/put.hpp>
+#include <boost/assign/v2/ref/ref.hpp>
+
+#endif