$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r69669 - in sandbox/assign_v2/libs/assign/v2/test/put: . modifier
From: erwann.rogard_at_[hidden]
Date: 2011-03-07 21:05:10
Author: e_r
Date: 2011-03-07 21:05:05 EST (Mon, 07 Mar 2011)
New Revision: 69669
URL: http://svn.boost.org/trac/boost/changeset/69669
Log:
upd assign_v2
Added:
   sandbox/assign_v2/libs/assign/v2/test/put/modifier/
   sandbox/assign_v2/libs/assign/v2/test/put/modifier.cpp   (contents, props changed)
   sandbox/assign_v2/libs/assign/v2/test/put/modifier.h   (contents, props changed)
   sandbox/assign_v2/libs/assign/v2/test/put/modifier/iterate.cpp   (contents, props changed)
   sandbox/assign_v2/libs/assign/v2/test/put/modifier/iterate.h   (contents, props changed)
   sandbox/assign_v2/libs/assign/v2/test/put/modifier/lookup.cpp   (contents, props changed)
   sandbox/assign_v2/libs/assign/v2/test/put/modifier/lookup.h   (contents, props changed)
   sandbox/assign_v2/libs/assign/v2/test/put/modifier/repeat.cpp   (contents, props changed)
   sandbox/assign_v2/libs/assign/v2/test/put/modifier/repeat.h   (contents, props changed)
   sandbox/assign_v2/libs/assign/v2/test/put/modifier/standard.cpp   (contents, props changed)
   sandbox/assign_v2/libs/assign/v2/test/put/modifier/standard.h   (contents, props changed)
