$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r70800 - in sandbox/assign_v2: boost/assign/v2 boost/assign/v2/detail boost/assign/v2/detail/functor boost/assign/v2/detail/traits boost/assign/v2/detail/traits/aux_ boost/assign/v2/option boost/assign/v2/option/modifier boost/assign/v2/pipe libs/assign/v2 libs/assign/v2/test
From: erwann.rogard_at_[hidden]
Date: 2011-03-31 17:58:27
Author: e_r
Date: 2011-03-31 17:58:25 EDT (Thu, 31 Mar 2011)
New Revision: 70800
URL: http://svn.boost.org/trac/boost/changeset/70800
Log:
upd assign_v2
Text files modified: 
   sandbox/assign_v2/boost/assign/v2/detail/functor/pair.hpp                |    24 ++++++++++++++----------                
   sandbox/assign_v2/boost/assign/v2/detail/keyword.hpp                     |    18 +++++++-----------                      
   sandbox/assign_v2/boost/assign/v2/detail/traits/aux_/fwd_container.hpp   |     2 +-                                      
   sandbox/assign_v2/boost/assign/v2/detail/traits/aux_/ptr_container.hpp   |    30 +++++++++++++++---------------          
   sandbox/assign_v2/boost/assign/v2/detail/traits/aux_/value_container.hpp |     8 ++++----                                
   sandbox/assign_v2/boost/assign/v2/detail/traits/container.hpp            |    24 ++++++++++++------------                
   sandbox/assign_v2/boost/assign/v2/option/data_generator.hpp              |    27 ++++++++++++++++++++++-----             
   sandbox/assign_v2/boost/assign/v2/option/modifier/insert.hpp             |     2 +-                                      
   sandbox/assign_v2/boost/assign/v2/pipe/csv_put.hpp                       |    15 +++++----------                         
   sandbox/assign_v2/boost/assign/v2/put.hpp                                |    29 ++++-------------------------           
   sandbox/assign_v2/libs/assign/v2/test/chain.cpp                          |    14 +++++++-------                          
   sandbox/assign_v2/libs/assign/v2/tutorial.cpp                            |    35 ++++++++++++++++++++---------------     
   12 files changed, 112 insertions(+), 116 deletions(-)
