$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r67946 - in sandbox/statistics/support/boost/assign/v2/detail: . traits traits/container traits/type
From: erwann.rogard_at_[hidden]
Date: 2011-01-10 23:35:15
Author: e_r
Date: 2011-01-10 23:35:11 EST (Mon, 10 Jan 2011)
New Revision: 67946
URL: http://svn.boost.org/trac/boost/changeset/67946
Log:
upd boost/assign/v2
Added:
   sandbox/statistics/support/boost/assign/v2/detail/traits/
   sandbox/statistics/support/boost/assign/v2/detail/traits.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/detail/traits/container/
   sandbox/statistics/support/boost/assign/v2/detail/traits/container.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/detail/traits/container/forward_to_value.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/detail/traits/container/has_push.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/detail/traits/container/has_static_size.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/detail/traits/container/is_array.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/detail/traits/container/is_associative.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/detail/traits/container/is_fifo.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/detail/traits/container/is_lifo.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/detail/traits/container/is_map.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/detail/traits/container/is_ptr_container.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/detail/traits/container/is_range.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/detail/traits/container/is_set.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/detail/traits/container/is_sorted.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/detail/traits/container/is_static_array.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/detail/traits/container/ptr_to_value.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/detail/traits/container/ptr_to_value_container.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/detail/traits/container/static_size.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/detail/traits/container/value.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/detail/traits/container/value_container.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/detail/traits/switch.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/detail/traits/type/
   sandbox/statistics/support/boost/assign/v2/detail/traits/type.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/detail/traits/type/decay.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/detail/traits/type/has_value_type.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/detail/traits/type/is_stl_pair.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/detail/traits/type/meta_convert.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/detail/traits/type/or_const.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/detail/traits/type/same_remove_cv.hpp   (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/detail/traits/type/value.hpp   (contents, props changed)
Added: sandbox/statistics/support/boost/assign/v2/detail/traits.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/detail/traits.hpp	2011-01-10 23:35:11 EST (Mon, 10 Jan 2011)
@@ -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_TRAITS_ER_2010_HPP
+#define BOOST_ASSIGN_V2_DETAIL_TRAITS_ER_2010_HPP
+
+#include <boost/assign/v2/detail/traits/type.hpp>
+#include <boost/assign/v2/detail/traits/container.hpp>
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/detail/traits/container.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/detail/traits/container.hpp	2011-01-10 23:35:11 EST (Mon, 10 Jan 2011)
@@ -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_TRAITS_CONTAINER_ER_2010_HPP
+#define BOOST_ASSIGN_V2_TRAITS_CONTAINER_ER_2010_HPP
+
+#include <boost/assign/v2/detail/traits/container/has_push.hpp>
+#include <boost/assign/v2/detail/traits/container/has_static_size.hpp>
+#include <boost/assign/v2/detail/traits/container/forward_to_value.hpp>
+#include <boost/assign/v2/detail/traits/container/is_associative.hpp>
+#include <boost/assign/v2/detail/traits/container/is_fifo.hpp>
+#include <boost/assign/v2/detail/traits/container/is_lifo.hpp>
+#include <boost/assign/v2/detail/traits/container/is_map.hpp>
+#include <boost/assign/v2/detail/traits/container/is_ptr_container.hpp>
+#include <boost/assign/v2/detail/traits/container/is_range.hpp>
+#include <boost/assign/v2/detail/traits/container/is_set.hpp>
+#include <boost/assign/v2/detail/traits/container/is_sorted.hpp>
+#include <boost/assign/v2/detail/traits/container/is_static_array.hpp> // TODO
+#include <boost/assign/v2/detail/traits/container/ptr_to_value.hpp>
+#include <boost/assign/v2/detail/traits/container/ptr_to_value_container.hpp>
+#include <boost/assign/v2/detail/traits/container/static_size.hpp>
+#include <boost/assign/v2/detail/traits/container/value.hpp>
+#include <boost/assign/v2/detail/traits/container/value_container.hpp>
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/detail/traits/container/forward_to_value.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/detail/traits/container/forward_to_value.hpp	2011-01-10 23:35:11 EST (Mon, 10 Jan 2011)
@@ -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_TRAITS_CONTAINER_FWD_TO_VALUE_ER_2010_HPP
+#define BOOST_ASSIGN_V2_TRAITS_CONTAINER_FWD_TO_VALUE_ER_2010_HPP
+#include <boost/assign/v2/detail/traits/container/value_container.hpp>
+
+namespace boost{
+namespace assign{
+namespace v2{
+namespace container_traits{
+
+	template<template<typename T> class F,typename V>
+    struct forward_to_value: F<
+    	typename value_container<V>::type
+    >{};
+
+}// container_traits
+}// v2
+}// assign
+}// boost
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/detail/traits/container/has_push.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/detail/traits/container/has_push.hpp	2011-01-10 23:35:11 EST (Mon, 10 Jan 2011)
@@ -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_TRAITS_CONTAINER_HAS_PUSH_ER_2010_HPP
+#define BOOST_ASSIGN_V2_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/traits/container/value.hpp>
+
+namespace boost{
+namespace assign{
+namespace v2{
+namespace container_traits{
+
+    template<typename V,typename T 
+    	= typename container_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_traits::has_push<V>{};
+    
+}// container_traits
+}// v2
+}// assign
+}// boost 
+
+#endif
+
Added: sandbox/statistics/support/boost/assign/v2/detail/traits/container/has_static_size.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/detail/traits/container/has_static_size.hpp	2011-01-10 23:35:11 EST (Mon, 10 Jan 2011)
@@ -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_TRAITS_CONTAINER_HAS_STATIC_SIZE_ER_2010_HPP
+#define BOOST_ASSIGN_V2_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_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_traits
+}// v2
+}// assign
+}// boost 
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/detail/traits/container/is_array.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/detail/traits/container/is_array.hpp	2011-01-10 23:35:11 EST (Mon, 10 Jan 2011)
@@ -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_TRAITS_CONTAINER_IS_ARRAY_ER_2010_HPP
+#define BOOST_ASSIGN_V2_TRAITS_CONTAINER_IS_ARRAY_ER_2010_HPP
+/*
+#include <boost/mpl/bool.hpp>
+#include <boost/type_traits/remove_cv.hpp>
+//#include <boost/assign/v2/detail/traits/container/has_static_size.hpp>
+#include <boost/assign/v2/detail/traits/container/forward_to_value.hpp>
+
+namespace boost{
+
+#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_aux{
+
+	template<typename V> struct is_array : boost::mpl::false_{};
+	template<typename V> struct is_array<
+    	boost::array<T, sz> 
+    > : boost::mpl::true_{};
+    
+}// containert_type_aux
+namespace container_traits{
+
+    template<typename V>
+    struct is_array : forward_to_value<
+    	is_array_impl,
+    	typename boost::remove_cv<V>::type
+    >{};
+
+}// container_traits
+}// v2
+}// assign
+}// boost 
+*/
+#endif
Added: sandbox/statistics/support/boost/assign/v2/detail/traits/container/is_associative.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/detail/traits/container/is_associative.hpp	2011-01-10 23:35:11 EST (Mon, 10 Jan 2011)
@@ -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_TRAITS_CONTAINER_IS_ASSOCIATIVE_ER_2010_HPP
+#define BOOST_ASSIGN_V2_TRAITS_CONTAINER_IS_ASSOCIATIVE_ER_2010_HPP
+#include <boost/mpl/or.hpp>
+#include <boost/assign/v2/detail/traits/container/is_map.hpp>
+#include <boost/assign/v2/detail/traits/container/is_set.hpp>
+
+namespace boost{
+namespace assign{
+namespace v2{
+namespace container_tag{
+	struct associative{};
+}// container_tag
+namespace container_traits{
+
+	template<typename V>
+    struct is_associative : boost::mpl::or_<
+    	container_traits::is_set<V>,
+        container_traits::is_map<V>
+    >{};
+    
+}// container_traits
+}// v2
+}// assign
+}// boost 
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/detail/traits/container/is_fifo.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/detail/traits/container/is_fifo.hpp	2011-01-10 23:35:11 EST (Mon, 10 Jan 2011)
@@ -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_TRAITS_CONTAINER_IS_FIFO_ER_2010_HPP
+#define BOOST_ASSIGN_V2_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/traits/container/is_ptr_container.hpp>
+#include <boost/assign/v2/detail/traits/container/forward_to_value.hpp>
+
+namespace boost{
+namespace assign{
+namespace v2{
+namespace container_tag{
+	struct fifo{};
+}// container_tag
+namespace container_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_traits
+}// v2
+}// assign
+}// boost
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/detail/traits/container/is_lifo.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/detail/traits/container/is_lifo.hpp	2011-01-10 23:35:11 EST (Mon, 10 Jan 2011)
@@ -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_TRAITS_CONTAINER_IS_LIFO_ER_2010_HPP
+#define BOOST_ASSIGN_V2_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/traits/container/is_ptr_container.hpp>
+#include <boost/assign/v2/detail/traits/container/forward_to_value.hpp>
+
+namespace boost{
+namespace assign{
+namespace v2{
+namespace container_tag{
+	struct lifo{};
+}// container_tag
+namespace container_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_traits
+}// v2
+}// assign
+}// boost
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/detail/traits/container/is_map.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/detail/traits/container/is_map.hpp	2011-01-10 23:35:11 EST (Mon, 10 Jan 2011)
@@ -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_TRAITS_CONTAINER_IS_MAP_ER_2010_HPP
+#define BOOST_ASSIGN_V2_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/traits/container/is_ptr_container.hpp>
+#include <boost/assign/v2/detail/traits/container/forward_to_value.hpp>
+
+namespace boost{
+namespace assign{
+namespace v2{
+namespace container_tag{
+	struct map{};
+}// container_tag
+namespace container_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_traits
+}// v2
+}// assign
+}// boost 
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/detail/traits/container/is_ptr_container.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/detail/traits/container/is_ptr_container.hpp	2011-01-10 23:35:11 EST (Mon, 10 Jan 2011)
@@ -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_TRAITS_CONTAINER_IS_PTR_CONTAINER_ER_2010_HPP
+#define BOOST_ASSIGN_V2_TRAITS_CONTAINER_IS_PTR_CONTAINER_ER_2010_HPP
+#include <boost/mpl/identity.hpp>
+#include <boost/mpl/eval_if.hpp>
+#include <boost/assign/v2/detail/traits/container/ptr_to_value.hpp>
+
+namespace boost{
+namespace assign{
+namespace v2{
+namespace container_traits{
+
+	template<typename V>
+    struct is_ptr_container : ptr_to_value<V>::is_applicable{};
+
+}// container_traits
+}// v2
+}// assign
+}// boost
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/detail/traits/container/is_range.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/detail/traits/container/is_range.hpp	2011-01-10 23:35:11 EST (Mon, 10 Jan 2011)
@@ -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_TRAITS_CONTAINER_IS_RANGE_ER_2010_HPP
+#define BOOST_ASSIGN_V2_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_traits{
+
+	template<typename V>
+    struct is_range{
+    	// purposedly left blank.
+    };
+    
+}// container_traits
+}// v2
+}// assign
+}// boost
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/detail/traits/container/is_set.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/detail/traits/container/is_set.hpp	2011-01-10 23:35:11 EST (Mon, 10 Jan 2011)
@@ -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_TRAITS_CONTAINER_IS_SET_ER_2010_HPP
+#define BOOST_ASSIGN_V2_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/traits/container/is_ptr_container.hpp>
+#include <boost/assign/v2/detail/traits/container/forward_to_value.hpp>
+
+namespace boost{
+namespace assign{
+namespace v2{
+namespace container_tag{
+	struct set{};
+}// container_tag
+namespace container_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_traits
+}// v2
+}// assign
+}// boost 
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/detail/traits/container/is_sorted.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/detail/traits/container/is_sorted.hpp	2011-01-10 23:35:11 EST (Mon, 10 Jan 2011)
@@ -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_TRAITS_CONTAINER_IS_SORTED_ER_2010_HPP
+#define BOOST_ASSIGN_V2_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/traits/container/forward_to_value.hpp>
+
+namespace boost{
+namespace assign{
+namespace v2{
+namespace container_tag{
+	struct sorted{};
+}// container_tag
+namespace container_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_traits
+}// v2
+}// assign
+}// boost
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/detail/traits/container/is_static_array.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/detail/traits/container/is_static_array.hpp	2011-01-10 23:35:11 EST (Mon, 10 Jan 2011)
@@ -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_TRAITS_CONTAINER_IS_STATIC_ARRAY_ER_2010_HPP
+#define BOOST_ASSIGN_V2_TRAITS_CONTAINER_IS_STATIC_ARRAY_ER_2010_HPP
+#include <boost/type_traits/remove_cv.hpp>
+#include <boost/assign/v2/detail/traits/container/has_static_size.hpp>
+#include <boost/assign/v2/detail/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_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_traits
+}// v2
+}// assign
+}// boost 
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/detail/traits/container/ptr_to_value.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/detail/traits/container/ptr_to_value.hpp	2011-01-10 23:35:11 EST (Mon, 10 Jan 2011)
@@ -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_TRAITS_CONTAINER_PTR_TO_VALUE_ER_2010_HPP
+#define BOOST_ASSIGN_V2_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/traits/container/static_size.hpp>
+
+namespace boost{
+namespace assign{
+namespace v2{
+namespace container_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_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_traits
+}// v2
+}// assign
+}// boost
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/detail/traits/container/ptr_to_value_container.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/detail/traits/container/ptr_to_value_container.hpp	2011-01-10 23:35:11 EST (Mon, 10 Jan 2011)
@@ -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_TRAITS_CONTAINER_PTR_TO_VALUE_CONTAINER_ER_2010_HPP
+#define BOOST_ASSIGN_V2_TRAITS_CONTAINER_PTR_TO_VALUE_CONTAINER_ER_2010_HPP
+#include <boost/assign/v2/detail/traits/container/is_ptr_container.hpp>
+
+namespace boost{
+namespace assign{
+namespace v2{
+namespace container_traits{
+
+    template<typename V>
+    struct ptr_to_value_container{
+    	typedef typename ptr_to_value<V>::container_type type;
+    };
+    
+}// container_traits
+}// v2
+}// assign
+}// boost
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/detail/traits/container/static_size.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/detail/traits/container/static_size.hpp	2011-01-10 23:35:11 EST (Mon, 10 Jan 2011)
@@ -0,0 +1,46 @@
+//////////////////////////////////////////////////////////////////////////////
+//  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_TRAITS_CONTAINER_STATIC_SIZE_ER_2010_HPP
+#define BOOST_ASSIGN_V2_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_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_traits
+}// v2
+}// assign
+}// boost
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/detail/traits/container/value.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/detail/traits/container/value.hpp	2011-01-10 23:35:11 EST (Mon, 10 Jan 2011)
@@ -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_TRAITS_CONTAINER_VALUE_ER_2010_HPP
+#define BOOST_ASSIGN_V2_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/traits/type/value.hpp>
+#include <boost/assign/v2/detail/traits/container/forward_to_value.hpp>
+
+namespace boost{
+namespace assign{
+namespace v2{
+namespace container_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_traits
+}// v2
+}// assign
+}// boost
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/detail/traits/container/value_container.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/detail/traits/container/value_container.hpp	2011-01-10 23:35:11 EST (Mon, 10 Jan 2011)
@@ -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_TRAITS_CONTAINER_VALUE_CONTAINER_ER_2010_HPP
+#define BOOST_ASSIGN_V2_TRAITS_CONTAINER_VALUE_CONTAINER_ER_2010_HPP
+#include <boost/mpl/identity.hpp>
+#include <boost/mpl/eval_if.hpp>
+#include <boost/assign/v2/detail/traits/container/is_ptr_container.hpp>
+#include <boost/assign/v2/detail/traits/container/ptr_to_value_container.hpp>
+
+namespace boost{
+namespace assign{
+namespace v2{
+namespace container_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_traits
+}// v2
+}// assign
+}// boost
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/detail/traits/switch.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/detail/traits/switch.hpp	2011-01-10 23:35:11 EST (Mon, 10 Jan 2011)
@@ -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_DETAIL_TRAITS_SWITCH_ER_2010_HPP
+#define BOOST_ASSIGN_V2_DETAIL_TRAITS_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 switch_aux{
+    
+    // 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 default_f : boost::mpl::true_{};
+    
+    template<typename Tag, template<typename> class F = switch_aux::default_f>
+    struct helper
+    {
+        typedef Tag tag;
+        template<typename T> struct apply : F<T>
+        {
+        	// Is Tag compatible with T? Answer : F<T>::value.
+        };
+    };
+
+    template<typename H> // helper
+    struct extract_tag
+    {
+        typedef typename H::tag type;
+    };
+
+    template<typename SwitchTag, typename T, int k = 0>
+    struct result : boost::mpl::eval_if<
+        boost::mpl::apply1< switch_aux::case_<SwitchTag, k>, T >,
+        switch_aux::extract_tag< switch_aux::case_<SwitchTag, k> >,
+        switch_aux::result< SwitchTag, T, k + 1>
+    >{};
+
+}// switch_aux
+}// v2
+}// assign
+}// boost
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/detail/traits/type.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/detail/traits/type.hpp	2011-01-10 23:35:11 EST (Mon, 10 Jan 2011)
@@ -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_TRAITS_TYPE_ER_2010_HPP
+#define BOOST_ASSIGN_V2_TRAITS_TYPE_ER_2010_HPP
+
+#include <boost/assign/v2/detail/traits/type/has_value_type.hpp>
+#include <boost/assign/v2/detail/traits/type/meta_convert.hpp>
+#include <boost/assign/v2/detail/traits/type/value.hpp>
+
+#endif
Added: sandbox/statistics/support/boost/assign/v2/detail/traits/type/decay.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/detail/traits/type/decay.hpp	2011-01-10 23:35:11 EST (Mon, 10 Jan 2011)
@@ -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_TRAITS_TYPE_DECAY_OF_ER_2010_HPP
+#define BOOST_ASSIGN_V2_TRAITS_TYPE_DECAY_OF_ER_2010_HPP
+#include <boost/mpl/eval_if.hpp>
+#include <boost/type_traits/is_array.hpp>
+#include <boost/type_traits/decay.hpp>
+#include <boost/type_traits/add_const.hpp>
+
+namespace boost{
+namespace assign{
+namespace v2{
+namespace type_traits{
+
+    // 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/traits/type/has_value_type.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/detail/traits/type/has_value_type.hpp	2011-01-10 23:35:11 EST (Mon, 10 Jan 2011)
@@ -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_TRAITS_TYPE_HAS_VALUE_TYPE_ER_2010_HPP
+#define BOOST_ASSIGN_V2_TRAITS_TYPE_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/traits/type/is_stl_pair.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/detail/traits/type/is_stl_pair.hpp	2011-01-10 23:35:11 EST (Mon, 10 Jan 2011)
@@ -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_TRAITS_TYPE_IS_STL_PAIR_ER_2010_HPP
+#define BOOST_ASSIGN_V2_TRAITS_TYPE_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/traits/type/meta_convert.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/detail/traits/type/meta_convert.hpp	2011-01-10 23:35:11 EST (Mon, 10 Jan 2011)
@@ -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_TRAITS_TYPE_HAS_VALUE_TYPE_ER_2010_HPP
+#define BOOST_ASSIGN_V2_TRAITS_TYPE_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/traits/type/or_const.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/detail/traits/type/or_const.hpp	2011-01-10 23:35:11 EST (Mon, 10 Jan 2011)
@@ -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_DETAIL_TYPE_TRAITS_OR_CONST_ER_2010_HPP
+#define BOOST_ASSIGN_V2_DETAIL_TYPE_TRAITS_OR_CONST_ER_2010_HPP
+#include <boost/mpl/or.hpp>
+#include <boost/mpl/bool.hpp>
+#include <boost/type_traits/is_const.hpp>
+
+namespace boost{
+namespace assign{
+namespace v2{
+namespace type_traits{
+
+template<typename ...Args> struct or_const : boost::mpl::false_{};
+
+template<typename T, typename ...Args>
+struct or_const<T, Args...> : boost::mpl::or_<
+    boost::is_const<T>,
+    or_const<Args...>
+>{};
+
+template<typename T, typename ...Args>
+struct or_const<T const, Args...> : boost::mpl::true_{};
+
+}// type_traits
+}// v2
+}// assign
+}// boost
+
+#endif // BOOST_ASSIGN_V2_DETAIL_TYPE_TRAITS_OR_CONST_ER_2010_HPP
Added: sandbox/statistics/support/boost/assign/v2/detail/traits/type/same_remove_cv.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/detail/traits/type/same_remove_cv.hpp	2011-01-10 23:35:11 EST (Mon, 10 Jan 2011)
@@ -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/traits/type/value.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/detail/traits/type/value.hpp	2011-01-10 23:35:11 EST (Mon, 10 Jan 2011)
@@ -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_TRAITS_TYPE_VALUE_ER_2010_HPP
+#define BOOST_ASSIGN_V2_TRAITS_TYPE_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