Added: sandbox/assign_v2/libs/assign/v2/test/put/modifier.cpp
==============================================================================
--- (empty file)
+++ sandbox/assign_v2/libs/assign/v2/test/put/modifier.cpp	2011-03-07 21:05:05 EST (Mon, 07 Mar 2011)
@@ -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)        //
+//////////////////////////////////////////////////////////////////////////////
+#include <libs/assign/v2/test/put/modifier/iterate.h>
+#include <libs/assign/v2/test/put/modifier/lookup.h>
+#include <libs/assign/v2/test/put/modifier/repeat.h>
+#include <libs/assign/v2/test/put/modifier/standard.h>
+#include <libs/assign/v2/test/put/modifier.h>
+
+namespace test_assign_v2{
+namespace xxx_put{
+namespace xxx_modifier{
+
+    void test(){
+		xxx_iterate::test();
+		xxx_lookup::test();
+		xxx_repeat::test();
+		xxx_standard::test();
+    }
+
+}// xxx_modifier
+}// xxx_put
+}// xxx_test_assign
+
Added: sandbox/assign_v2/libs/assign/v2/test/put/modifier.h
==============================================================================
--- (empty file)
+++ sandbox/assign_v2/libs/assign/v2/test/put/modifier.h	2011-03-07 21:05:05 EST (Mon, 07 Mar 2011)
@@ -0,0 +1,9 @@
+/*
+ *  modifier.h
+ *  assign_v2
+ *
+ *  Created by erwann on 3/7/11.
+ *  Copyright 2011 __MyCompanyName__. All rights reserved.
+ *
+ */
+
Added: sandbox/assign_v2/libs/assign/v2/test/put/modifier/iterate.cpp
==============================================================================
--- (empty file)
+++ sandbox/assign_v2/libs/assign/v2/test/put/modifier/iterate.cpp	2011-03-07 21:05:05 EST (Mon, 07 Mar 2011)
@@ -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)        //
+//////////////////////////////////////////////////////////////////////////////
+#include <boost/array.hpp>
+#include <boost/lambda/lambda.hpp>
+#include <boost/mpl/assert.hpp>
+#include <boost/mpl/apply.hpp>
+#include <boost/type_traits/is_same.hpp>
+#include <boost/typeof/typeof.hpp>
+
+#include <boost/assign/v2/detail/config/check.hpp>
+#include <boost/assign/v2/put/modifier/iterate.hpp>
+#include <boost/assign/v2/put/container/functor.hpp>
+#include <boost/assign/v2/put/deque.hpp>
+#include <libs/assign/v2/test/put/modifier/iterate.h>
+
+namespace test_assign_v2{
+namespace xxx_put{
+namespace xxx_modifier{
+namespace xxx_iterate{
+
+    void test()
+    {
+        namespace as2 = boost::assign::v2;
+        namespace lambda = boost::lambda;
+        {
+        	//[iterate_meta
+            typedef as2::functor_aux::post_increment<> arg_;
+            typedef as2::put_aux::keyword_iterate keyword_;
+            typedef as2::put_aux::modulo_modifier<keyword_, arg_> modulo_;
+            typedef boost::array<int, 4> cont_;
+            typedef as2::result_of::put<cont_>::type put_;
+            typedef as2::result_of::modulo_modifier<put_> meta1_;
+            typedef ::boost::mpl::apply2<meta1_, keyword_, arg_>::type result1_;
+            typedef as2::modifier_tag::iterate<arg_> tag1_;
+            typedef as2::put_aux::replace_modifier_tag<put_> meta2_;
+            typedef ::boost::mpl::apply1<meta2_, tag1_>::type result2_;
+            BOOST_MPL_ASSERT((boost::is_same<result1_, result2_>));
+            //]
+        }
+        {
+        
+        	// TODO construct arg_ with phoenix and perhaps skip
+            //[iterate
+            typedef as2::functor_aux::post_increment<> arg_;
+            typedef int T; boost::array<T, 4> powers; powers[0] = 1; powers[1] = 10;
+            ( as2::put( powers ) % ( as2::_iterate = arg_( 2 ) ) )( 100 )( 1000 );
+
+            BOOST_ASSIGN_V2_CHECK( powers[0] == 1 );
+            BOOST_ASSIGN_V2_CHECK( powers[1] == 10 );
+            BOOST_ASSIGN_V2_CHECK( powers[2] == 100 );
+            BOOST_ASSIGN_V2_CHECK( powers[3] == 1000 );
+            //]
+        }
+        {
+        	//[iterate_meta_deque
+            typedef as2::functor_aux::post_increment<> arg_;
+            typedef as2::put_aux::keyword_iterate keyword_;
+            typedef as2::put_aux::modulo_modifier<keyword_, arg_> modulo_;
+            typedef as2::result_of::deque<int>::type put_;
+            typedef as2::result_of::modulo_modifier<put_> meta1_;
+            typedef ::boost::mpl::apply2<meta1_, keyword_, arg_>::type result1_;
+            typedef as2::modifier_tag::iterate<arg_> tag1_;
+            typedef as2::put_aux::replace_modifier_tag<put_> meta2_;
+            typedef ::boost::mpl::apply1<meta2_, tag1_>::type result2_;
+            BOOST_MPL_ASSERT((boost::is_same<result1_, result2_>));
+            //]
+        }
+        {
+            //[iterate_deque
+            typedef as2::functor_aux::post_increment<> arg_;
+            BOOST_AUTO(
+                powers,  (
+                	as2::deque<int>( 1 )( 10 )( -1 )( -1 ) % ( as2::_iterate = arg_( 2 ) ) 
+                ) ( 100 )( 1000 )
+            );
+            BOOST_ASSIGN_V2_CHECK( powers[0] == 1 );
+            BOOST_ASSIGN_V2_CHECK( powers[1] == 10 );
+            BOOST_ASSIGN_V2_CHECK( powers[2] == 100 );
+            BOOST_ASSIGN_V2_CHECK( powers[3] == 1000 );
+            //]
+        }
+    }
+
+}// xxx_iterate
+}// xxx_modifier
+}// xxx_put
+}// test_assign_v2
Added: sandbox/assign_v2/libs/assign/v2/test/put/modifier/iterate.h
==============================================================================
--- (empty file)
+++ sandbox/assign_v2/libs/assign/v2/test/put/modifier/iterate.h	2011-03-07 21:05:05 EST (Mon, 07 Mar 2011)
@@ -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 LIBS_ASSIGN_V2_TEST_PUT_MODIFIER_ITERATE_ER_2010_H
+#define LIBS_ASSIGN_V2_TEST_PUT_MODIFIER_ITERATE_ER_2010_H
+
+namespace test_assign_v2{
+namespace xxx_put{
+namespace xxx_modifier{
+namespace xxx_iterate{
+
+    void test();
+
+}// xxx_iterate
+}// xxx_modifier
+}// xxx_put
+}// xxx_test_assign
+
+#endif
Added: sandbox/assign_v2/libs/assign/v2/test/put/modifier/lookup.cpp
==============================================================================
--- (empty file)
+++ sandbox/assign_v2/libs/assign/v2/test/put/modifier/lookup.cpp	2011-03-07 21:05:05 EST (Mon, 07 Mar 2011)
@@ -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)        //
+//////////////////////////////////////////////////////////////////////////////
+#include <map>
+#include <string>
+#include <cmath>
+#include <boost/lambda/lambda.hpp>
+#include <boost/mpl/assert.hpp>
+#include <boost/mpl/apply.hpp>
+#include <boost/type_traits/is_same.hpp>
+#include <boost/typeof/typeof.hpp>
+#include <boost/tuple/tuple.hpp>
+
+#include <boost/assign/v2/detail/config/check.hpp>
+#include <boost/assign/v2/detail/functor/identity.hpp>
+#include <boost/assign/v2/put/modulo/fun.hpp>
+#include <boost/assign/v2/put/modifier/lookup.hpp>
+#include <boost/assign/v2/put/container/functor.hpp>
+#include <boost/assign/v2/put/deque.hpp>
+#include <libs/assign/v2/test/put/modifier/lookup.h>
+
+namespace test_assign_v2{
+namespace xxx_put{
+namespace xxx_modifier{
+namespace xxx_lookup{
+
+    void test()
+    {
+        namespace as2 = boost::assign::v2;
+        namespace lambda = boost::lambda;
+        {
+        	//[lookup_meta
+            typedef as2::functor_aux::identity arg_;
+            typedef as2::put_aux::keyword_lookup keyword_;
+            typedef as2::put_aux::modulo_modifier<keyword_, arg_> modulo_;
+            typedef std::map<std::string, int> cont_;
+            typedef as2::result_of::put<cont_>::type put_;
+            typedef as2::result_of::modulo_modifier<put_> meta1_;
+            typedef ::boost::mpl::apply2<meta1_, keyword_, arg_>::type result1_;
+            typedef as2::modifier_tag::lookup<arg_> tag1_;
+            typedef as2::put_aux::replace_modifier_tag<put_> meta2_;
+            typedef ::boost::mpl::apply1<meta2_, tag1_>::type result2_;
+            BOOST_MPL_ASSERT((boost::is_same<result1_, result2_>));
+            //]
+        }
+        {
+            //[lookup
+            typedef std::map<std::string, int> C; C cal;
+            ( 
+            	/*Input is by default mapped to C::value_type but, here, we need C::key_type*/as2::put( cal ) /*Makes the input convertible to C::key_type*/% ( as2::_fun = as2::_identity ) %  ( as2::_lookup = (lambda::_1 = 31) ) 
+            )( "jan" )( "mar" )( "may" )( "jul" )( "aug" )( "oct" )( "dec" );
+            BOOST_ASSIGN_V2_CHECK( cal["jan"] == 31 );
+            BOOST_ASSIGN_V2_CHECK( cal["dec"] == 31 );
+			//]        
+        }
+        {
+        	//[lookup_meta_deque
+            typedef as2::functor_aux::identity arg_;
+            typedef as2::put_aux::keyword_lookup keyword_;
+            typedef as2::put_aux::modulo_modifier<keyword_, arg_> modulo_;
+            typedef as2::result_of::deque<int>::type put_;
+            typedef as2::result_of::modulo_modifier<put_> meta1_;
+            typedef ::boost::mpl::apply2<meta1_, keyword_, arg_>::type result1_;
+            typedef as2::modifier_tag::lookup<arg_> tag1_;
+            typedef as2::put_aux::replace_modifier_tag<put_> meta2_;
+            typedef ::boost::mpl::apply1<meta2_, tag1_>::type result2_;
+            BOOST_MPL_ASSERT((boost::is_same<result1_, result2_>));
+            //]
+        }
+        {
+            //[lookup_deque
+            BOOST_AUTO(
+            	days_in_first_quater,
+            	( 
+            		as2::deque<int>( 31 )( 31 )( 31 ) % ( as2::_lookup = ( lambda::_1 -= 3 ) ) 
+            	)( 1 ) 
+            );
+            BOOST_ASSIGN_V2_CHECK( days_in_first_quater[0] == 31 );
+            BOOST_ASSIGN_V2_CHECK( days_in_first_quater[1] == 28 );
+            BOOST_ASSIGN_V2_CHECK( days_in_first_quater[2] == 31 );
+            //]
+        }
+    }
+
+}// xxx_lookup
+}// xxx_modifier
+}// xxx_put
+}// test_assign_v2
Added: sandbox/assign_v2/libs/assign/v2/test/put/modifier/lookup.h
==============================================================================
--- (empty file)
+++ sandbox/assign_v2/libs/assign/v2/test/put/modifier/lookup.h	2011-03-07 21:05:05 EST (Mon, 07 Mar 2011)
@@ -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 LIBS_ASSIGN_V2_TEST_PUT_MODIFIER_LOOKUP_ER_2010_H
+#define LIBS_ASSIGN_V2_TEST_PUT_MODIFIER_LOOKUP_ER_2010_H
+
+namespace test_assign_v2{
+namespace xxx_put{
+namespace xxx_modifier{
+namespace xxx_lookup{
+
+    void test();
+
+}// xxx_lookup
+}// xxx_modifier
+}// xxx_put
+}// xxx_test_assign
+
+#endif
Added: sandbox/assign_v2/libs/assign/v2/test/put/modifier/repeat.cpp
==============================================================================
--- (empty file)
+++ sandbox/assign_v2/libs/assign/v2/test/put/modifier/repeat.cpp	2011-03-07 21:05:05 EST (Mon, 07 Mar 2011)
@@ -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)        //
+//////////////////////////////////////////////////////////////////////////////
+#include <vector>
+#include <boost/typeof/typeof.hpp>
+#include <boost/assign/v2/detail/config/check.hpp>
+#include <boost/assign/v2/put/modifier/repeat.hpp>
+#include <boost/assign/v2/put/container/functor.hpp>
+#include <boost/assign/v2/put/deque.hpp>
+#include <libs/assign/v2/test/put/modifier/repeat.h>
+
+namespace test_assign_v2{
+namespace xxx_put{
+namespace xxx_modifier{
+namespace xxx_repeat{
+
+    void test()
+    {
+
+		namespace as2 = boost::assign::v2;
+        {
+            //[repeat
+            std::vector<int> cont;
+            ( as2::put( cont ) % ( as2::_repeat = 2  ) )( 72 )( 31 )( 48 );
+
+            BOOST_ASSIGN_V2_CHECK( cont.size() == 6 );
+            BOOST_ASSIGN_V2_CHECK( cont.front() == 72 );
+            BOOST_ASSIGN_V2_CHECK( cont.back() == 48 );
+            //]
+        }
+        {
+            //[repeat_deque
+            BOOST_AUTO(
+                cont,  (
+                    as2::deque<int>( as2::_nil ) % ( as2::_repeat = 2 )
+                )( 72 )( 31 )( 48 )
+            );
+            BOOST_ASSIGN_V2_CHECK( boost::size( cont ) == 6 );
+            //]
+            BOOST_ASSIGN_V2_CHECK( cont.front() == 72 );
+            BOOST_ASSIGN_V2_CHECK( cont.back() == 48 );
+        }
+	}
+
+
+}// xxx_repeat
+}// xxx_modifier
+}// xxx_put
+}// test_assign_v2
Added: sandbox/assign_v2/libs/assign/v2/test/put/modifier/repeat.h
==============================================================================
--- (empty file)
+++ sandbox/assign_v2/libs/assign/v2/test/put/modifier/repeat.h	2011-03-07 21:05:05 EST (Mon, 07 Mar 2011)
@@ -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 LIBS_ASSIGN_V2_TEST_PUT_MODIFIER_REPEAT_ER_2010_H
+#define LIBS_ASSIGN_V2_TEST_PUT_MODIFIER_REPEAT_ER_2010_H
+
+namespace test_assign_v2{
+namespace xxx_put{
+namespace xxx_modifier{
+namespace xxx_repeat{
+
+    void test();
+
+}// xxx_repeat
+}// xxx_modifier
+}// xxx_put
+}// xxx_test_assign
+
+#endif
Added: sandbox/assign_v2/libs/assign/v2/test/put/modifier/standard.cpp
==============================================================================
--- (empty file)
+++ sandbox/assign_v2/libs/assign/v2/test/put/modifier/standard.cpp	2011-03-07 21:05:05 EST (Mon, 07 Mar 2011)
@@ -0,0 +1,117 @@
+//////////////////////////////////////////////////////////////////////////////
+//  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 <deque>
+#include <list>
+#include <queue>
+#include <set>
+#include <string>
+#include <boost/mpl/assert.hpp>
+#include <boost/typeof/typeof.hpp>
+#include <boost/lambda/lambda.hpp>
+#include <boost/type_traits/is_same.hpp>
+#include <boost/assign/v2/detail/config/check.hpp>
+#include <boost/assign/v2/put/modifier/standard.hpp>
+#include <boost/assign/v2/put/container/functor.hpp>
+#include <boost/assign/v2/put/deque.hpp>
+#include <libs/assign/v2/test/put/modifier/standard.h>
+
+namespace test_assign_v2{
+namespace xxx_put{
+namespace xxx_modifier{
+namespace xxx_standard{
+
+    void test()
+    {
+        namespace as2 = boost::assign::v2;
+
+		// ------------------------------ WARNING ---------------------------- //
+        // Don't misconstrue the commands in the tests below as *necessary* to //
+        // obtain particular implementation. Most of the time the default is   //
+        // already set at that invoked with operator% 	                       //
+        // ------------------------------------------------------------------- //
+
+		// PUT
+		{
+        	//[modifier_meta
+        	typedef as2::result_of::put<std::vector<int> >::type put_;
+            typedef as2::put_aux::keyword_modifier keyword_;
+            typedef as2::modifier_tag::push_front tag_;
+            typedef as2::result_of::modulo_modifier<put_> meta1_;
+			typedef ::boost::mpl::apply2<meta1_, keyword_, tag_>::type result1_;
+            typedef as2::put_aux::replace_modifier_tag<put_> meta2_;
+            typedef ::boost::mpl::apply1<meta2_, tag_>::type result2_;
+            BOOST_MPL_ASSERT(( boost::is_same<result1_, result2_> ));
+        	//]
+        }
+        {
+            //[modifier_push_front
+            std::deque<int> powers;
+            ( as2::put( powers ) % as2::_push_front )( 16 )( 8 )( 4 )( 2 )( 1 );
+
+            BOOST_ASSIGN_V2_CHECK( powers[0] == 1 );
+            BOOST_ASSIGN_V2_CHECK( powers[4] == 16 );
+            //]
+        }
+        {
+            //[modifier_push
+            std::queue<int> fifo; ( as2::put( fifo ) % as2::_push )( 72 )( 31 )( 48 );
+                
+            BOOST_ASSIGN_V2_CHECK( fifo.front() == 72 );
+            BOOST_ASSIGN_V2_CHECK( fifo.back() == 48 );
+            //]
+        }
+        {
+            //[modifier_insert
+            std::set<double> sqrt2; ( as2::put( sqrt2 ) % as2::_insert )( 1.414 )( 1.41421 )( 1.41 )( 1.4142 );
+        
+            BOOST_ASSIGN_V2_CHECK( sqrt2.lower_bound( 1.41 ) == boost::begin( sqrt2 ) );
+            BOOST_ASSIGN_V2_CHECK( sqrt2.upper_bound( 1.41421 ) == boost::end( sqrt2 ) );
+            //]
+        }
+        {
+            //[modifier_push_back
+            typedef int int_; std::list<int> list; 
+            ( as2::put( list ) % as2::_push_back )( 72 )( 31 )( 48 );
+                
+            BOOST_ASSIGN_V2_CHECK( list.front() == 72 );
+            BOOST_ASSIGN_V2_CHECK( list.back() == 48 );
+            //]
+        }
+		// DEQUE
+		{
+        	//[modifier_meta_deque
+        	typedef as2::result_of::deque<int>::type put_;
+            typedef as2::put_aux::keyword_modifier keyword_;
+            typedef as2::modifier_tag::push_front tag_;
+            typedef as2::result_of::modulo_modifier<put_> meta1_;
+			typedef ::boost::mpl::apply2<meta1_, keyword_, tag_>::type result1_;
+            typedef as2::put_aux::replace_modifier_tag<put_> meta2_;
+            typedef ::boost::mpl::apply1<meta2_, tag_>::type result2_;
+
+            BOOST_MPL_ASSERT(( boost::is_same<result1_, result2_> ));
+        	//]
+        }
+        {
+            //[modifier_push_front_deque
+            BOOST_AUTO(
+                powers,
+                ( as2::deque<int>( as2::_nil ) % as2::_push_front )( 16 )( 8 )( 4 )( 2 )( 1 )
+            );
+
+            BOOST_ASSIGN_V2_CHECK( powers[0] == 1 );
+            BOOST_ASSIGN_V2_CHECK( powers[4] == 16 );
+            //]
+        }
+    }
+
+}// xxx_standard
+}// xxx_modifier
+}// xxx_put
+}// test_assign_v2
Added: sandbox/assign_v2/libs/assign/v2/test/put/modifier/standard.h
==============================================================================
--- (empty file)
+++ sandbox/assign_v2/libs/assign/v2/test/put/modifier/standard.h	2011-03-07 21:05:05 EST (Mon, 07 Mar 2011)
@@ -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 LIBS_ASSIGN_V2_TEST_PUT_MODIFIER_STANDARD_ER_2010_H
+#define LIBS_ASSIGN_V2_TEST_PUT_MODIFIER_STANDARD_ER_2010_H
+
+namespace test_assign_v2{
+namespace xxx_put{
+namespace xxx_modifier{
+namespace xxx_standard{
+
+    void test();
+
+}// xxx_standard
+}// xxx_modifier
+}// xxx_put
+}// xxx_test_assign
+
+#endif