Modified: sandbox/assign_v2/boost/assign/v2/detail/functor/pair.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/detail/functor/pair.hpp	(original)
+++ sandbox/assign_v2/boost/assign/v2/detail/functor/pair.hpp	2011-03-31 17:58:25 EDT (Thu, 31 Mar 2011)
@@ -27,7 +27,11 @@
 //syntax_detail_functor_pair
 namespace functor_aux{
 
-    template<typename T, typename K, typename M>
+    template<
+    	typename T 		// Value
+        , typename K 	// Key
+        , typename M	// Mapped
+    >
     class pair/*<-*/
 #if !BOOST_ASSIGN_V2_ENABLE_CPP0X
     : public functor_aux::crtp_unary_and_up<
@@ -63,22 +67,22 @@
 
         using super_::operator();
 
-    	T impl( K const& k )const{
-        	return T( k, M() ); 
-    	} 
+        T impl()const;// leave un-implemented 
 
+#define BOOST_ASSIGN_V2_arg(z, I, data) BOOST_PP_CAT(data,BOOST_PP_INC(I))
 #define BOOST_ASSIGN_V2_MACRO(z, N, data) \
-    	template<BOOST_PP_ENUM_PARAMS(N, typename T)> \
-    	T impl( K const& k BOOST_PP_ENUM_TRAILING_BINARY_PARAMS(N, T, &_) )const{ \
-        	return T( k, M( BOOST_PP_ENUM_PARAMS(N, _) ) ); \
-    	} \
+    template<BOOST_PP_ENUM_PARAMS(N, typename T)> \
+    T impl( BOOST_PP_ENUM_BINARY_PARAMS(N, T, &_) )const{ \
+        return T( _0, M( BOOST_PP_ENUM(BOOST_PP_DEC(N), BOOST_ASSIGN_V2_arg, _) ) ); \
+    } \
 /**/
 BOOST_PP_REPEAT_FROM_TO(
-	1,
-    BOOST_ASSIGN_V2_LIMIT_ARITY,
+    1,
+    BOOST_PP_INC(BOOST_ASSIGN_V2_LIMIT_ARITY),
     BOOST_ASSIGN_V2_MACRO,
     ~
 )
+#undef BOOST_ASSIGN_V2_arg
 #undef BOOST_ASSIGN_V2_MACRO
 
 #endif // BOOST_ASSIGN_V2_ENABLE_CPP0X
Modified: sandbox/assign_v2/boost/assign/v2/detail/keyword.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/detail/keyword.hpp	(original)
+++ sandbox/assign_v2/boost/assign/v2/detail/keyword.hpp	2011-03-31 17:58:25 EDT (Thu, 31 Mar 2011)
@@ -17,26 +17,22 @@
 //[syntax_detail_keyword
 namespace keyword_aux{
 
-    struct use_default/*<-*/{}/*->*/;
-
     struct ignore{ 
         ignore(){} 
         template<typename Anything> ignore(Anything){}
     };
-    
     struct key/*<-*/{}/*->*/;
     struct nil/*<-*/{}/*->*/;
+    struct use_default/*<-*/{}/*->*/;
+    struct value/*<-*/{}/*->*/;
 
 }// keyword_aux
 /*<-*/namespace{/*->*/
-    const keyword_aux::use_default _use_default/*<-*/ 
-        = keyword_aux::use_default()/*->*/;
-    const keyword_aux::ignore _ignore/*<-*/ 
-        = keyword_aux::ignore()/*->*/;
-    const keyword_aux::key _key/*<-*/ 
-        = keyword_aux::key()/*->*/;
-    const keyword_aux::nil _nil/*<-*/ 
-        = keyword_aux::nil()/*->*/;
+    const keyword_aux::ignore _ignore/*<-*/ = keyword_aux::ignore()/*->*/;
+    const keyword_aux::key _key/*<-*/ = keyword_aux::key()/*->*/;
+    const keyword_aux::nil _nil/*<-*/ = keyword_aux::nil()/*->*/;
+    const keyword_aux::use_default _use_default/*<-*/ = keyword_aux::use_default()/*->*/;
+    const keyword_aux::value _value/*<-*/ = keyword_aux::value()/*->*/;
 /*<-*/}/*->*/
 //]
 }// v2
Modified: sandbox/assign_v2/boost/assign/v2/detail/traits/aux_/fwd_container.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/detail/traits/aux_/fwd_container.hpp	(original)
+++ sandbox/assign_v2/boost/assign/v2/detail/traits/aux_/fwd_container.hpp	2011-03-31 17:58:25 EDT (Thu, 31 Mar 2011)
@@ -77,7 +77,7 @@
     > 
     class unordered_multiset;
 
-	// POINTER-CONTAINERS
+    // POINTER-CONTAINERS
     
     template
     <
Modified: sandbox/assign_v2/boost/assign/v2/detail/traits/aux_/ptr_container.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/detail/traits/aux_/ptr_container.hpp	(original)
+++ sandbox/assign_v2/boost/assign/v2/detail/traits/aux_/ptr_container.hpp	2011-03-31 17:58:25 EDT (Thu, 31 Mar 2011)
@@ -22,19 +22,19 @@
 namespace container_aux{
 
     
-	// DATA-MEMBER
+    // DATA-MEMBER
 
     template<typename PtrC>
     struct to_value_key{ typedef typename PtrC::key_type type; };
 
     template<typename PtrC>
     struct to_value_value : boost::remove_reference<
-    	typename PtrC::reference
+        typename PtrC::reference
     >{};
 
     template<typename PtrC>
     struct to_value_mapped : boost::remove_reference<
-    	typename PtrC::mapped_reference
+        typename PtrC::mapped_reference
     >{};
 
     template
@@ -46,14 +46,14 @@
         class Allocator
     >
     struct to_value_value<
-    	boost::ptr_map<Key, Mapped, Compare, CloneAllocator, Allocator>
+        boost::ptr_map<Key, Mapped, Compare, CloneAllocator, Allocator>
     >{
 
-		typedef boost::ptr_map<
-        	Key, Mapped, Compare, CloneAllocator, Allocator
+        typedef boost::ptr_map<
+            Key, Mapped, Compare, CloneAllocator, Allocator
         > ptr_c_;
         typedef std::pair<
-        	const typename to_value_key<ptr_c_>::type, 
+            const typename to_value_key<ptr_c_>::type, 
             typename to_value_mapped<ptr_c_>::type
         > type;
     };
@@ -103,8 +103,8 @@
     // MAP
 
     template<
-    	typename PtrC, 
-    	template<typename, typename, typename, typename> class C
+        typename PtrC, 
+        template<typename, typename, typename, typename> class C
     >
     struct to_value_map{
 
@@ -112,7 +112,7 @@
             typename to_value_key<PtrC>::type,
             typename to_value_mapped<PtrC>::type,
             typename PtrC::key_compare,
-			typename to_value_allocator<PtrC>::type
+            typename to_value_allocator<PtrC>::type
         > type;
 
     };
@@ -164,7 +164,7 @@
     // TO_VALUE_CONTAINER
 
     template<
-    	typename C // Pointer or Value container
+        typename C // Pointer or Value container
     >
     struct to_value_container{ typedef C type; };
 
@@ -264,11 +264,11 @@
     >
     struct to_value_container<
         boost::ptr_unordered_map<
-        	Key, Mapped, Hash, Pred, CloneAllocator, Allocator
+            Key, Mapped, Hash, Pred, CloneAllocator, Allocator
         >
     > : to_value_unordered_map<
         boost::ptr_unordered_map<
-        	Key, Mapped, Hash, Pred, CloneAllocator, Allocator
+            Key, Mapped, Hash, Pred, CloneAllocator, Allocator
         >,
         boost::unordered_map
     >{};
@@ -285,11 +285,11 @@
     >
     struct to_value_container<
         boost::ptr_unordered_set<
-        	Key, Hash, Pred, CloneAllocator, Allocator
+            Key, Hash, Pred, CloneAllocator, Allocator
         >
     > : to_value_unordered_set<
         boost::ptr_unordered_set<
-        	Key, Hash, Pred, CloneAllocator, Allocator
+            Key, Hash, Pred, CloneAllocator, Allocator
         >,
         boost::unordered_set
     >{};
Modified: sandbox/assign_v2/boost/assign/v2/detail/traits/aux_/value_container.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/detail/traits/aux_/value_container.hpp	(original)
+++ sandbox/assign_v2/boost/assign/v2/detail/traits/aux_/value_container.hpp	2011-03-31 17:58:25 EDT (Thu, 31 Mar 2011)
@@ -104,20 +104,20 @@
 // DATA-MEMBER
 
     template<
-    	typename C	// Ptr or value container
+        typename C    // Ptr or value container
     >
     struct value_key{ typedef typename C::key_type type; };
 
     template<
-    	typename C	// Ptr or value container
+        typename C    // Ptr or value container
     >
     struct value_value{ typedef typename C::value_type type; };
 
     template<
-    	typename C	// Ptr or value container
+        typename C    // Ptr or value container
     >
     struct value_mapped{
-    	typedef typename C::mapped_type type;
+        typedef typename C::mapped_type type;
     };
 
 
Modified: sandbox/assign_v2/boost/assign/v2/detail/traits/container.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/detail/traits/container.hpp	(original)
+++ sandbox/assign_v2/boost/assign/v2/detail/traits/container.hpp	2011-03-31 17:58:25 EDT (Thu, 31 Mar 2011)
@@ -32,8 +32,8 @@
 
     template<template<typename > class F, typename C>
     struct through_value_container
-    	: F<
-        	typename to_value_container<C>::type
+        : F<
+            typename to_value_container<C>::type
         >
     {};
 
@@ -59,44 +59,44 @@
 
     template<typename C>
     struct has_push_deduced_value
-    	: through_value_container<value_has_push_deduced_value, C>
+        : through_value_container<value_has_push_deduced_value, C>
     {};
 
 // CATEGORY
 
     template<typename C> struct is_array
-    	: through_value_container<value_is_array, C>
+        : through_value_container<value_is_array, C>
     {};
 
     template<typename C>
     struct is_associative 
-    	: through_value_container<value_is_associative, C>
+        : through_value_container<value_is_associative, C>
     {};
 
     template<typename C>
     struct is_fifo 
-    	: through_value_container<value_is_fifo, C>
+        : through_value_container<value_is_fifo, C>
     {};
     
     template<typename C>
     struct is_lifo 
-    	: through_value_container<value_is_lifo, C>
+        : through_value_container<value_is_lifo, C>
     {};
             
     template<typename C> struct is_map 
-    	: through_value_container<value_is_map, C>
+        : through_value_container<value_is_map, C>
     {};
     
     template<typename C>
     struct is_sorted 
-    	: through_value_container<value_is_sorted, C>
-	{};
+        : through_value_container<value_is_sorted, C>
+    {};
 
 }// container_aux
 
-	template<typename C>
+    template<typename C>
     struct value_container_value/*<-*/
-    	: container_aux::value<C>{}
+        : container_aux::value<C>{}
     /*->*/;
 
 }// v2
Modified: sandbox/assign_v2/boost/assign/v2/option/data_generator.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/option/data_generator.hpp	(original)
+++ sandbox/assign_v2/boost/assign/v2/option/data_generator.hpp	2011-03-31 17:58:25 EDT (Thu, 31 Mar 2011)
@@ -12,6 +12,7 @@
 #include <boost/assign/v2/detail/functor/value.hpp>
 #include <boost/assign/v2/detail/keyword.hpp>
 #include <boost/assign/v2/detail/pp/ignore.hpp>
+#include <boost/assign/v2/detail/traits/container.hpp>
 #include <boost/assign/v2/interpreter/data_generator.hpp>
 #include <boost/assign/v2/interpreter/fwd.hpp>
 #include <boost/assign/v2/interpreter/replace.hpp>
@@ -33,6 +34,16 @@
         typedef functor_aux::value<key_> type;
     }/*->*/;
 
+    template<
+        typename C // Value or pointer-container
+    >
+    struct deduce_value_generator/*<-*/
+    {
+        typedef functor_aux::value<
+            typename container_aux::value<C>::type
+        > type;
+    }/*->*/;
+
 namespace result_of{
 
     template<typename D, typename C, typename F = keyword_aux::use_default>
@@ -44,20 +55,26 @@
     {}/*->*/;
 
     template<typename D, typename C>
+    struct option_data_generator<D, C, keyword_aux::key>/*<-*/
+        : option_data_generator<
+            D, C, typename deduce_key_generator<C>::type
+        >
+    {}/*->*/;
+
+    template<typename D, typename C>
     struct option_data_generator<D, C, keyword_aux::use_default>/*<-*/
         : option_data_generator<
             D, C, typename deduce_data_generator<C>::type
         >
     {}/*->*/;
-    
+
     template<typename D, typename C>
-    struct option_data_generator<D, C, keyword_aux::key>/*<-*/
+    struct option_data_generator<D, C, keyword_aux::value>/*<-*/
         : option_data_generator<
-            D, C, typename deduce_key_generator<C>::type
+            D, C, typename deduce_value_generator<C>::type
         >
     {}/*->*/;
-
-    
+        
 }// result_of
 
     template<typename F/*<-*/= keyword_aux::ignore/*->*/>
Modified: sandbox/assign_v2/boost/assign/v2/option/modifier/insert.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/option/modifier/insert.hpp	(original)
+++ sandbox/assign_v2/boost/assign/v2/option/modifier/insert.hpp	2011-03-31 17:58:25 EDT (Thu, 31 Mar 2011)
@@ -76,7 +76,7 @@
         void impl( C& cont, BOOST_ASSIGN_V2_arg, data_tag::ptr_map )const
         {
             typedef typename container_aux::key<C>::type key_;
-			// non-const key necessary. See ptr_map.
+            // non-const key necessary. See ptr_map.
             key_ k = BOOST_ASSIGN_V2_forward.first; 
             typedef typename container_aux::mapped<C>::type m_;
             cont.insert( k , new m_( BOOST_ASSIGN_V2_forward.second ) );
Modified: sandbox/assign_v2/boost/assign/v2/pipe/csv_put.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/pipe/csv_put.hpp	(original)
+++ sandbox/assign_v2/boost/assign/v2/pipe/csv_put.hpp	2011-03-31 17:58:25 EDT (Thu, 31 Mar 2011)
@@ -12,6 +12,7 @@
 #include <boost/assign/v2/detail/config/enable_cpp0x.hpp>
 #include <boost/assign/v2/put.hpp>
 #include <boost/assign/v2/option/list.hpp>
+#include <boost/assign/v2/option/data_generator.hpp>
 #include <boost/assign/v2/ref/array/as_arg_list.hpp>
 #include <boost/assign/v2/ref/array/csv_array.hpp>
 #include <boost/assign/v2/ref/wrapper/copy.hpp>
@@ -179,16 +180,10 @@
     >
     C& operator|(C& cont, interpreter_aux::arg_list<H, T, N, U> const& arg_list)/*<-*/
     {
-        typedef typename v2::result_of::put<
-            C
-            , functor_aux::value<
-                typename container_aux::value<C>::type
-            >
-            , typename interpreter_aux::deduce_modifier_tag<C>::type
-            , typename interpreter_aux::deduce_data_tag<C>::type
-        >::type put_;
-        v2::ref::as_arg_list(
-            arg_list.apply(  put_( cont ) ),
+        typedef typename deduce_value_generator<C>::type data_gen_;
+        typedef typename v2::result_of::put<C, data_gen_>::type put_;
+        v2::ref::as_arg_list(    
+            arg_list.apply( put_( cont ) ),
             arg_list.arg_list_cont()
         );
         return cont;
Modified: sandbox/assign_v2/boost/assign/v2/put.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/put.hpp	(original)
+++ sandbox/assign_v2/boost/assign/v2/put.hpp	2011-03-31 17:58:25 EDT (Thu, 31 Mar 2011)
@@ -110,18 +110,14 @@
         typename C/*<-*/
         , typename DataGenerator 
             = typename interpreter_aux::deduce_data_generator<C>::type 
-        , typename ModifierTag 
-            = typename interpreter_aux::deduce_modifier_tag<C>::type
-        , typename DataTag 
-            = typename interpreter_aux::deduce_data_tag<C>::type/*->*/
     >
     struct put/*<-*/{
         typedef 
             interpreter_aux::put_interpreter<
-                C, 
-                DataGenerator, 
-                ModifierTag, 
-                DataTag
+                C
+                , DataGenerator
+                , typename interpreter_aux::deduce_modifier_tag<C>::type
+                , typename interpreter_aux::deduce_data_tag<C>::type
             > 
         type;
     }/*->*/;
@@ -136,23 +132,6 @@
         return result_( cont );
     }BOOST_ASSIGN_V2_IGNORE(/*->*/;/*<-*/)/*->*/
 
-/*<-*/
-    template<
-        typename DataGenerator 
-        ,typename ModifierTag 
-        ,typename DataTag 
-        ,typename C
-    >
-    typename result_of::put<C, DataGenerator, ModifierTag, DataTag>::type
-    put( C& cont )
-    {
-        typedef typename result_of::put<
-            C, DataGenerator, ModifierTag, DataTag
-        >::type result_;
-        return result_( cont );
-    }
-
-/*->*/
 //]
 }// v2
 }// assign
Modified: sandbox/assign_v2/libs/assign/v2/test/chain.cpp
==============================================================================
--- sandbox/assign_v2/libs/assign/v2/test/chain.cpp	(original)
+++ sandbox/assign_v2/libs/assign/v2/test/chain.cpp	2011-03-31 17:58:25 EDT (Thu, 31 Mar 2011)
@@ -63,18 +63,18 @@
             //]
         }
         // Boost.Assign.v2 containers
-        {
+        {    
             //[test_chain_write_refs
             /*<< Needed to bring && into scope >>*/ using namespace assign::v2;
-            std::vector<int> consecutive8( 8 ); 
-            for(int i = 0; i < 8; i++){ consecutive8[i] = 1 + i; }
-            array<int, 5> consecutive5; int six, seven, eight;
+            std::vector<int> iota8( 8 ); 
+            for(int i = 0; i < 8; i++){ iota8[i] = 1 + i; }
+            array<int, 5> iota5; int six, seven, eight;
             boost::copy(
-                consecutive8,
-               boost::begin( consecutive5 && (/*<< rvalue! >>*/ as2::ref::csv_array( six, seven, eight ) | as2::ref::_get ) )
+                iota8,
+                boost::begin( iota5 && (/*<< rvalue! >>*/ as2::ref::csv_array( six, seven, eight ) | as2::ref::_get ) )
             );
 
-            BOOST_ASSIGN_V2_CHECK( range::equal( consecutive5, as2::csv_deque( 1, 2, 3, 4, 5 ) ) );
+            BOOST_ASSIGN_V2_CHECK( range::equal( iota5, as2::csv_deque( 1, 2, 3, 4, 5 ) ) );
             BOOST_ASSIGN_V2_CHECK( six   == 6 ); BOOST_ASSIGN_V2_CHECK( seven == 7 ); BOOST_ASSIGN_V2_CHECK( eight == 8 );
             //]
         }
Modified: sandbox/assign_v2/libs/assign/v2/tutorial.cpp
==============================================================================
--- sandbox/assign_v2/libs/assign/v2/tutorial.cpp	(original)
+++ sandbox/assign_v2/libs/assign/v2/tutorial.cpp	2011-03-31 17:58:25 EDT (Thu, 31 Mar 2011)
@@ -35,14 +35,15 @@
         using namespace assign::v2;
         {
             //[tutorial_assign
-            std::vector<int> numeric( 10 ); iota( numeric, 0 ); typedef std::string str_;
-            typedef variant< int, str_ > data_; array<data_, 16> numeric_kb;
-            put( numeric_kb )
+            std::vector<int> numeric( 10 ); iota( numeric, 0 ); 
+            typedef std::string str_; typedef variant< int, str_ > data_; 
+            array<data_, 16> numeric_keyboard;
+            put( numeric_keyboard )
                 ( "+" )( "-" )( "*" )( "/" )( "=" )( "." )
                 ( as_arg_list( numeric ) );
 
-            assert( get<str_>( numeric_kb.front() ) == "+" );
-            assert( get<int>( numeric_kb.back()  ) == 9 );
+            assert( get<str_>( numeric_keyboard.front() ) == "+" );
+            assert( get<int>( numeric_keyboard.back()  ) == 9 );
             //]
         }
         {
@@ -75,16 +76,16 @@
         }
         {
             //[tutorial_chain
-            std::vector<int> consecutive8( 8 ); for(int i = 0; i < 8; i++){ consecutive8[i] = 1 + i; }
-            array<int, 5> consecutive5; int six, seven, eight;
+            std::vector<int> iota8( 8 ); for(int i = 0; i < 8; i++){ iota8[i] = 1 + i; }
+            array<int, 5> iota5; int six, seven, eight;
             boost::copy(
-                consecutive8,
-                   boost::begin(
-                    consecutive5 | _chain( ref::csv_array( six, seven, eight ) | ref::_get )
+                iota8,
+                boost::begin(
+                    iota5 | _chain( ref::csv_array( six, seven, eight ) | ref::_get )
                 )
             );
 
-            assert( range::equal( consecutive5, csv_deque(1, 2, 3, 4, 5) ) );
+            assert( range::equal( iota5, csv_deque(1, 2, 3, 4, 5) ) );
             assert( six == 6 ); assert( seven == 7 ); assert( eight == 8 );
             //]
         }
@@ -97,11 +98,15 @@
         }
         {
             //[tutorial_data_gen
-            std::map<std::string, int> map;
-            put( map )( "foo", 1 )( "bar", 2 )( "baz", 3 )("qux");
+            typedef std::string str_; 
+            const char foo[] = "foo";
+            const char bar[4] = { 'b', 'a', 'r', '\0' };
+            str_ baz = "***baz***";
+			std::map<int, str_> map;
+            put( map )( 1, foo, 3 )( 2, bar )( 3, baz, 3, 3 )( 4, "qux");
 
-            assert( map["bar"] == 2 );
-            assert( map["qux"] == int() );
+            assert( map[1] == "foo" ); assert( map[2] == "bar" );
+            assert( map[3] == "baz" ); assert( map[4] == "qux" );
             //]
         }
         {