Boost logo

Boost-Commit :

From: eric_at_[hidden]
Date: 2008-06-05 01:50:16


Author: eric_niebler
Date: 2008-06-05 01:50:03 EDT (Thu, 05 Jun 2008)
New Revision: 46155
URL: http://svn.boost.org/trac/boost/changeset/46155

Log:
merged from trunk
Added:
   branches/proto/v4/boost/ptr_container/detail/meta_functions.hpp
      - copied unchanged from r46135, /trunk/boost/ptr_container/detail/meta_functions.hpp
   branches/proto/v4/boost/ptr_container/ptr_circular_buffer.hpp
      - copied unchanged from r46135, /trunk/boost/ptr_container/ptr_circular_buffer.hpp
   branches/proto/v4/boost/ptr_container/ptr_unordered_map.hpp
      - copied unchanged from r46135, /trunk/boost/ptr_container/ptr_unordered_map.hpp
   branches/proto/v4/boost/ptr_container/ptr_unordered_set.hpp
      - copied unchanged from r46135, /trunk/boost/ptr_container/ptr_unordered_set.hpp
   branches/proto/v4/boost/ptr_container/serialize_ptr_circular_buffer.hpp
      - copied unchanged from r46135, /trunk/boost/ptr_container/serialize_ptr_circular_buffer.hpp
   branches/proto/v4/boost/ptr_container/serialize_ptr_unordered_map.hpp
      - copied unchanged from r46135, /trunk/boost/ptr_container/serialize_ptr_unordered_map.hpp
   branches/proto/v4/boost/ptr_container/serialize_ptr_unordered_set.hpp
      - copied unchanged from r46135, /trunk/boost/ptr_container/serialize_ptr_unordered_set.hpp
   branches/proto/v4/libs/ptr_container/test/ptr_circular_buffer.cpp
      - copied unchanged from r46135, /trunk/libs/ptr_container/test/ptr_circular_buffer.cpp
   branches/proto/v4/libs/ptr_container/test/ptr_unordered_map.cpp
      - copied unchanged from r46135, /trunk/libs/ptr_container/test/ptr_unordered_map.cpp
   branches/proto/v4/libs/ptr_container/test/ptr_unordered_set.cpp
      - copied unchanged from r46135, /trunk/libs/ptr_container/test/ptr_unordered_set.cpp
Removed:
   branches/proto/v4/boost/ptr_container/clone_inserter.hpp
Properties modified:
   branches/proto/v4/ (props changed)
Binary files modified:
   branches/proto/v4/boost/ptr_container/serialize_ptr_container.hpp
Text files modified:
   branches/proto/v4/boost/assign/list_inserter.hpp | 4
   branches/proto/v4/boost/assign/list_of.hpp | 2
   branches/proto/v4/boost/detail/spinlock_sync.hpp | 4
   branches/proto/v4/boost/ptr_container/clone_allocator.hpp | 2
   branches/proto/v4/boost/ptr_container/detail/associative_ptr_container.hpp | 226 +++
   branches/proto/v4/boost/ptr_container/detail/map_iterator.hpp | 36
   branches/proto/v4/boost/ptr_container/detail/reversible_ptr_container.hpp | 103 +
   branches/proto/v4/boost/ptr_container/detail/serialize_ptr_map_adapter.hpp | 18
   branches/proto/v4/boost/ptr_container/ptr_container.hpp | 5
   branches/proto/v4/boost/ptr_container/ptr_map.hpp | 24
   branches/proto/v4/boost/ptr_container/ptr_map_adapter.hpp | 336 ++++-
   branches/proto/v4/boost/ptr_container/ptr_sequence_adapter.hpp | 78
   branches/proto/v4/boost/ptr_container/ptr_set.hpp | 36
   branches/proto/v4/boost/ptr_container/ptr_set_adapter.hpp | 217 +++
   branches/proto/v4/boost/python/type_id.hpp | 1
   branches/proto/v4/boost/regex/v4/instances.hpp | 19
   branches/proto/v4/boost/thread/detail/thread.hpp | 5
   branches/proto/v4/boost/thread/pthread/mutex.hpp | 3
   branches/proto/v4/boost/thread/pthread/timespec.hpp | 2
   branches/proto/v4/boost/thread/win32/condition_variable.hpp | 145 +
   branches/proto/v4/boost/thread/xtime.hpp | 2
   branches/proto/v4/boost/type_traits/alignment_of.hpp | 11
   branches/proto/v4/boost/type_traits/intrinsics.hpp | 3
   branches/proto/v4/libs/exception/doc/source/boost-exception.reno | 2280 ++++++++++++++++++++--------------------
   branches/proto/v4/libs/ptr_container/test/Jamfile.v2 | 5
   branches/proto/v4/libs/ptr_container/test/associative_test_data.hpp | 55
   branches/proto/v4/libs/ptr_container/test/ptr_map.cpp | 31
   branches/proto/v4/libs/ptr_container/test/ptr_map_adapter.cpp | 37
   branches/proto/v4/libs/ptr_container/test/ptr_set.cpp | 8
   branches/proto/v4/libs/ptr_container/test/sequence_test_data.hpp | 9
   branches/proto/v4/libs/ptr_container/test/serialization.cpp | 42
   branches/proto/v4/libs/ptr_container/test/test_data.hpp | 34
   branches/proto/v4/libs/thread/doc/thread_ref.qbk | 32
   branches/proto/v4/libs/thread/test/test_thread.cpp | 18
   branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/background.html | 26
   branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/category.html | 4
   branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/category/alignment.html | 4
   branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/category/function.html | 4
   branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/category/transform.html | 6
   branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/category/value_traits.html | 4
   branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/category/value_traits/primary.html | 4
   branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/category/value_traits/properties.html | 4
   branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/category/value_traits/relate.html | 4
   branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/credits.html | 4
   branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/examples.html | 4
   branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/examples/copy.html | 4
   branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/examples/destruct.html | 4
   branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/examples/fill.html | 4
   branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/examples/iter.html | 4
   branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/examples/to_double.html | 4
   branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/intrinsics.html | 90 +
   branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/intro.html | 4
   branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/mpl.html | 4
   branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference.html | 4
   branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/add_const.html | 6
   branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/add_cv.html | 6
   branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/add_pointer.html | 6
   branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/add_reference.html | 6
   branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/add_volatile.html | 6
   branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/aligned_storage.html | 4
   branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/alignment_of.html | 4
   branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/decay.html | 6
   branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/extent.html | 4
   branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/floating_point_promotion.html | 6
   branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/function_traits.html | 8
   branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/has_no_throw_def_cons.html | 4
   branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/has_nothrow_assign.html | 4
   branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/has_nothrow_constructor.html | 4
   branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/has_nothrow_copy.html | 4
   branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/has_nothrow_cp_cons.html | 4
   branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/has_trivial_assign.html | 4
   branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/has_trivial_constructor.html | 4
   branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/has_trivial_copy.html | 4
   branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/has_trivial_cp_cons.html | 4
   branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/has_trivial_def_cons.html | 4
   branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/has_trivial_destructor.html | 4
   branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/has_virtual_destructor.html | 4
   branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/integral_constant.html | 4
   branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/integral_promotion.html | 6
   branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/is_abstract.html | 4
   branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/is_arithmetic.html | 4
   branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/is_array.html | 4
   branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/is_base_of.html | 4
   branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/is_class.html | 4
   branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/is_complex.html | 4
   branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/is_compound.html | 4
   branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/is_const.html | 4
   branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/is_convertible.html | 4
   branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/is_empty.html | 4
   branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/is_enum.html | 4
   branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/is_floating_point.html | 4
   branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/is_function.html | 4
   branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/is_fundamental.html | 4
   branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/is_integral.html | 4
   branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/is_member_function_pointer.html | 4
   branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/is_member_object_pointer.html | 4
   branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/is_member_pointer.html | 4
   branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/is_object.html | 4
   branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/is_pod.html | 4
   branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/is_pointer.html | 4
   branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/is_polymorphic.html | 4
   branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/is_reference.html | 4
   branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/is_same.html | 4
   branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/is_scalar.html | 4
   branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/is_signed.html | 4
   branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/is_stateless.html | 4
   branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/is_union.html | 4
   branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/is_unsigned.html | 4
   branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/is_void.html | 4
   branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/is_volatile.html | 4
   branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/make_signed.html | 6
   branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/make_unsigned.html | 6
   branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/promote.html | 6
   branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/rank.html | 4
   branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/remove_all_extents.html | 6
   branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/remove_const.html | 6
   branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/remove_cv.html | 6
   branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/remove_extent.html | 6
   branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/remove_pointer.html | 6
   branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/remove_reference.html | 6
   branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/remove_volatile.html | 6
   branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/type_with_alignment.html | 4
   branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/user_defined.html | 4
   branches/proto/v4/libs/type_traits/doc/html/index.html | 6
   branches/proto/v4/libs/type_traits/doc/intrinsics.qbk | 9
   branches/proto/v4/libs/type_traits/test/alignment_of_test.cpp | 35
   branches/proto/v4/libs/type_traits/test/type_with_alignment_test.cpp | 12
   branches/proto/v4/libs/wave/samples/hannibal/translation_unit_parser.h | 6
   branches/proto/v4/status/explicit-failures-markup.xml | 2
   branches/proto/v4/tools/build/v2/build/modifiers.jam | 36
   branches/proto/v4/tools/build/v2/doc/src/tutorial.xml | 350 ++---
   branches/proto/v4/tools/build/v2/tools/acc.jam | 3
   branches/proto/v4/tools/build/v2/tools/msvc.jam | 386 ++++--
   branches/proto/v4/tools/build/v2/tools/python.jam | 21
   branches/proto/v4/tools/jam/src/build.bat | 3
   branches/proto/v4/tools/jam/src/builtins.c | 89 +
   branches/proto/v4/tools/jam/test/action_status.jam | 6
   branches/proto/v4/tools/jam/test/actions_quietly.jam | 4
   branches/proto/v4/tools/jam/test/builtin_shell.jam | 14
   branches/proto/v4/tools/jam/test/option_d2.jam | 2
   branches/proto/v4/tools/jam/test/option_l.jam | 2
   branches/proto/v4/tools/jam/test/option_n.jam | 2
   branches/proto/v4/tools/jam/test/parallel_actions.jam | 2
   branches/proto/v4/tools/jam/test/parallel_multifile_actions.jam | 2
   144 files changed, 3273 insertions(+), 2058 deletions(-)

Modified: branches/proto/v4/boost/assign/list_inserter.hpp
==============================================================================
--- branches/proto/v4/boost/assign/list_inserter.hpp (original)
+++ branches/proto/v4/boost/assign/list_inserter.hpp 2008-06-05 01:50:03 EDT (Thu, 05 Jun 2008)
@@ -203,10 +203,6 @@
         template< class Nullary_function >
         list_inserter& operator=( const assign_detail::fun_repeater<Nullary_function>& r )
         {
- //BOOST_STATIC_ASSERT( function_traits<Nullary_function>::arity == 0 );
- //BOOST_STATIC_ASSERT( is_convertible< BOOST_DEDUCED_TYPENAME function_traits<
- // Nullary_function>::result_type >,T>::value );
-
             return operator,( r );
         }
         

Modified: branches/proto/v4/boost/assign/list_of.hpp
==============================================================================
--- branches/proto/v4/boost/assign/list_of.hpp (original)
+++ branches/proto/v4/boost/assign/list_of.hpp 2008-06-05 01:50:03 EDT (Thu, 05 Jun 2008)
@@ -321,7 +321,7 @@
     operator<<( std::basic_ostream<Elem, Traits>& Os,
                 const converter<T,I>& r )
     {
- return Os << ::boost::make_iterator_range( r.begin(), r.end() );
+ return Os << ::boost::make_iterator_range( r.begin(), r.end() );
     }
     
     /////////////////////////////////////////////////////////////////////////

Modified: branches/proto/v4/boost/detail/spinlock_sync.hpp
==============================================================================
--- branches/proto/v4/boost/detail/spinlock_sync.hpp (original)
+++ branches/proto/v4/boost/detail/spinlock_sync.hpp 2008-06-05 01:50:03 EDT (Thu, 05 Jun 2008)
@@ -17,6 +17,10 @@
 
 #include <boost/detail/yield_k.hpp>
 
+#if defined( __ia64__ ) && defined( __INTEL_COMPILER )
+# include <ia64intrin.h>
+#endif
+
 namespace boost
 {
 

Modified: branches/proto/v4/boost/ptr_container/clone_allocator.hpp
==============================================================================
--- branches/proto/v4/boost/ptr_container/clone_allocator.hpp (original)
+++ branches/proto/v4/boost/ptr_container/clone_allocator.hpp 2008-06-05 01:50:03 EDT (Thu, 05 Jun 2008)
@@ -70,7 +70,7 @@
         template< class U >
         static U* allocate_clone( const U& r )
         {
- return const_cast<U*>( &r );
+ return const_cast<U*>(&r);
         }
 
         template< class U >

Deleted: branches/proto/v4/boost/ptr_container/clone_inserter.hpp
==============================================================================
Binary file. No diff available.

Modified: branches/proto/v4/boost/ptr_container/detail/associative_ptr_container.hpp
==============================================================================
--- branches/proto/v4/boost/ptr_container/detail/associative_ptr_container.hpp (original)
+++ branches/proto/v4/boost/ptr_container/detail/associative_ptr_container.hpp 2008-06-05 01:50:03 EDT (Thu, 05 Jun 2008)
@@ -38,6 +38,8 @@
         typedef BOOST_DEDUCED_TYPENAME base_type::scoped_deleter
                                 scoped_deleter;
 
+ typedef BOOST_DEDUCED_TYPENAME Config::container_type
+ container_type;
     public: // typedefs
         typedef BOOST_DEDUCED_TYPENAME Config::key_type
                                 key_type;
@@ -45,65 +47,102 @@
                                 key_compare;
         typedef BOOST_DEDUCED_TYPENAME Config::value_compare
                                 value_compare;
+ typedef BOOST_DEDUCED_TYPENAME Config::hasher
+ hasher;
+ typedef BOOST_DEDUCED_TYPENAME Config::key_equal
+ key_equal;
         typedef BOOST_DEDUCED_TYPENAME Config::iterator
                                 iterator;
         typedef BOOST_DEDUCED_TYPENAME Config::const_iterator
                                 const_iterator;
+ typedef BOOST_DEDUCED_TYPENAME Config::local_iterator
+ local_iterator;
+ typedef BOOST_DEDUCED_TYPENAME Config::const_local_iterator
+ const_local_iterator;
         typedef BOOST_DEDUCED_TYPENAME base_type::size_type
                                 size_type;
+ typedef BOOST_DEDUCED_TYPENAME base_type::reference
+ reference;
+ typedef BOOST_DEDUCED_TYPENAME base_type::const_reference
+ const_reference;
 
     public: // foundation
+ associative_ptr_container()
+ { }
 
- template< class Compare, class Allocator >
- associative_ptr_container( const Compare& comp,
- const Allocator& a )
+ template< class SizeType >
+ associative_ptr_container( SizeType n, unordered_associative_container_tag tag )
+ : base_type( n, tag )
+ { }
+
+ template< class Compare, class Allocator >
+ associative_ptr_container( const Compare& comp,
+ const Allocator& a )
          : base_type( comp, a )
- { }
-
- template< class InputIterator, class Compare, class Allocator >
- associative_ptr_container( InputIterator first, InputIterator last,
- const Compare& comp,
- const Allocator& a )
- : base_type( first, last, comp, a )
- { }
-
- template< class PtrContainer >
- explicit associative_ptr_container( std::auto_ptr<PtrContainer> r )
- : base_type( r, key_compare() )
- { }
-
- explicit associative_ptr_container( const associative_ptr_container& r )
- : base_type( r.begin(), r.end(), key_compare(),
- BOOST_DEDUCED_TYPENAME Config::allocator_type() )
- { }
-
- template< class C, class V >
- explicit associative_ptr_container( const associative_ptr_container<C,V>& r )
- : base_type( r.begin(), r.end(), key_compare(),
- BOOST_DEDUCED_TYPENAME Config::allocator_type() )
- { }
-
- template< class PtrContainer >
- associative_ptr_container& operator=( std::auto_ptr<PtrContainer> r ) // nothrow
- {
+ { }
+
+ template< class Hash, class Pred, class Allocator >
+ associative_ptr_container( const Hash& hash,
+ const Pred& pred,
+ const Allocator& a )
+ : base_type( hash, pred, a )
+ { }
+
+ template< class InputIterator >
+ associative_ptr_container( InputIterator first, InputIterator last )
+ : base_type( first, last, container_type() )
+ { }
+
+ template< class InputIterator, class Compare, class Allocator >
+ associative_ptr_container( InputIterator first, InputIterator last,
+ const Compare& comp,
+ const Allocator& a )
+ : base_type( first, last, comp, a, container_type() )
+ { }
+
+ template< class InputIterator, class Hash, class Pred, class Allocator >
+ associative_ptr_container( InputIterator first, InputIterator last,
+ const Hash& hash,
+ const Pred& pred,
+ const Allocator& a )
+ : base_type( first, last, hash, pred, a )
+ { }
+
+ template< class PtrContainer >
+ explicit associative_ptr_container( std::auto_ptr<PtrContainer> r )
+ : base_type( r )
+ { }
+
+ explicit associative_ptr_container( const associative_ptr_container& r )
+ : base_type( r.begin(), r.end(), container_type() )
+ { }
+
+ template< class C, class V >
+ explicit associative_ptr_container( const associative_ptr_container<C,V>& r )
+ : base_type( r.begin(), r.end(), container_type() )
+ { }
+
+ template< class PtrContainer >
+ associative_ptr_container& operator=( std::auto_ptr<PtrContainer> r ) // nothrow
+ {
            base_type::operator=( r );
            return *this;
- }
-
- template< class C, class V >
- associative_ptr_container& operator=( const associative_ptr_container<C,V>& r ) // strong
- {
+ }
+
+ template< class C, class V >
+ associative_ptr_container& operator=( const associative_ptr_container<C,V>& r ) // strong
+ {
            associative_ptr_container clone( r );
            this->swap( clone );
            return *this;
- }
+ }
         
- associative_ptr_container& operator=( const associative_ptr_container& r ) // strong
- {
+ associative_ptr_container& operator=( const associative_ptr_container& r ) // strong
+ {
            associative_ptr_container clone( r );
            this->swap( clone );
            return *this;
- }
+ }
 
     public: // associative container interface
         key_compare key_comp() const
@@ -236,6 +275,113 @@
             }
             return res;
         }
+
+ reference front()
+ {
+ BOOST_ASSERT( !this->empty() );
+ BOOST_ASSERT( *this->begin().base() != 0 );
+ return *this->begin();
+ }
+
+ const_reference front() const
+ {
+ return const_cast<associative_ptr_container*>(this)->front();
+ }
+
+ reference back()
+ {
+ BOOST_ASSERT( !this->empty() );
+ BOOST_ASSERT( *(--this->end()).base() != 0 );
+ return *--this->end();
+ }
+
+ const_reference back() const
+ {
+ return const_cast<associative_ptr_container*>(this)->back();
+ }
+
+ protected: // unordered interface
+ hasher hash_function() const
+ {
+ return this->base().hash_function();
+ }
+
+ key_equal key_eq() const
+ {
+ return this->base().key_eq();
+ }
+
+ size_type bucket_count() const
+ {
+ return this->base().bucket_count();
+ }
+
+ size_type max_bucket_count() const
+ {
+ return this->base().max_bucket_count();
+ }
+
+ size_type bucket_size( size_type n ) const
+ {
+ return this->base().bucket_size( n );
+ }
+
+ float load_factor() const
+ {
+ return this->base().load_factor();
+ }
+
+ float max_load_factor() const
+ {
+ return this->base().max_load_factor();
+ }
+
+ void max_load_factor( float factor )
+ {
+ return this->base().max_load_factor( factor );
+ }
+
+ void rehash( size_type n )
+ {
+ this->base().rehash( n );
+ }
+
+ public:
+ using base_type::begin;
+ using base_type::end;
+ using base_type::cbegin;
+ using base_type::cend;
+
+ protected:
+ local_iterator begin( size_type n )
+ {
+ return local_iterator( this->base().begin( n ) );
+ }
+
+ const_local_iterator begin( size_type n ) const
+ {
+ return const_local_iterator( this->base().begin( n ) );
+ }
+
+ local_iterator end( size_type n )
+ {
+ return local_iterator( this->base().end( n ) );
+ }
+
+ const_local_iterator end( size_type n ) const
+ {
+ return const_local_iterator( this->base().end( n ) );
+ }
+
+ const_local_iterator cbegin( size_type n ) const
+ {
+ return const_local_iterator( this->base().cbegin( n ) );
+ }
+
+ const_local_iterator cend( size_type n )
+ {
+ return const_local_iterator( this->base().cend( n ) );
+ }
 
      }; // class 'associative_ptr_container'
     

Modified: branches/proto/v4/boost/ptr_container/detail/map_iterator.hpp
==============================================================================
--- branches/proto/v4/boost/ptr_container/detail/map_iterator.hpp (original)
+++ branches/proto/v4/boost/ptr_container/detail/map_iterator.hpp 2008-06-05 01:50:03 EDT (Thu, 05 Jun 2008)
@@ -18,6 +18,7 @@
 
 #include <boost/config.hpp>
 #include <boost/iterator/iterator_adaptor.hpp>
+#include <boost/utility/compare_pointees.hpp>
 #include <utility>
 
 namespace boost
@@ -47,6 +48,41 @@
             {
                 return this;
             }
+
+ friend inline bool operator==( ref_pair l, ref_pair r )
+ {
+ return l.first == r.first &&
+ boost::equal_pointees( l.second, r.second );
+ }
+
+ friend inline bool operator!=( ref_pair l, ref_pair r )
+ {
+ return !( l == r );
+ }
+
+ friend inline bool operator<( ref_pair l, ref_pair r )
+ {
+ if( l.first == r.first )
+ return boost::less_pointees( l.second, r.second );
+ else
+ return l.first < r.first;
+ }
+
+ friend inline bool operator>( ref_pair l, ref_pair r )
+ {
+ return r < l;
+ }
+
+ friend inline bool operator<=( ref_pair l, ref_pair r )
+ {
+ return !(r < l);
+ }
+
+ friend inline bool operator>=( ref_pair l, ref_pair r )
+ {
+ return !(l < r);
+ }
+
         };
     }
     

Modified: branches/proto/v4/boost/ptr_container/detail/reversible_ptr_container.hpp
==============================================================================
--- branches/proto/v4/boost/ptr_container/detail/reversible_ptr_container.hpp (original)
+++ branches/proto/v4/boost/ptr_container/detail/reversible_ptr_container.hpp 2008-06-05 01:50:03 EDT (Thu, 05 Jun 2008)
@@ -66,8 +66,12 @@
 
     struct is_pointer_or_integral_tag {};
     struct is_range_tag {};
-
+ struct sequence_tag {};
+ struct associative_container_tag {};
+ struct ordered_associative_container_tag : associative_container_tag {};
+ struct unordered_associative_container_tag : associative_container_tag {};
     
+
     
     template
     <
@@ -291,27 +295,44 @@
             clone_back_insert( first, last );
         }
 
+ template< class I >
+ void associative_constructor_impl( I first, I last ) // strong
+ {
+ if( first == last )
+ return;
+
+ scoped_deleter sd( first, last );
+ insert_clones_and_release( sd );
+ }
+
     public: // foundation! should be protected!
- reversible_ptr_container( const allocator_type& a = allocator_type() )
+ reversible_ptr_container()
+ { }
+
+ template< class SizeType >
+ reversible_ptr_container( SizeType n, unordered_associative_container_tag )
+ : c_( n )
+ { }
+
+ explicit reversible_ptr_container( const allocator_type& a )
          : c_( a )
         {}
         
         template< class PtrContainer >
- explicit reversible_ptr_container( std::auto_ptr<PtrContainer> clone )
- : c_( allocator_type() )
+ explicit reversible_ptr_container( std::auto_ptr<PtrContainer> clone )
         {
             swap( *clone );
         }
 
         explicit reversible_ptr_container( const reversible_ptr_container& r )
         {
- constructor_impl( r.begin(), r.end(), std::forward_iterator_tag() );
+ constructor_impl( r.begin(), r.end(), std::forward_iterator_tag() );
         }
 
         template< class C, class V >
         explicit reversible_ptr_container( const reversible_ptr_container<C,V>& r )
         {
- constructor_impl( r.begin(), r.end(), std::forward_iterator_tag() );
+ constructor_impl( r.begin(), r.end(), std::forward_iterator_tag() );
         }
 
 
@@ -336,6 +357,7 @@
             swap( clone );
             return *this;
         }
+
         // overhead: null-initilization of container pointer (very cheap compared to cloning)
         // overhead: 1 heap allocation (very cheap compared to cloning)
         template< class InputIterator >
@@ -357,26 +379,43 @@
                                   const allocator_type& a )
         : c_( comp, a ) {}
 
+ template< class InputIterator >
+ reversible_ptr_container( InputIterator first,
+ InputIterator last,
+ associative_container_tag )
+ {
+ associative_constructor_impl( first, last );
+ }
+
         template< class InputIterator, class Compare >
         reversible_ptr_container( InputIterator first,
                                   InputIterator last,
                                   const Compare& comp,
- const allocator_type& a )
+ const allocator_type& a,
+ associative_container_tag )
         : c_( comp, a )
         {
- if( first == last )
- return;
-
- scoped_deleter sd( first, last );
- insert_clones_and_release( sd );
+ associative_constructor_impl( first, last );
         }
 
- template< class PtrContainer, class Compare >
- reversible_ptr_container( std::auto_ptr<PtrContainer> clone,
- Compare comp )
- : c_( comp, allocator_type() )
- {
- swap( *clone );
+ explicit reversible_ptr_container( size_type n )
+ : c_( n ) {}
+
+ template< class Hash, class Pred >
+ reversible_ptr_container( const Hash& hash,
+ const Pred& pred,
+ const allocator_type& a )
+ : c_( hash, pred, a ) {}
+
+ template< class InputIterator, class Hash, class Pred >
+ reversible_ptr_container( InputIterator first,
+ InputIterator last,
+ const Hash& hash,
+ const Pred& pred,
+ const allocator_type& a )
+ : c_( hash, pred, a )
+ {
+ associative_constructor_impl( first, last );
         }
 
     public:
@@ -410,7 +449,17 @@
             { return reverse_iterator( this->begin() ); }
         const_reverse_iterator rend() const
             { return const_reverse_iterator( this->begin() ); }
-
+
+ const_iterator cbegin() const
+ { return const_iterator( c_.begin() ); }
+ const_iterator cend() const
+ { return const_iterator( c_.end() ); }
+
+ const_reverse_iterator crbegin() const
+ { return const_reverse_iterator( this->end() ); }
+ const_reverse_iterator crend() const
+ { return const_reverse_iterator( this->begin() ); }
+
         void swap( reversible_ptr_container& r ) // nothrow
         {
             c_.swap( r.c_ );
@@ -613,8 +662,17 @@
 #define BOOST_PTR_CONTAINER_DEFINE_COPY_CONSTRUCTORS( PC, base_type ) \
                                                                       \
     template< class U > \
+ explicit PC( const PC& r ) : base_type( r ) { } \
+ \
+ template< class U > \
     explicit PC( const PC<U>& r ) : base_type( r ) { } \
                                                                       \
+ PC& operator=( const PC& r ) \
+ { \
+ base_type::operator=( r ); \
+ return *this; \
+ } \
+ \
     template< class U > \
     PC& operator=( const PC<U>& r ) \
     { \
@@ -628,10 +686,13 @@
     typedef BOOST_DEDUCED_TYPENAME base_type::size_type size_type; \
     typedef BOOST_DEDUCED_TYPENAME base_type::const_reference const_reference; \
     typedef BOOST_DEDUCED_TYPENAME base_type::allocator_type allocator_type; \
- explicit PC( const allocator_type& a = allocator_type() ) : base_type(a) {} \
+ PC() {} \
+ explicit PC( const allocator_type& a ) : base_type(a) {} \
+ template< class InputIterator > \
+ PC( InputIterator first, InputIterator last ) : base_type( first, last ) {} \
     template< class InputIterator > \
     PC( InputIterator first, InputIterator last, \
- const allocator_type& a = allocator_type() ) : base_type( first, last, a ) {}
+ const allocator_type& a ) : base_type( first, last, a ) {}
                  
 #define BOOST_PTR_CONTAINER_DEFINE_NON_INHERITED_MEMBERS( PC, base_type, this_type ) \
    BOOST_PTR_CONTAINER_DEFINE_CONSTRUCTORS( PC, base_type ) \

Modified: branches/proto/v4/boost/ptr_container/detail/serialize_ptr_map_adapter.hpp
==============================================================================
--- branches/proto/v4/boost/ptr_container/detail/serialize_ptr_map_adapter.hpp (original)
+++ branches/proto/v4/boost/ptr_container/detail/serialize_ptr_map_adapter.hpp 2008-06-05 01:50:03 EDT (Thu, 05 Jun 2008)
@@ -16,10 +16,10 @@
 namespace serialization
 {
 
-template<class Archive, class T, class VoidPtrMap, class CloneAllocator>
-void save(Archive& ar, const ptr_container_detail::ptr_map_adapter_base<T, VoidPtrMap, CloneAllocator>& c, unsigned int version)
+template<class Archive, class T, class VoidPtrMap, class CloneAllocator, bool Ordered>
+void save(Archive& ar, const ptr_container_detail::ptr_map_adapter_base<T, VoidPtrMap, CloneAllocator,Ordered>& c, unsigned int version)
 {
- typedef ptr_container_detail::ptr_map_adapter_base<T, VoidPtrMap, CloneAllocator> container;
+ typedef ptr_container_detail::ptr_map_adapter_base<T, VoidPtrMap, CloneAllocator,Ordered> container;
     typedef BOOST_DEDUCED_TYPENAME container::const_iterator const_iterator;
 
     ar << boost::serialization::make_nvp( ptr_container_detail::count(),
@@ -34,10 +34,10 @@
     }
 }
 
-template<class Archive, class T, class VoidPtrMap, class CloneAllocator>
-void load(Archive& ar, ptr_map_adapter<T, VoidPtrMap, CloneAllocator>& c, unsigned int version)
+template<class Archive, class T, class VoidPtrMap, class CloneAllocator, bool Ordered>
+void load(Archive& ar, ptr_map_adapter<T, VoidPtrMap, CloneAllocator,Ordered>& c, unsigned int version)
 {
- typedef ptr_map_adapter<T, VoidPtrMap, CloneAllocator> container;
+ typedef ptr_map_adapter<T, VoidPtrMap, CloneAllocator,Ordered> container;
     typedef BOOST_DEDUCED_TYPENAME container::key_type key_type;
     typedef BOOST_DEDUCED_TYPENAME container::size_type size_type;
     typedef BOOST_DEDUCED_TYPENAME container::iterator iterator;
@@ -57,10 +57,10 @@
     }
 }
 
-template<class Archive, class T, class VoidPtrMap, class CloneAllocator>
-void load(Archive& ar, ptr_multimap_adapter<T, VoidPtrMap, CloneAllocator>& c, unsigned int version)
+template<class Archive, class T, class VoidPtrMap, class CloneAllocator, bool Ordered>
+void load(Archive& ar, ptr_multimap_adapter<T, VoidPtrMap, CloneAllocator,Ordered>& c, unsigned int version)
 {
- typedef ptr_multimap_adapter<T, VoidPtrMap, CloneAllocator> container;
+ typedef ptr_multimap_adapter<T, VoidPtrMap, CloneAllocator,Ordered> container;
     typedef BOOST_DEDUCED_TYPENAME container::key_type key_type;
     typedef BOOST_DEDUCED_TYPENAME container::size_type size_type;
     typedef BOOST_DEDUCED_TYPENAME container::iterator iterator;

Modified: branches/proto/v4/boost/ptr_container/ptr_container.hpp
==============================================================================
--- branches/proto/v4/boost/ptr_container/ptr_container.hpp (original)
+++ branches/proto/v4/boost/ptr_container/ptr_container.hpp 2008-06-05 01:50:03 EDT (Thu, 05 Jun 2008)
@@ -1,7 +1,7 @@
 //
 // Boost.Pointer Container
 //
-// Copyright Thorsten Ottosen 2003-2005. Use, modification and
+// Copyright Thorsten Ottosen 2003-2008. Use, modification and
 // distribution is 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)
@@ -22,6 +22,9 @@
 #include <boost/ptr_container/ptr_map.hpp>
 #include <boost/ptr_container/ptr_set.hpp>
 #include <boost/ptr_container/ptr_vector.hpp>
+#include <boost/ptr_container/ptr_unordered_map.hpp>
+#include <boost/ptr_container/ptr_unordered_set.hpp>
+#include <boost/ptr_container/ptr_inserter.hpp>
 
 #endif
 

Modified: branches/proto/v4/boost/ptr_container/ptr_map.hpp
==============================================================================
--- branches/proto/v4/boost/ptr_container/ptr_map.hpp (original)
+++ branches/proto/v4/boost/ptr_container/ptr_map.hpp 2008-06-05 01:50:03 EDT (Thu, 05 Jun 2008)
@@ -41,13 +41,21 @@
         typedef ptr_map<Key,T,Compare,CloneAllocator,Allocator> this_type;
         
     public:
- explicit ptr_map( const Compare& comp = Compare(),
+ ptr_map()
+ { }
+
+ explicit ptr_map( const Compare& comp,
                           const Allocator& a = Allocator() )
           : base_type( comp, a ) { }
 
         template< class InputIterator >
+ ptr_map( InputIterator first, InputIterator last )
+ : base_type( first, last )
+ { }
+
+ template< class InputIterator >
         ptr_map( InputIterator first, InputIterator last,
- const Compare& comp = Compare(),
+ const Compare& comp,
                  const Allocator& a = Allocator() )
           : base_type( first, last, comp, a )
         { }
@@ -88,13 +96,21 @@
         typedef ptr_multimap<Key,T,Compare,CloneAllocator,Allocator> this_type;
         
     public:
- explicit ptr_multimap( const Compare& comp = Compare(),
+ ptr_multimap()
+ { }
+
+ explicit ptr_multimap( const Compare& comp,
                                const Allocator& a = Allocator() )
           : base_type( comp, a ) { }
+
+ template< class InputIterator >
+ ptr_multimap( InputIterator first, InputIterator last )
+ : base_type( first, last )
+ { }
         
         template< class InputIterator >
         ptr_multimap( InputIterator first, InputIterator last,
- const Compare& comp = Compare(),
+ const Compare& comp,
                       const Allocator& a = Allocator() )
           : base_type( first, last, comp, a )
         { }

Modified: branches/proto/v4/boost/ptr_container/ptr_map_adapter.hpp
==============================================================================
--- branches/proto/v4/boost/ptr_container/ptr_map_adapter.hpp (original)
+++ branches/proto/v4/boost/ptr_container/ptr_map_adapter.hpp 2008-06-05 01:50:03 EDT (Thu, 05 Jun 2008)
@@ -18,6 +18,7 @@
 
 #include <boost/ptr_container/detail/map_iterator.hpp>
 #include <boost/ptr_container/detail/associative_ptr_container.hpp>
+#include <boost/ptr_container/detail/meta_functions.hpp>
 #include <boost/static_assert.hpp>
 #include <boost/range/iterator_range.hpp>
 
@@ -29,7 +30,8 @@
     template
     <
         class T,
- class VoidPtrMap
+ class VoidPtrMap,
+ bool Ordered
>
     struct map_config
     {
@@ -41,11 +43,35 @@
         typedef BOOST_DEDUCED_TYPENAME VoidPtrMap::allocator_type
                      allocator_type;
         
- typedef BOOST_DEDUCED_TYPENAME VoidPtrMap::key_compare
- key_compare;
-
- typedef BOOST_DEDUCED_TYPENAME VoidPtrMap::value_compare
- value_compare;
+ typedef BOOST_DEDUCED_TYPENAME
+ mpl::eval_if_c<Ordered,
+ select_value_compare<VoidPtrMap>,
+ mpl::identity<void> >::type
+ value_compare;
+
+ typedef BOOST_DEDUCED_TYPENAME
+ mpl::eval_if_c<Ordered,
+ select_key_compare<VoidPtrMap>,
+ mpl::identity<void> >::type
+ key_compare;
+
+ typedef BOOST_DEDUCED_TYPENAME
+ mpl::eval_if_c<Ordered,
+ mpl::identity<void>,
+ select_hasher<VoidPtrMap> >::type
+ hasher;
+
+ typedef BOOST_DEDUCED_TYPENAME
+ mpl::eval_if_c<Ordered,
+ mpl::identity<void>,
+ select_key_equal<VoidPtrMap> >::type
+ key_equal;
+
+ typedef BOOST_DEDUCED_TYPENAME
+ mpl::if_c<Ordered,
+ ptr_container_detail::ordered_associative_container_tag,
+ ptr_container_detail::unordered_associative_container_tag>::type
+ container_type;
         
         typedef BOOST_DEDUCED_TYPENAME VoidPtrMap::key_type
                      key_type;
@@ -57,7 +83,23 @@
         
         typedef ptr_map_iterator< BOOST_DEDUCED_TYPENAME VoidPtrMap::const_iterator, key_type, const U* const>
                      const_iterator;
-
+
+ typedef ptr_map_iterator<
+ BOOST_DEDUCED_TYPENAME
+ mpl::eval_if_c<Ordered,
+ select_iterator<VoidPtrMap>,
+ select_local_iterator<VoidPtrMap> >::type,
+ key_type, U* const >
+ local_iterator;
+
+ typedef ptr_map_iterator<
+ BOOST_DEDUCED_TYPENAME
+ mpl::eval_if_c<Ordered,
+ select_iterator<VoidPtrMap>,
+ select_const_local_iterator<VoidPtrMap> >::type,
+ key_type, const U* const >
+ const_local_iterator;
+
         template< class Iter >
         static U* get_pointer( Iter i )
         {
@@ -79,19 +121,19 @@
     <
         class T,
         class VoidPtrMap,
- class CloneAllocator
+ class CloneAllocator,
+ bool Ordered
>
     class ptr_map_adapter_base :
- public ptr_container_detail::associative_ptr_container< map_config<T,VoidPtrMap>,
+ public ptr_container_detail::associative_ptr_container< map_config<T,VoidPtrMap,Ordered>,
                                                     CloneAllocator >
     {
- typedef ptr_container_detail::associative_ptr_container< map_config<T,VoidPtrMap>,
+ typedef ptr_container_detail::associative_ptr_container< map_config<T,VoidPtrMap,Ordered>,
                                                      CloneAllocator >
             base_type;
 
- typedef map_config<T,VoidPtrMap> config;
-
- typedef ptr_map_adapter_base<T,VoidPtrMap,CloneAllocator> this_type;
+ typedef map_config<T,VoidPtrMap,Ordered> config;
+ typedef ptr_map_adapter_base<T,VoidPtrMap,CloneAllocator,Ordered> this_type;
         
     public:
 
@@ -174,18 +216,48 @@
         
     public:
 
- template< class InputIterator >
- ptr_map_adapter_base( InputIterator first, InputIterator last,
- const allocator_type& a = allocator_type() )
- : base_type( first, last, a )
+ ptr_map_adapter_base()
         { }
-
+
+ template< class SizeType >
+ explicit ptr_map_adapter_base( SizeType n,
+ ptr_container_detail::unordered_associative_container_tag tag )
+ : base_type( n, tag )
+ { }
+
         template< class Compare, class Allocator >
         ptr_map_adapter_base( const Compare& comp,
- const Allocator& a )
+ const allocator_type& a )
         : base_type( comp, a )
         { }
-
+
+ template< class Hash, class Pred, class Allocator >
+ ptr_map_adapter_base( const Hash& hash,
+ const Pred& pred,
+ const Allocator& a )
+ : base_type( hash, pred, a )
+ { }
+
+ template< class InputIterator >
+ ptr_map_adapter_base( InputIterator first, InputIterator last )
+ : base_type( first, last )
+ { }
+
+ template< class InputIterator, class Comp >
+ ptr_map_adapter_base( InputIterator first, InputIterator last,
+ const Comp& comp,
+ const allocator_type& a = allocator_type() )
+ : base_type( first, last, comp, a )
+ { }
+
+ template< class InputIterator, class Hash, class Pred, class Allocator >
+ ptr_map_adapter_base( InputIterator first, InputIterator last,
+ const Hash& hash,
+ const Pred& pred,
+ const Allocator& a )
+ : base_type( first, last, hash, pred, a )
+ { }
+
         template< class PtrContainer >
         explicit ptr_map_adapter_base( std::auto_ptr<PtrContainer> clone )
         : base_type( clone )
@@ -287,6 +359,12 @@
         {
             return replace( where, x.release() );
         }
+
+ protected:
+ size_type bucket( const key_type& key ) const
+ {
+ return this->base().bucket( key );
+ }
     };
     
 } // ptr_container_detail
@@ -299,12 +377,13 @@
     <
         class T,
         class VoidPtrMap,
- class CloneAllocator = heap_clone_allocator
+ class CloneAllocator = heap_clone_allocator,
+ bool Ordered = true
>
     class ptr_map_adapter :
- public ptr_container_detail::ptr_map_adapter_base<T,VoidPtrMap,CloneAllocator>
+ public ptr_container_detail::ptr_map_adapter_base<T,VoidPtrMap,CloneAllocator,Ordered>
     {
- typedef ptr_container_detail::ptr_map_adapter_base<T,VoidPtrMap,CloneAllocator>
+ typedef ptr_container_detail::ptr_map_adapter_base<T,VoidPtrMap,CloneAllocator,Ordered>
             base_type;
     
     public:
@@ -320,8 +399,6 @@
                     const_reference;
         typedef BOOST_DEDUCED_TYPENAME base_type::auto_type
                     auto_type;
- typedef BOOST_DEDUCED_TYPENAME VoidPtrMap::key_compare
- key_compare;
         typedef BOOST_DEDUCED_TYPENAME VoidPtrMap::allocator_type
                     allocator_type;
         typedef BOOST_DEDUCED_TYPENAME base_type::mapped_type
@@ -356,29 +433,53 @@
         }
     
     public:
+ ptr_map_adapter( )
+ { }
 
- explicit ptr_map_adapter( const key_compare& comp = key_compare(),
- const allocator_type& a = allocator_type() )
+ template< class Comp >
+ explicit ptr_map_adapter( const Comp& comp,
+ const allocator_type& a )
           : base_type( comp, a ) { }
-
+
+ template< class Hash, class Pred, class Allocator >
+ ptr_map_adapter( const Hash& hash,
+ const Pred& pred,
+ const Allocator& a )
+ : base_type( hash, pred, a )
+ { }
+
         template< class InputIterator >
+ ptr_map_adapter( InputIterator first, InputIterator last )
+ {
+ map_basic_clone_and_insert( first, last );
+ }
+
+ template< class InputIterator, class Comp >
         ptr_map_adapter( InputIterator first, InputIterator last,
- const key_compare& comp = key_compare(),
+ const Comp& comp,
                          const allocator_type& a = allocator_type() )
           : base_type( comp, a )
         {
             map_basic_clone_and_insert( first, last );
         }
 
+ template< class InputIterator, class Hash, class Pred, class Allocator >
+ ptr_map_adapter( InputIterator first, InputIterator last,
+ const Hash& hash,
+ const Pred& pred,
+ const Allocator& a )
+ : base_type( hash, pred, a )
+ {
+ map_basic_clone_and_insert( first, last );
+ }
+
         explicit ptr_map_adapter( const ptr_map_adapter& r )
- : base_type( key_compare(), allocator_type() )
         {
             map_basic_clone_and_insert( r.begin(), r.end() );
         }
         
- template< class Key, class U >
- explicit ptr_map_adapter( const ptr_map_adapter<Key,U>& r )
- : base_type( key_compare(), allocator_type() )
+ template< class Key, class U, class CA, bool b >
+ explicit ptr_map_adapter( const ptr_map_adapter<Key,U,CA,b>& r )
         {
             map_basic_clone_and_insert( r.begin(), r.end() );
         }
@@ -394,8 +495,8 @@
             return *this;
         }
 
- template< class Key, class U >
- ptr_map_adapter& operator=( const ptr_map_adapter<Key,U>& r )
+ template< class Key, class U, class CA, bool b >
+ ptr_map_adapter& operator=( const ptr_map_adapter<Key,U,CA,b>& r )
          {
             ptr_map_adapter clone( r );
             this->swap( clone );
@@ -435,6 +536,18 @@
                 ptr.release(); // nothrow
             return std::make_pair( iterator( res.first ), res.second ); // nothrow
         }
+
+ iterator insert_impl( iterator before, const key_type& key, mapped_type x ) // strong
+ {
+ this->enforce_null_policy( x,
+ "Null pointer in 'ptr_map_adapter::insert()'" );
+ auto_type ptr( x ); // nothrow
+ BOOST_DEDUCED_TYPENAME base_type::ptr_iterator
+ res = this->base().insert( before.base(), std::make_pair( key, x ) );
+ // strong, commit
+ ptr.release(); // notrow
+ return iterator( res );
+ }
         
     public:
         
@@ -449,6 +562,33 @@
             return insert_impl( key, x.release() );
         }
 
+ template< class F, class S >
+ iterator insert( iterator before, ptr_container_detail::ref_pair<F,S> p ) // strong
+ {
+ this->enforce_null_policy( p.second,
+ "Null pointer in 'ptr_map_adapter::insert()'" );
+
+ auto_type ptr( this->null_policy_allocate_clone( p.second ) );
+ BOOST_DEDUCED_TYPENAME base_type::ptr_iterator
+ result = this->base().insert( before.base(),
+ std::make_pair(p.first,ptr.get()) ); // strong
+ if( ptr.get() == result->second )
+ ptr.release();
+
+ return iterator( result );
+ }
+
+ iterator insert( iterator before, key_type& key, mapped_type x ) // strong
+ {
+ return insert_impl( before, key, x );
+ }
+
+ template< class U >
+ iterator insert( iterator before, const key_type& key, std::auto_ptr<U> x ) // strong
+ {
+ return insert_impl( before, key, x.release() );
+ }
+
         template< class PtrMapAdapter >
         bool transfer( BOOST_DEDUCED_TYPENAME PtrMapAdapter::iterator object,
                        PtrMapAdapter& from ) // strong
@@ -493,12 +633,13 @@
     <
         class T,
         class VoidPtrMultiMap,
- class CloneAllocator = heap_clone_allocator
+ class CloneAllocator = heap_clone_allocator,
+ bool Ordered = true
>
     class ptr_multimap_adapter :
- public ptr_container_detail::ptr_map_adapter_base<T,VoidPtrMultiMap,CloneAllocator>
+ public ptr_container_detail::ptr_map_adapter_base<T,VoidPtrMultiMap,CloneAllocator,Ordered>
     {
- typedef ptr_container_detail::ptr_map_adapter_base<T,VoidPtrMultiMap,CloneAllocator>
+ typedef ptr_container_detail::ptr_map_adapter_base<T,VoidPtrMultiMap,CloneAllocator,Ordered>
              base_type;
 
     public: // typedefs
@@ -516,8 +657,6 @@
                     mapped_type;
         typedef BOOST_DEDUCED_TYPENAME base_type::auto_type
                     auto_type;
- typedef BOOST_DEDUCED_TYPENAME VoidPtrMultiMap::key_compare
- key_compare;
         typedef BOOST_DEDUCED_TYPENAME VoidPtrMultiMap::allocator_type
                     allocator_type;
     private:
@@ -545,29 +684,60 @@
         }
         
     public:
-
- explicit ptr_multimap_adapter( const key_compare& comp = key_compare(),
- const allocator_type& a = allocator_type() )
+
+ ptr_multimap_adapter()
+ { }
+
+ template< class SizeType >
+ ptr_multimap_adapter( SizeType n,
+ ptr_container_detail::unordered_associative_container_tag tag )
+ : base_type( n, tag )
+ { }
+
+ template< class Comp >
+ explicit ptr_multimap_adapter( const Comp& comp,
+ const allocator_type& a )
           : base_type( comp, a ) { }
-
+
+ template< class Hash, class Pred, class Allocator >
+ ptr_multimap_adapter( const Hash& hash,
+ const Pred& pred,
+ const Allocator& a )
+ : base_type( hash, pred, a )
+ { }
+
         template< class InputIterator >
+ ptr_multimap_adapter( InputIterator first, InputIterator last )
+ {
+ map_basic_clone_and_insert( first, last );
+ }
+
+ template< class InputIterator, class Comp >
         ptr_multimap_adapter( InputIterator first, InputIterator last,
- const key_compare& comp = key_compare(),
- const allocator_type& a = allocator_type() )
+ const Comp& comp,
+ const allocator_type& a )
           : base_type( comp, a )
         {
             map_basic_clone_and_insert( first, last );
         }
 
+ template< class InputIterator, class Hash, class Pred, class Allocator >
+ ptr_multimap_adapter( InputIterator first, InputIterator last,
+ const Hash& hash,
+ const Pred& pred,
+ const Allocator& a )
+ : base_type( hash, pred, a )
+ {
+ map_basic_clone_and_insert( first, last );
+ }
+
         explicit ptr_multimap_adapter( const ptr_multimap_adapter& r )
- : base_type( key_compare(), allocator_type() )
         {
             map_basic_clone_and_insert( r.begin(), r.end() );
         }
         
- template< class Key, class U >
- explicit ptr_multimap_adapter( const ptr_multimap_adapter<Key,U>& r )
- : base_type( key_compare(), allocator_type() )
+ template< class Key, class U, class CA, bool b >
+ explicit ptr_multimap_adapter( const ptr_multimap_adapter<Key,U,CA,b>& r )
         {
             map_basic_clone_and_insert( r.begin(), r.end() );
         }
@@ -583,8 +753,8 @@
             return *this;
         }
 
- template< class Key, class U >
- ptr_multimap_adapter& operator=( const ptr_multimap_adapter<Key,U>& r )
+ template< class Key, class U, class CA, bool b >
+ ptr_multimap_adapter& operator=( const ptr_multimap_adapter<Key,U,CA,b>& r )
          {
             ptr_multimap_adapter clone( r );
             this->swap( clone );
@@ -599,7 +769,34 @@
         }
 
         using base_type::release;
-
+
+ private:
+ iterator insert_impl( const key_type& key, mapped_type x ) // strong
+ {
+ this->enforce_null_policy( x,
+ "Null pointer in 'ptr_multimap_adapter::insert()'" );
+ auto_type ptr( x ); // nothrow
+ BOOST_DEDUCED_TYPENAME base_type::ptr_iterator
+ res = this->base().insert( std::make_pair( key, x ) );
+ // strong, commit
+ ptr.release(); // notrow
+ return iterator( res );
+ }
+
+ iterator insert_impl( iterator before, const key_type& key, mapped_type x ) // strong
+ {
+ this->enforce_null_policy( x,
+ "Null pointer in 'ptr_multimap_adapter::insert()'" );
+ auto_type ptr( x ); // nothrow
+ BOOST_DEDUCED_TYPENAME base_type::ptr_iterator
+ res = this->base().insert( before.base(),
+ std::make_pair( key, x ) );
+ // strong, commit
+ ptr.release(); // notrow
+ return iterator( res );
+ }
+
+ public:
         template< typename InputIterator >
         void insert( InputIterator first, InputIterator last ) // basic
         {
@@ -614,23 +811,36 @@
 
         iterator insert( key_type& key, mapped_type x ) // strong
         {
- this->enforce_null_policy( x,
- "Null pointer in 'ptr_multimap_adapter::insert()'" );
-
- auto_type ptr( x ); // nothrow
- BOOST_DEDUCED_TYPENAME base_type::ptr_iterator
- res = this->base().insert( std::make_pair( key, x ) );
- // strong, commit
- ptr.release(); // notrow
- return iterator( res );
+ return insert_impl( key, x );
         }
 
         template< class U >
         iterator insert( const key_type& key, std::auto_ptr<U> x )
         {
- return insert( key, x.release() );
+ return insert_impl( key, x.release() );
+ }
+
+ template< class F, class S >
+ iterator insert( iterator before, ptr_container_detail::ref_pair<F,S> p ) // strong
+ {
+ this->enforce_null_policy( p.second,
+ "Null pointer in 'ptr_multimap_adapter::insert()'" );
+ iterator res = insert_impl( before, p.first,
+ this->null_policy_allocate_clone( p.second ) );
+ return res;
         }
 
+ iterator insert( iterator before, key_type& key, mapped_type x ) // strong
+ {
+ return insert_impl( before, key, x );
+ }
+
+ template< class U >
+ iterator insert( iterator before, const key_type& key, std::auto_ptr<U> x ) // strong
+ {
+ return insert_impl( before, key, x.release() );
+ }
+
         template< class PtrMapAdapter >
         void transfer( BOOST_DEDUCED_TYPENAME PtrMapAdapter::iterator object,
                        PtrMapAdapter& from ) // strong

Modified: branches/proto/v4/boost/ptr_container/ptr_sequence_adapter.hpp
==============================================================================
--- branches/proto/v4/boost/ptr_container/ptr_sequence_adapter.hpp (original)
+++ branches/proto/v4/boost/ptr_container/ptr_sequence_adapter.hpp 2008-06-05 01:50:03 EDT (Thu, 05 Jun 2008)
@@ -209,9 +209,8 @@
 
         auto_type pop_back()
         {
- BOOST_PTR_CONTAINER_THROW_EXCEPTION( this->empty(),
- bad_ptr_container_operation,
- "'pop_back()' on empty container" );
+ BOOST_ASSERT( !this->empty() &&
+ "'pop_back()' on empty container" );
             auto_type ptr( static_cast<value_type>( this->base().back() ) );
                                                        // nothrow
             this->base().pop_back(); // nothrow
@@ -220,9 +219,8 @@
 
         auto_type pop_front()
         {
- BOOST_PTR_CONTAINER_THROW_EXCEPTION( this->empty(),
- bad_ptr_container_operation,
- "'pop_front()' on empty container" );
+ BOOST_ASSERT( !this->empty() &&
+ "'pop_front()' on empty container" );
             auto_type ptr( static_cast<value_type>( this->base().front() ) );
                                          // nothrow
             this->base().pop_front(); // nothrow
@@ -231,38 +229,29 @@
         
         reference front()
         {
- BOOST_PTR_CONTAINER_THROW_EXCEPTION( this->empty(),
- bad_ptr_container_operation,
- "accessing 'front()' on empty container" );
+ BOOST_ASSERT( !this->empty() &&
+ "accessing 'front()' on empty container" );
+
             BOOST_ASSERT( !::boost::is_null( this->begin() ) );
             return *this->begin();
         }
 
         const_reference front() const
         {
- BOOST_PTR_CONTAINER_THROW_EXCEPTION( this->empty(),
- bad_ptr_container_operation,
- "accessing 'front()' on empty container" );
- BOOST_ASSERT( !::boost::is_null( this->begin() ) );
- return *this->begin();
+ return const_cast<ptr_sequence_adapter*>(this)->front();
         }
 
         reference back()
         {
- BOOST_PTR_CONTAINER_THROW_EXCEPTION( this->empty(),
- bad_ptr_container_operation,
- "accessing 'back()' on empty container" );
+ BOOST_ASSERT( !this->empty() &&
+ "accessing 'back()' on empty container" );
             BOOST_ASSERT( !::boost::is_null( --this->end() ) );
             return *--this->end();
         }
 
         const_reference back() const
         {
- BOOST_PTR_CONTAINER_THROW_EXCEPTION( this->empty(),
- bad_ptr_container_operation,
- "accessing 'back()' on empty container" );
- BOOST_ASSERT( !::boost::is_null( --this->end() ) );
- return *--this->end();
+ return const_cast<ptr_sequence_adapter*>(this)->back();
         }
 
     public: // deque/vector inerface
@@ -325,7 +314,7 @@
         }
 
         template< class Range >
- void assign( const Range& r )
+ void assign( const Range& r ) // strong
         {
             assign( boost::begin(r), boost::end(r ) );
         }
@@ -369,7 +358,7 @@
         }
 
 #endif
-
+
         template< class PtrSeqAdapter >
         void transfer( iterator before,
                        BOOST_DEDUCED_TYPENAME PtrSeqAdapter::iterator first,
@@ -457,7 +446,7 @@
 
     public: // resize
 
- void resize( size_type size )
+ void resize( size_type size ) // basic
         {
             size_type old_size = this->size();
             if( old_size > size )
@@ -474,7 +463,7 @@
             BOOST_ASSERT( this->size() == size );
         }
 
- void resize( size_type size, value_type to_clone )
+ void resize( size_type size, value_type to_clone ) // basic
         {
             size_type old_size = this->size();
             if( old_size > size )
@@ -489,7 +478,42 @@
 
             BOOST_ASSERT( this->size() == size );
         }
-
+
+ void rresize( size_type size ) // basic
+ {
+ size_type old_size = this->size();
+ if( old_size > size )
+ {
+ this->erase( this->begin(),
+ boost::next( this->begin(), old_size - size ) );
+ }
+ else if( size > old_size )
+ {
+ for( ; old_size != size; ++old_size )
+ this->push_front( new BOOST_DEDUCED_TYPENAME
+ boost::remove_pointer<value_type>::type );
+ }
+
+ BOOST_ASSERT( this->size() == size );
+ }
+
+ void rresize( size_type size, value_type to_clone ) // basic
+ {
+ size_type old_size = this->size();
+ if( old_size > size )
+ {
+ this->erase( this->begin(),
+ boost::next( this->begin(), old_size - size ) );
+ }
+ else if( size > old_size )
+ {
+ for( ; old_size != size; ++old_size )
+ this->push_front( this->null_policy_allocate_clone( to_clone ) );
+ }
+
+ BOOST_ASSERT( this->size() == size );
+ }
+
     public: // algorithms
 
         void sort( iterator first, iterator last )

Modified: branches/proto/v4/boost/ptr_container/ptr_set.hpp
==============================================================================
--- branches/proto/v4/boost/ptr_container/ptr_set.hpp (original)
+++ branches/proto/v4/boost/ptr_container/ptr_set.hpp 2008-06-05 01:50:03 EDT (Thu, 05 Jun 2008)
@@ -33,23 +33,31 @@
     class ptr_set :
         public ptr_set_adapter< Key,
                                 std::set<void*,void_ptr_indirect_fun<Compare,Key>,Allocator>,
- CloneAllocator >
+ CloneAllocator, true >
     {
         typedef ptr_set_adapter< Key, std::set<void*,void_ptr_indirect_fun<Compare,Key>,Allocator>,
- CloneAllocator >
+ CloneAllocator, true >
              base_type;
 
         typedef ptr_set<Key,Compare,CloneAllocator,Allocator> this_type;
         
     public:
- explicit ptr_set( const Compare& comp = Compare(),
+ ptr_set()
+ { }
+
+ explicit ptr_set( const Compare& comp,
                           const Allocator& a = Allocator() )
          : base_type( comp, a )
         { }
-
+
+ template< typename InputIterator >
+ ptr_set( InputIterator first, InputIterator last )
+ : base_type( first, last )
+ { }
+
         template< typename InputIterator >
         ptr_set( InputIterator first, InputIterator last,
- const Compare& comp = Compare(),
+ const Compare& comp,
                  const Allocator& a = Allocator() )
          : base_type( first, last, comp, a )
         { }
@@ -73,23 +81,31 @@
     class ptr_multiset :
         public ptr_multiset_adapter< Key,
                                      std::multiset<void*,void_ptr_indirect_fun<Compare,Key>,Allocator>,
- CloneAllocator >
+ CloneAllocator, true >
     {
         typedef ptr_multiset_adapter< Key,
                                       std::multiset<void*,void_ptr_indirect_fun<Compare,Key>,Allocator>,
- CloneAllocator >
+ CloneAllocator, true >
               base_type;
         typedef ptr_multiset<Key,Compare,CloneAllocator,Allocator> this_type;
         
     public:
- explicit ptr_multiset( const Compare& comp = Compare(),
+ ptr_multiset()
+ { }
+
+ explicit ptr_multiset( const Compare& comp,
                                const Allocator& a = Allocator() )
          : base_type( comp, a )
         { }
-
+
+ template< typename InputIterator >
+ ptr_multiset( InputIterator first, InputIterator last )
+ : base_type( first, last )
+ { }
+
         template< typename InputIterator >
         ptr_multiset( InputIterator first, InputIterator last,
- const Compare& comp = Compare(),
+ const Compare& comp,
                       const Allocator& a = Allocator() )
          : base_type( first, last, comp, a )
         { }

Modified: branches/proto/v4/boost/ptr_container/ptr_set_adapter.hpp
==============================================================================
--- branches/proto/v4/boost/ptr_container/ptr_set_adapter.hpp (original)
+++ branches/proto/v4/boost/ptr_container/ptr_set_adapter.hpp 2008-06-05 01:50:03 EDT (Thu, 05 Jun 2008)
@@ -17,6 +17,7 @@
 #endif
 
 #include <boost/ptr_container/detail/associative_ptr_container.hpp>
+#include <boost/ptr_container/detail/meta_functions.hpp>
 #include <boost/ptr_container/detail/void_ptr_iterator.hpp>
 #include <boost/range/iterator_range.hpp>
 
@@ -27,7 +28,8 @@
     template
     <
         class Key,
- class VoidPtrSet
+ class VoidPtrSet,
+ bool Ordered
>
     struct set_config
     {
@@ -42,12 +44,33 @@
        typedef value_type
                     key_type;
 
- typedef BOOST_DEDUCED_TYPENAME VoidPtrSet::value_compare
+ typedef BOOST_DEDUCED_TYPENAME
+ mpl::eval_if_c<Ordered,
+ select_value_compare<VoidPtrSet>,
+ mpl::identity<void> >::type
                     value_compare;
 
        typedef value_compare
                     key_compare;
 
+ typedef BOOST_DEDUCED_TYPENAME
+ mpl::eval_if_c<Ordered,
+ mpl::identity<void>,
+ select_hasher<VoidPtrSet> >::type
+ hasher;
+
+ typedef BOOST_DEDUCED_TYPENAME
+ mpl::eval_if_c<Ordered,
+ mpl::identity<void>,
+ select_key_equal<VoidPtrSet> >::type
+ key_equal;
+
+ typedef BOOST_DEDUCED_TYPENAME
+ mpl::if_c<Ordered,
+ ordered_associative_container_tag,
+ unordered_associative_container_tag>::type
+ container_type;
+
        typedef void_ptr_iterator<
                        BOOST_DEDUCED_TYPENAME VoidPtrSet::iterator, Key >
                     iterator;
@@ -56,6 +79,22 @@
                         BOOST_DEDUCED_TYPENAME VoidPtrSet::const_iterator, const Key >
                     const_iterator;
 
+ typedef void_ptr_iterator<
+ BOOST_DEDUCED_TYPENAME
+ mpl::eval_if_c<Ordered,
+ select_iterator<VoidPtrSet>,
+ select_local_iterator<VoidPtrSet> >::type,
+ Key >
+ local_iterator;
+
+ typedef void_ptr_iterator<
+ BOOST_DEDUCED_TYPENAME
+ mpl::eval_if_c<Ordered,
+ select_iterator<VoidPtrSet>,
+ select_const_local_iterator<VoidPtrSet> >::type,
+ const Key >
+ const_local_iterator;
+
        template< class Iter >
        static Key* get_pointer( Iter i )
        {
@@ -77,13 +116,14 @@
     <
         class Key,
         class VoidPtrSet,
- class CloneAllocator = heap_clone_allocator
+ class CloneAllocator = heap_clone_allocator,
+ bool Ordered = true
>
     class ptr_set_adapter_base
- : public ptr_container_detail::associative_ptr_container< set_config<Key,VoidPtrSet>,
+ : public ptr_container_detail::associative_ptr_container< set_config<Key,VoidPtrSet,Ordered>,
                                                       CloneAllocator >
     {
- typedef ptr_container_detail::associative_ptr_container< set_config<Key,VoidPtrSet>,
+ typedef ptr_container_detail::associative_ptr_container< set_config<Key,VoidPtrSet,Ordered>,
                                                      CloneAllocator >
               base_type;
     public:
@@ -95,39 +135,65 @@
         typedef BOOST_DEDUCED_TYPENAME base_type::size_type
                       size_type;
 
- private:
+ public:
         ptr_set_adapter_base()
- : base_type( BOOST_DEDUCED_TYPENAME VoidPtrSet::key_compare(),
- BOOST_DEDUCED_TYPENAME VoidPtrSet::allocator_type() )
         { }
 
- public:
-
+ template< class SizeType >
+ ptr_set_adapter_base( SizeType n,
+ ptr_container_detail::unordered_associative_container_tag tag )
+ : base_type( n, tag )
+ { }
+
         template< class Compare, class Allocator >
         ptr_set_adapter_base( const Compare& comp,
                               const Allocator& a )
          : base_type( comp, a )
         { }
-
+
+ template< class Hash, class Pred, class Allocator >
+ ptr_set_adapter_base( const Hash& hash,
+ const Pred& pred,
+ const Allocator& a )
+ : base_type( hash, pred, a )
+ { }
+
+ template< class InputIterator >
+ ptr_set_adapter_base( InputIterator first, InputIterator last )
+ : base_type( first, last )
+ { }
+
         template< class InputIterator, class Compare, class Allocator >
         ptr_set_adapter_base( InputIterator first, InputIterator last,
                               const Compare& comp,
                               const Allocator& a )
          : base_type( first, last, comp, a )
         { }
-
- template< class U, class Set >
- explicit ptr_set_adapter_base( const ptr_set_adapter_base<U,Set>& r )
+
+ template< class InputIterator, class Hash, class Pred, class Allocator >
+ ptr_set_adapter_base( InputIterator first, InputIterator last,
+ const Hash& hash,
+ const Pred& pred,
+ const Allocator& a )
+ : base_type( first, last, hash, pred, a )
+ { }
+
+ template< class U, class Set, class CA, bool b >
+ explicit ptr_set_adapter_base( const ptr_set_adapter_base<U,Set,CA,b>& r )
           : base_type( r )
         { }
-
+
+ explicit ptr_set_adapter_base( const ptr_set_adapter_base& r )
+ : base_type( r )
+ { }
+
         template< class PtrContainer >
         explicit ptr_set_adapter_base( std::auto_ptr<PtrContainer> clone )
          : base_type( clone )
         { }
 
- template< class U, class Set >
- ptr_set_adapter_base& operator=( const ptr_set_adapter_base<U,Set>& r )
+ template< class U, class Set, class CA, bool b >
+ ptr_set_adapter_base& operator=( const ptr_set_adapter_base<U,Set,CA,b>& r )
         {
             base_type::operator=( r );
             return *this;
@@ -212,8 +278,13 @@
                 equal_range( const_cast<key_type*>(&x) );
             return make_iterator_range( const_iterator( p.first ),
                                         const_iterator( p.second ) );
- }
+ }
 
+ protected:
+ size_type bucket( const key_type& key ) const
+ {
+ return this->base().bucket( const_cast<key_type*>(&key) );
+ }
     };
 
 } // ptr_container_detail
@@ -226,12 +297,13 @@
     <
         class Key,
         class VoidPtrSet,
- class CloneAllocator = heap_clone_allocator
+ class CloneAllocator = heap_clone_allocator,
+ bool Ordered = true
>
     class ptr_set_adapter :
- public ptr_container_detail::ptr_set_adapter_base<Key,VoidPtrSet,CloneAllocator>
+ public ptr_container_detail::ptr_set_adapter_base<Key,VoidPtrSet,CloneAllocator,Ordered>
     {
- typedef ptr_container_detail::ptr_set_adapter_base<Key,VoidPtrSet,CloneAllocator>
+ typedef ptr_container_detail::ptr_set_adapter_base<Key,VoidPtrSet,CloneAllocator,Ordered>
             base_type;
     
     public: // typedefs
@@ -245,8 +317,6 @@
         typedef Key key_type;
         typedef BOOST_DEDUCED_TYPENAME base_type::auto_type
                      auto_type;
- typedef BOOST_DEDUCED_TYPENAME VoidPtrSet::key_compare
- key_compare;
         typedef BOOST_DEDUCED_TYPENAME VoidPtrSet::allocator_type
                      allocator_type;
     private:
@@ -263,17 +333,38 @@
         }
 
     public:
+ ptr_set_adapter()
+ { }
+
+ template< class SizeType >
+ ptr_set_adapter( SizeType n,
+ ptr_container_detail::unordered_associative_container_tag tag )
+ : base_type( n, tag )
+ { }
         
- explicit ptr_set_adapter( const key_compare& comp = key_compare(),
- const allocator_type& a = allocator_type() )
+ template< class Comp >
+ explicit ptr_set_adapter( const Comp& comp,
+ const allocator_type& a )
           : base_type( comp, a )
         {
             BOOST_ASSERT( this->empty() );
         }
 
+ template< class Hash, class Pred, class Allocator >
+ ptr_set_adapter( const Hash& hash,
+ const Pred& pred,
+ const Allocator& a )
+ : base_type( hash, pred, a )
+ { }
+
+ template< class InputIterator >
+ ptr_set_adapter( InputIterator first, InputIterator last )
+ : base_type( first, last )
+ { }
+
         template< class InputIterator, class Compare, class Allocator >
         ptr_set_adapter( InputIterator first, InputIterator last,
- const Compare& comp = Compare(),
+ const Compare& comp,
                          const Allocator a = Allocator() )
           : base_type( comp, a )
         {
@@ -281,8 +372,20 @@
             set_basic_clone_and_insert( first, last );
         }
 
- template< class U, class Set >
- explicit ptr_set_adapter( const ptr_set_adapter<U,Set>& r )
+ template< class InputIterator, class Hash, class Pred, class Allocator >
+ ptr_set_adapter( InputIterator first, InputIterator last,
+ const Hash& hash,
+ const Pred& pred,
+ const Allocator& a )
+ : base_type( first, last, hash, pred, a )
+ { }
+
+ explicit ptr_set_adapter( const ptr_set_adapter& r )
+ : base_type( r )
+ { }
+
+ template< class U, class Set, class CA, bool b >
+ explicit ptr_set_adapter( const ptr_set_adapter<U,Set,CA,b>& r )
           : base_type( r )
         { }
         
@@ -291,8 +394,8 @@
          : base_type( clone )
         { }
 
- template< class U, class Set >
- ptr_set_adapter& operator=( const ptr_set_adapter<U,Set>& r )
+ template< class U, class Set, class CA, bool b >
+ ptr_set_adapter& operator=( const ptr_set_adapter<U,Set,CA,b>& r )
         {
             base_type::operator=( r );
             return *this;
@@ -406,12 +509,13 @@
     <
         class Key,
         class VoidPtrMultiSet,
- class CloneAllocator = heap_clone_allocator
+ class CloneAllocator = heap_clone_allocator,
+ bool Ordered = true
>
     class ptr_multiset_adapter :
- public ptr_container_detail::ptr_set_adapter_base<Key,VoidPtrMultiSet,CloneAllocator>
+ public ptr_container_detail::ptr_set_adapter_base<Key,VoidPtrMultiSet,CloneAllocator,Ordered>
     {
- typedef ptr_container_detail::ptr_set_adapter_base<Key,VoidPtrMultiSet,CloneAllocator> base_type;
+ typedef ptr_container_detail::ptr_set_adapter_base<Key,VoidPtrMultiSet,CloneAllocator,Ordered> base_type;
     
     public: // typedefs
     
@@ -422,8 +526,6 @@
         typedef Key key_type;
         typedef BOOST_DEDUCED_TYPENAME base_type::auto_type
                        auto_type;
- typedef BOOST_DEDUCED_TYPENAME VoidPtrMultiSet::key_compare
- key_compare;
         typedef BOOST_DEDUCED_TYPENAME VoidPtrMultiSet::allocator_type
                        allocator_type;
     private:
@@ -438,23 +540,52 @@
         }
     
     public:
+ ptr_multiset_adapter()
+ { }
 
- ptr_multiset_adapter( const key_compare& comp = key_compare(),
- const allocator_type& a = allocator_type() )
+ template< class SizeType >
+ ptr_multiset_adapter( SizeType n,
+ ptr_container_detail::unordered_associative_container_tag tag )
+ : base_type( n, tag )
+ { }
+
+ template< class Comp >
+ explicit ptr_multiset_adapter( const Comp& comp,
+ const allocator_type& a )
         : base_type( comp, a )
         { }
-
+
+ template< class Hash, class Pred, class Allocator >
+ ptr_multiset_adapter( const Hash& hash,
+ const Pred& pred,
+ const Allocator& a )
+ : base_type( hash, pred, a )
+ { }
+
         template< class InputIterator >
+ ptr_multiset_adapter( InputIterator first, InputIterator last )
+ : base_type( first, last )
+ { }
+
+ template< class InputIterator, class Comp >
         ptr_multiset_adapter( InputIterator first, InputIterator last,
- const key_compare& comp = key_compare(),
+ const Comp& comp,
                               const allocator_type& a = allocator_type() )
         : base_type( comp, a )
         {
             set_basic_clone_and_insert( first, last );
         }
 
- template< class U, class Set >
- explicit ptr_multiset_adapter( const ptr_multiset_adapter<U,Set>& r )
+ template< class InputIterator, class Hash, class Pred, class Allocator >
+ ptr_multiset_adapter( InputIterator first, InputIterator last,
+ const Hash& hash,
+ const Pred& pred,
+ const Allocator& a )
+ : base_type( first, last, hash, pred, a )
+ { }
+
+ template< class U, class Set, class CA, bool b >
+ explicit ptr_multiset_adapter( const ptr_multiset_adapter<U,Set,CA,b>& r )
           : base_type( r )
         { }
         
@@ -463,8 +594,8 @@
          : base_type( clone )
         { }
 
- template< class U, class Set >
- ptr_multiset_adapter& operator=( const ptr_multiset_adapter<U,Set>& r )
+ template< class U, class Set, class CA, bool b >
+ ptr_multiset_adapter& operator=( const ptr_multiset_adapter<U,Set,CA,b>& r )
         {
             base_type::operator=( r );
             return *this;

Modified: branches/proto/v4/boost/ptr_container/serialize_ptr_container.hpp
==============================================================================
Binary files. No diff available.

Modified: branches/proto/v4/boost/python/type_id.hpp
==============================================================================
--- branches/proto/v4/boost/python/type_id.hpp (original)
+++ branches/proto/v4/boost/python/type_id.hpp 2008-06-05 01:50:03 EDT (Thu, 05 Jun 2008)
@@ -11,6 +11,7 @@
 # include <boost/operators.hpp>
 # include <typeinfo>
 # include <cstring>
+# include <ostream>
 # include <boost/static_assert.hpp>
 # include <boost/detail/workaround.hpp>
 # include <boost/type_traits/same_traits.hpp>

Modified: branches/proto/v4/boost/regex/v4/instances.hpp
==============================================================================
--- branches/proto/v4/boost/regex/v4/instances.hpp (original)
+++ branches/proto/v4/boost/regex/v4/instances.hpp 2008-06-05 01:50:03 EDT (Thu, 05 Jun 2008)
@@ -71,32 +71,39 @@
 # ifdef __GNUC__
 # define template __extension__ extern template
 # else
+# if BOOST_MSVC > 1310
+# define BOOST_REGEX_TEMPLATE_DECL
+# endif
 # define template extern template
 # endif
 # endif
 
+#ifndef BOOST_REGEX_TEMPLATE_DECL
+# define BOOST_REGEX_TEMPLATE_DECL BOOST_REGEX_DECL
+#endif
+
 # ifdef BOOST_MSVC
 # pragma warning(push)
 # pragma warning(disable : 4251 4231 4660)
 # endif
 
-template class BOOST_REGEX_DECL basic_regex< BOOST_REGEX_CHAR_T BOOST_REGEX_TRAITS_T >;
+template class BOOST_REGEX_TEMPLATE_DECL basic_regex< BOOST_REGEX_CHAR_T BOOST_REGEX_TRAITS_T >;
 
 #if !BOOST_WORKAROUND(BOOST_MSVC, < 1300)
-template class BOOST_REGEX_DECL match_results< const BOOST_REGEX_CHAR_T* >;
+template class BOOST_REGEX_TEMPLATE_DECL match_results< const BOOST_REGEX_CHAR_T* >;
 #endif
 #ifndef BOOST_NO_STD_ALLOCATOR
-template class BOOST_REGEX_DECL ::boost::re_detail::perl_matcher<BOOST_REGEX_CHAR_T const *, match_results< const BOOST_REGEX_CHAR_T* >::allocator_type BOOST_REGEX_TRAITS_T >;
+template class BOOST_REGEX_TEMPLATE_DECL ::boost::re_detail::perl_matcher<BOOST_REGEX_CHAR_T const *, match_results< const BOOST_REGEX_CHAR_T* >::allocator_type BOOST_REGEX_TRAITS_T >;
 #endif
 #if !(defined(BOOST_DINKUMWARE_STDLIB) && (BOOST_DINKUMWARE_STDLIB <= 1))\
    && !(defined(BOOST_INTEL_CXX_VERSION) && (BOOST_INTEL_CXX_VERSION <= 800))\
    && !(defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION))\
    && !defined(BOOST_REGEX_ICU_INSTANCES)
 #if !BOOST_WORKAROUND(BOOST_MSVC, < 1300)
-template class BOOST_REGEX_DECL match_results< std::basic_string<BOOST_REGEX_CHAR_T>::const_iterator >;
+template class BOOST_REGEX_TEMPLATE_DECL match_results< std::basic_string<BOOST_REGEX_CHAR_T>::const_iterator >;
 #endif
 #ifndef BOOST_NO_STD_ALLOCATOR
-template class BOOST_REGEX_DECL ::boost::re_detail::perl_matcher< std::basic_string<BOOST_REGEX_CHAR_T>::const_iterator, match_results< std::basic_string<BOOST_REGEX_CHAR_T>::const_iterator >::allocator_type, boost::regex_traits<BOOST_REGEX_CHAR_T > >;
+template class BOOST_REGEX_TEMPLATE_DECL ::boost::re_detail::perl_matcher< std::basic_string<BOOST_REGEX_CHAR_T>::const_iterator, match_results< std::basic_string<BOOST_REGEX_CHAR_T>::const_iterator >::allocator_type, boost::regex_traits<BOOST_REGEX_CHAR_T > >;
 #endif
 #endif
 
@@ -109,6 +116,8 @@
 # undef template
 # endif
 
+#undef BOOST_REGEX_TEMPLATE_DECL
+
 #elif (defined(__GNUC__) && (__GNUC__ >= 3))
 
 # ifndef BOOST_REGEX_INSTANTIATE

Modified: branches/proto/v4/boost/thread/detail/thread.hpp
==============================================================================
--- branches/proto/v4/boost/thread/detail/thread.hpp (original)
+++ branches/proto/v4/boost/thread/detail/thread.hpp 2008-06-05 01:50:03 EDT (Thu, 05 Jun 2008)
@@ -311,6 +311,11 @@
         bool interruption_requested() const;
     };
 
+ inline void swap(thread& lhs,thread& rhs)
+ {
+ return lhs.swap(rhs);
+ }
+
 #ifdef BOOST_HAS_RVALUE_REFS
     inline thread&& move(thread&& t)
     {

Modified: branches/proto/v4/boost/thread/pthread/mutex.hpp
==============================================================================
--- branches/proto/v4/boost/thread/pthread/mutex.hpp (original)
+++ branches/proto/v4/boost/thread/pthread/mutex.hpp 2008-06-05 01:50:03 EDT (Thu, 05 Jun 2008)
@@ -11,9 +11,6 @@
 #include <boost/thread/locks.hpp>
 #include <boost/thread/thread_time.hpp>
 #include <boost/assert.hpp>
-#ifndef _WIN32
-#include <unistd.h>
-#endif
 #include <errno.h>
 #include "timespec.hpp"
 #include "pthread_mutex_scoped_lock.hpp"

Modified: branches/proto/v4/boost/thread/pthread/timespec.hpp
==============================================================================
--- branches/proto/v4/boost/thread/pthread/timespec.hpp (original)
+++ branches/proto/v4/boost/thread/pthread/timespec.hpp 2008-06-05 01:50:03 EDT (Thu, 05 Jun 2008)
@@ -21,7 +21,7 @@
     {
         inline struct timespec get_timespec(boost::system_time const& abs_time)
         {
- struct timespec timeout={0};
+ struct timespec timeout={0,0};
             boost::posix_time::time_duration const time_since_epoch=abs_time-boost::posix_time::from_time_t(0);
             
             timeout.tv_sec=time_since_epoch.total_seconds();

Modified: branches/proto/v4/boost/thread/win32/condition_variable.hpp
==============================================================================
--- branches/proto/v4/boost/thread/win32/condition_variable.hpp (original)
+++ branches/proto/v4/boost/thread/win32/condition_variable.hpp 2008-06-05 01:50:03 EDT (Thu, 05 Jun 2008)
@@ -23,35 +23,96 @@
 {
     namespace detail
     {
+ class basic_cv_list_entry;
+ void intrusive_ptr_add_ref(basic_cv_list_entry * p);
+ void intrusive_ptr_release(basic_cv_list_entry * p);
+
+ class basic_cv_list_entry
+ {
+ private:
+ detail::win32::handle_manager semaphore;
+ detail::win32::handle_manager wake_sem;
+ long waiters;
+ bool notified;
+ long references;
+
+ basic_cv_list_entry(basic_cv_list_entry&);
+ void operator=(basic_cv_list_entry&);
+
+ public:
+ explicit basic_cv_list_entry(detail::win32::handle_manager const& wake_sem_):
+ semaphore(detail::win32::create_anonymous_semaphore(0,LONG_MAX)),
+ wake_sem(wake_sem_.duplicate()),
+ waiters(1),notified(false),references(0)
+ {}
+
+ static bool no_waiters(boost::intrusive_ptr<basic_cv_list_entry> const& entry)
+ {
+ return !detail::interlocked_read_acquire(&entry->waiters);
+ }
+
+ void add_waiter()
+ {
+ BOOST_INTERLOCKED_INCREMENT(&waiters);
+ }
+
+ void remove_waiter()
+ {
+ BOOST_INTERLOCKED_DECREMENT(&waiters);
+ }
+
+ void release(unsigned count_to_release)
+ {
+ notified=true;
+ detail::win32::ReleaseSemaphore(semaphore,count_to_release,0);
+ }
+
+ void release_waiters()
+ {
+ release(detail::interlocked_read_acquire(&waiters));
+ }
+
+ bool is_notified() const
+ {
+ return notified;
+ }
+
+ bool wait(timeout wait_until)
+ {
+ return this_thread::interruptible_wait(semaphore,wait_until);
+ }
+
+ bool woken()
+ {
+ unsigned long const woken_result=detail::win32::WaitForSingleObject(wake_sem,0);
+ BOOST_ASSERT((woken_result==detail::win32::timeout) || (woken_result==0));
+ return woken_result==0;
+ }
+
+ friend void intrusive_ptr_add_ref(basic_cv_list_entry * p);
+ friend void intrusive_ptr_release(basic_cv_list_entry * p);
+ };
+
+ inline void intrusive_ptr_add_ref(basic_cv_list_entry * p)
+ {
+ BOOST_INTERLOCKED_INCREMENT(&p->references);
+ }
+
+ inline void intrusive_ptr_release(basic_cv_list_entry * p)
+ {
+ if(!BOOST_INTERLOCKED_DECREMENT(&p->references))
+ {
+ delete p;
+ }
+ }
+
         class basic_condition_variable
         {
             boost::mutex internal_mutex;
             long total_count;
             unsigned active_generation_count;
 
- struct list_entry
- {
- detail::win32::handle_manager semaphore;
- detail::win32::handle_manager wake_sem;
- long waiters;
- bool notified;
- long references;
-
- list_entry():
- semaphore(detail::win32::create_anonymous_semaphore(0,LONG_MAX)),
- wake_sem(0),
- waiters(1),notified(false),references(0)
- {}
-
- void release(unsigned count_to_release)
- {
- notified=true;
- detail::win32::ReleaseSemaphore(semaphore,count_to_release,0);
- }
- };
-
- friend void intrusive_ptr_add_ref(list_entry * p);
- friend void intrusive_ptr_release(list_entry * p);
+ typedef basic_cv_list_entry list_entry;
 
             typedef boost::intrusive_ptr<list_entry> entry_ptr;
             typedef std::vector<entry_ptr> generation_list;
@@ -104,16 +165,15 @@
                 }
 
                 detail::interlocked_write_release(&total_count,total_count+1);
- if(generations.empty() || generations.back()->notified)
+ if(generations.empty() || generations.back()->is_notified())
                 {
- entry_ptr new_entry(new list_entry);
- new_entry->wake_sem=wake_sem.duplicate();
+ entry_ptr new_entry(new list_entry(wake_sem));
                     generations.push_back(new_entry);
                     return new_entry;
                 }
                 else
                 {
- BOOST_INTERLOCKED_INCREMENT(&generations.back()->waiters);
+ generations.back()->add_waiter();
                     return generations.back();
                 }
             }
@@ -128,7 +188,7 @@
                     
                 ~entry_manager()
                 {
- BOOST_INTERLOCKED_DECREMENT(&entry->waiters);
+ entry->remove_waiter();
                 }
 
                 list_entry* operator->()
@@ -155,15 +215,12 @@
                 bool woken=false;
                 while(!woken)
                 {
- if(!this_thread::interruptible_wait(entry->semaphore,wait_until))
+ if(!entry->wait(wait_until))
                     {
                         return false;
                     }
                 
- unsigned long const woken_result=detail::win32::WaitForSingleObject(entry->wake_sem,0);
- BOOST_ASSERT(woken_result==detail::win32::timeout || woken_result==0);
-
- woken=(woken_result==0);
+ woken=entry->woken();
                 }
                 return woken;
             }
@@ -182,10 +239,6 @@
             basic_condition_variable(const basic_condition_variable& other);
             basic_condition_variable& operator=(const basic_condition_variable& other);
 
- static bool no_waiters(entry_ptr const& entry)
- {
- return !detail::interlocked_read_acquire(&entry->waiters);
- }
         public:
             basic_condition_variable():
                 total_count(0),active_generation_count(0),wake_sem(0)
@@ -211,7 +264,7 @@
                     {
                         (*it)->release(1);
                     }
- generations.erase(std::remove_if(generations.begin(),generations.end(),no_waiters),generations.end());
+ generations.erase(std::remove_if(generations.begin(),generations.end(),&basic_cv_list_entry::no_waiters),generations.end());
                 }
             }
         
@@ -229,7 +282,7 @@
                             end=generations.end();
                         it!=end;++it)
                     {
- (*it)->release(detail::interlocked_read_acquire(&(*it)->waiters));
+ (*it)->release_waiters();
                     }
                     generations.clear();
                     wake_sem=detail::win32::handle(0);
@@ -237,20 +290,6 @@
             }
         
         };
- inline void intrusive_ptr_add_ref(basic_condition_variable::list_entry * p)
- {
- BOOST_INTERLOCKED_INCREMENT(&p->references);
- }
-
- inline void intrusive_ptr_release(basic_condition_variable::list_entry * p)
- {
- if(!BOOST_INTERLOCKED_DECREMENT(&p->references))
- {
- delete p;
- }
- }
-
-
     }
 
     class condition_variable:

Modified: branches/proto/v4/boost/thread/xtime.hpp
==============================================================================
--- branches/proto/v4/boost/thread/xtime.hpp (original)
+++ branches/proto/v4/boost/thread/xtime.hpp 2008-06-05 01:50:03 EDT (Thu, 05 Jun 2008)
@@ -58,7 +58,7 @@
 
 inline xtime get_xtime(boost::system_time const& abs_time)
 {
- xtime res={0};
+ xtime res;
     boost::posix_time::time_duration const time_since_epoch=abs_time-boost::posix_time::from_time_t(0);
             
     res.sec=static_cast<xtime::xtime_sec_t>(time_since_epoch.total_seconds());

Modified: branches/proto/v4/boost/type_traits/alignment_of.hpp
==============================================================================
--- branches/proto/v4/boost/type_traits/alignment_of.hpp (original)
+++ branches/proto/v4/boost/type_traits/alignment_of.hpp 2008-06-05 01:50:03 EDT (Thu, 05 Jun 2008)
@@ -12,6 +12,7 @@
 #include <boost/config.hpp>
 #include <cstddef>
 
+#include <boost/type_traits/intrinsics.hpp>
 // should be the last #include
 #include <boost/type_traits/detail/size_t_trait_def.hpp>
 
@@ -55,11 +56,21 @@
 template< typename T >
 struct alignment_of_impl
 {
+#ifndef BOOST_ALIGNMENT_OF
     BOOST_STATIC_CONSTANT(std::size_t, value =
         (::boost::detail::alignment_logic<
             sizeof(::boost::detail::alignment_of_hack<T>) - sizeof(T),
             sizeof(T)
>::value));
+#else
+ //
+ // We put this here, rather than in the definition of
+ // alignment_of below, because MSVC's __alignof doesn't
+ // always work in that context for some unexplained reason.
+ // (See type_with_alignment tests for test cases).
+ //
+ BOOST_STATIC_CONSTANT(std::size_t, value = BOOST_ALIGNMENT_OF(T));
+#endif
 };
 
 } // namespace detail

Modified: branches/proto/v4/boost/type_traits/intrinsics.hpp
==============================================================================
--- branches/proto/v4/boost/type_traits/intrinsics.hpp (original)
+++ branches/proto/v4/boost/type_traits/intrinsics.hpp 2008-06-05 01:50:03 EDT (Thu, 05 Jun 2008)
@@ -42,6 +42,7 @@
 // BOOST_IS_CONVERTIBLE(T,U) true if T is convertible to U
 // BOOST_IS_ENUM(T) true is T is an enum
 // BOOST_IS_POLYMORPHIC(T) true if T is a polymorphic type
+// BOOST_ALIGNMENT_OF(T) should evaluate to the alignment requirements of type T.
 
 #ifdef BOOST_HAS_SGI_TYPE_TRAITS
     // Hook into SGI's __type_traits class, this will pick up user supplied
@@ -104,6 +105,7 @@
 # define BOOST_IS_ENUM(T) __is_enum(T)
 // This one doesn't quite always do the right thing:
 // # define BOOST_IS_POLYMORPHIC(T) __is_polymorphic(T)
+# define BOOST_ALIGNMENT_OF(T) __alignof(T)
 
 # define BOOST_HAS_TYPE_TRAITS_INTRINSICS
 #endif
@@ -146,6 +148,7 @@
 # define BOOST_IS_CLASS(T) __is_class(T)
 # define BOOST_IS_ENUM(T) __is_enum(T)
 # define BOOST_IS_POLYMORPHIC(T) __is_polymorphic(T)
+# define BOOST_ALIGNMENT_OF(T) __alignof__(T)
 
 # define BOOST_HAS_TYPE_TRAITS_INTRINSICS
 #endif

Modified: branches/proto/v4/libs/exception/doc/source/boost-exception.reno
==============================================================================
--- branches/proto/v4/libs/exception/doc/source/boost-exception.reno (original)
+++ branches/proto/v4/libs/exception/doc/source/boost-exception.reno 2008-06-05 01:50:03 EDT (Thu, 05 Jun 2008)
@@ -62,27 +62,27 @@
                                                                                                                                         <stream_hook_path>
                                                                                                                                                 <container>
                                                                                                                                                         <size>1</size>
- <strong>A9C65F105342D728DE9C996079E82DF25408B94A272090039FAAC12D29659F69</strong>
- <weak>2378831669</weak>
- <size>94</size>
- <position>227</position>
+ <strong>D9B8E6AA12A4F33953B1A961FA590C5A3840234B6531CA8C04AC985AD5800835</strong>
+ <weak>2432554768</weak>
+ <size>702</size>
+ <position>408</position>
                                                                                                                                                 </container>
                                                                                                                                         </stream_hook_path>
                                                                                                                                 </hook>
                                                                                                                                 <file>
                                                                                                                                         <path>
                                                                                                                                                 <empty>0</empty>
- <string>../../../../boost/exception/enable_current_exception.hpp</string>
+ <string>../../example/enable_error_info.cpp</string>
                                                                                                                                                 <type>0</type>
                                                                                                                                                 <base>0</base>
                                                                                                                                         </path>
                                                                                                                                 </file>
                                                                                                                         </hook>
                                                                                                                         <title>
- <string>boost/exception/enable_current_exception.hpp</string>
+ <string>Tutorial: Integrating Boost Exception in Existing Exception Class Hierarchies</string>
                                                                                                                         </title>
                                                                                                                         <file_name>
- <string>exception_enable_exception_cloning_hpp</string>
+ <string>using_enable_error_info</string>
                                                                                                                         </file_name>
                                                                                                                 </object>
                                                                                                         </shared_ptr>
@@ -90,7 +90,7 @@
                                                                                                 <container>
                                                                                                         <size>1</size>
                                                                                                         <variant>2</variant>
- <string>!!!boost/exception/enable_current_exception.hpp&#10;&#10;This header file contains the following definitions/declarations:&#10;&#10;(:pagelist link=&quot;backlink&quot; layer=&quot;synopsis&quot;:)&#10;</string>
+ <string>(:include include:)&#10;&#10;!!!See also:&#10;&#10;(:pagelist link=&quot;backlink&quot; except_tags=&quot;noalso&quot;:)&#10;</string>
                                                                                                 </container>
                                                                                         </pair>
                                                                                         <pair>
@@ -107,27 +107,27 @@
                                                                                                                                         <stream_hook_path>
                                                                                                                                                 <container>
                                                                                                                                                         <size>1</size>
- <strong>DFB8EFE8A4EE9FB101DC20A69A4217A96B78A272D7DE88D579CFE8ECCC070531</strong>
- <weak>2228033283</weak>
- <size>94</size>
- <position>227</position>
+ <strong>AEB5EEC1A44A4F0B184A6F73617CB57E82CE06A15DB6036D54109C66CDE06EFF</strong>
+ <weak>625364235</weak>
+ <size>290</size>
+ <position>302</position>
                                                                                                                                                 </container>
                                                                                                                                         </stream_hook_path>
                                                                                                                                 </hook>
                                                                                                                                 <file>
                                                                                                                                         <path>
                                                                                                                                                 <empty>0</empty>
- <string>../../../../boost/exception/enable_error_info.hpp</string>
+ <string>../../example/logging.cpp</string>
                                                                                                                                                 <type>0</type>
                                                                                                                                                 <base>0</base>
                                                                                                                                         </path>
                                                                                                                                 </file>
                                                                                                                         </hook>
                                                                                                                         <title>
- <string>boost/exception/enable_error_info.hpp</string>
+ <string>Tutorial: Logging of boost::exception Objects</string>
                                                                                                                         </title>
                                                                                                                         <file_name>
- <string>exception_enable_error_info_hpp</string>
+ <string>logging</string>
                                                                                                                         </file_name>
                                                                                                                 </object>
                                                                                                         </shared_ptr>
@@ -135,7 +135,7 @@
                                                                                                 <container>
                                                                                                         <size>1</size>
                                                                                                         <variant>2</variant>
- <string>!!!boost/exception/enable_error_info.hpp&#10;&#10;&#10;&#10;This header file contains the following definitions/declarations:&#10;&#10;(:pagelist link=&quot;backlink&quot; layer=&quot;synopsis&quot;:)&#10;</string>
+ <string>(:include include:)&#10;&#10;!!!See also:&#10;&#10;(:pagelist link=&quot;backlink&quot; except_tags=&quot;noalso&quot;:)&#10;</string>
                                                                                                 </container>
                                                                                         </pair>
                                                                                         <pair>
@@ -151,28 +151,32 @@
                                                                                                                                 <hook>
                                                                                                                                         <stream_hook_path>
                                                                                                                                                 <container>
- <size>1</size>
- <strong>CAD6C404CB725D336A44920D2341ECA131149AB02C368B59028F8147F16737BF</strong>
- <weak>2258638601</weak>
- <size>94</size>
- <position>227</position>
+ <size>2</size>
+ <strong>49EA85868C2355F4F7ED6CF9D05FDC08547EF85F76913E1FDBBC96F8712C6C83</strong>
+ <weak>385672468</weak>
+ <size>2694</size>
+ <position>503</position>
+ <strong>041A9EA55D30804689CD4DEB864994D595EDF33378B25EA81DB5DA2CF402E542</strong>
+ <weak>1211481835</weak>
+ <size>1683</size>
+ <position>846</position>
                                                                                                                                                 </container>
                                                                                                                                         </stream_hook_path>
                                                                                                                                 </hook>
                                                                                                                                 <file>
                                                                                                                                         <path>
                                                                                                                                                 <empty>0</empty>
- <string>../../../../boost/exception/info_tuple.hpp</string>
+ <string>../../../../boost/exception/exception.hpp</string>
                                                                                                                                                 <type>0</type>
                                                                                                                                                 <base>0</base>
                                                                                                                                         </path>
                                                                                                                                 </file>
                                                                                                                         </hook>
                                                                                                                         <title>
- <string>boost/exception/info_tuple.hpp</string>
+ <string>exception</string>
                                                                                                                         </title>
                                                                                                                         <file_name>
- <string>exception_error_info_group_hpp</string>
+ <string></string>
                                                                                                                         </file_name>
                                                                                                                 </object>
                                                                                                         </shared_ptr>
@@ -180,7 +184,7 @@
                                                                                                 <container>
                                                                                                         <size>1</size>
                                                                                                         <variant>2</variant>
- <string>!!!boost/exception/info_tuple.hpp&#10;&#10;This header file contains the following definitions/declarations:&#10;&#10;(:pagelist link=&quot;backlink&quot; layer=&quot;synopsis&quot;:)&#10;</string>
+ <string>(:include include:)&#10;&#10;!!!See also:&#10;&#10;(:pagelist link=&quot;backlink&quot; except_tags=&quot;noalso&quot;:)&#10;</string>
                                                                                                 </container>
                                                                                         </pair>
                                                                                         <pair>
@@ -196,88 +200,83 @@
                                                                                                                                 <hook>
                                                                                                                                         <stream_hook_path>
                                                                                                                                                 <container>
- <size>1</size>
- <strong>EB524A8A61E5F1A93CE4336B980696C09E7ADF42A6B933BA76EFB1544AB7C4CC</strong>
- <weak>2274957083</weak>
- <size>94</size>
- <position>227</position>
+ <size>2</size>
+ <strong>427FFBF157B284A9FB0CF4FAEC4A9BB2ADA8AC6CB4F4C329FAE0FED649640E3E</strong>
+ <weak>2573550761</weak>
+ <size>6200</size>
+ <position>737</position>
+ <strong>27AC1164E0A824D548386BEDCDC81DCAC283F3D286B0ECEE05B039BB8C392BFC</strong>
+ <weak>1247954090</weak>
+ <size>249</size>
+ <position>1599</position>
                                                                                                                                                 </container>
                                                                                                                                         </stream_hook_path>
                                                                                                                                 </hook>
                                                                                                                                 <file>
                                                                                                                                         <path>
                                                                                                                                                 <empty>0</empty>
- <string>../../../../boost/exception/error_info.hpp</string>
+ <string>../../../../boost/exception/info.hpp</string>
                                                                                                                                                 <type>0</type>
                                                                                                                                                 <base>0</base>
                                                                                                                                         </path>
                                                                                                                                 </file>
                                                                                                                         </hook>
                                                                                                                         <title>
- <string>boost/exception/error_info.hpp</string>
+ <string>operator&lt;&lt;/exception</string>
                                                                                                                         </title>
                                                                                                                         <file_name>
- <string>exception_error_info_value_hpp</string>
+ <string></string>
                                                                                                                         </file_name>
                                                                                                                 </object>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
- <size>3</size>
- <variant>2</variant>
- <string>!!!boost/exception/error_info.hpp&#10;&#10;This header file contains the following declaration:&#10;&#10;[@namespace&#10;boost&#10; {&#10; template &lt;class Tag, class T&gt;&#10; class (:link </string>
- <variant>1</variant>
- <weak_ptr>
- <expired>0</expired>
- <shared_ptr>
- <id>9</id>
- <type>
- <string>reno_context</string>
- </type>
- <object>
- <hook>
- <hook>
- <stream_hook_path>
- <container>
- <size>2</size>
- <strong>427FFBF157B284A9FB0CF4FAEC4A9BB2ADA8AC6CB4F4C329FAE0FED649640E3E</strong>
- <weak>2573550761</weak>
- <size>6200</size>
- <position>737</position>
- <strong>865A7E598C4F2EDA41CCDFAD253F5E4699012898C97E29E3CB1C68DABA0C62B1</strong>
- <weak>2395321958</weak>
- <size>721</size>
- <position>726</position>
- </container>
- </stream_hook_path>
- </hook>
- <file>
- <path>
- <empty>0</empty>
- <string>../../../../boost/exception/info.hpp</string>
- <type>0</type>
- <base>0</base>
- </path>
- </file>
- </hook>
- <title>
- <string>error_info</string>
- </title>
- <file_name>
- <string></string>
- </file_name>
- </object>
- </shared_ptr>
- </weak_ptr>
+ <size>1</size>
                                                                                                         <variant>2</variant>
- <string>:);&#10; }@]&#10;</string>
+ <string>(:include include:)&#10;&#10;!!!See also:&#10;&#10;(:pagelist link=&quot;backlink&quot; except_tags=&quot;noalso&quot;:)&#10;</string>
                                                                                                 </container>
                                                                                         </pair>
                                                                                         <pair>
                                                                                                 <weak_ptr>
                                                                                                         <expired>0</expired>
                                                                                                         <shared_ptr>
- <id>-9</id>
+ <id>9</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>2</size>
+ <strong>427FFBF157B284A9FB0CF4FAEC4A9BB2ADA8AC6CB4F4C329FAE0FED649640E3E</strong>
+ <weak>2573550761</weak>
+ <size>6200</size>
+ <position>737</position>
+ <strong>65D13C1BB0A16823F69A32BAB56A51CA317075C7FC8B7441EE0D9B57AF5AB2AC</strong>
+ <weak>2592266329</weak>
+ <size>712</size>
+ <position>1850</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/exception/info.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>get_error_info</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
@@ -299,25 +298,29 @@
                                                                                                                                 <hook>
                                                                                                                                         <stream_hook_path>
                                                                                                                                                 <container>
- <size>1</size>
- <strong>49D31376D97691F7C84A134B5D8C7C66EF1ED6901D376CA250D634AE2B38AB5E</strong>
- <weak>549270010</weak>
- <size>163</size>
- <position>572</position>
+ <size>2</size>
+ <strong>E285EAA0D81E350113B888423C3FA5D2071F070FCA2759D99666EE07C0F8449F</strong>
+ <weak>4208148208</weak>
+ <size>2125</size>
+ <position>457</position>
+ <strong>ACC64445E8B6AAEF58395C0083BC0247CDE33AC00ED8DB9B7B4F216325DEE410</strong>
+ <weak>2943579912</weak>
+ <size>400</size>
+ <position>1719</position>
                                                                                                                                                 </container>
                                                                                                                                         </stream_hook_path>
                                                                                                                                 </hook>
                                                                                                                                 <file>
                                                                                                                                         <path>
                                                                                                                                                 <empty>0</empty>
- <string>../../../../boost/exception/info.hpp</string>
+ <string>../../../../boost/exception/enable_error_info.hpp</string>
                                                                                                                                                 <type>0</type>
                                                                                                                                                 <base>0</base>
                                                                                                                                         </path>
                                                                                                                                 </file>
                                                                                                                         </hook>
                                                                                                                         <title>
- <string>BOOST_ERROR_INFO</string>
+ <string>enable_error_info</string>
                                                                                                                         </title>
                                                                                                                         <file_name>
                                                                                                                                 <string></string>
@@ -349,10 +352,10 @@
                                                                                                                                                         <weak>3833800883</weak>
                                                                                                                                                         <size>4832</size>
                                                                                                                                                         <position>514</position>
- <strong>ED09F845070FF7D381BE5EFB6B55313FD09FBA16B64B69992410380EFA45519C</strong>
- <weak>2051939590</weak>
- <size>78</size>
- <position>409</position>
+ <strong>156B870761DB092CE4269C1173B479A344A1041BA2B883765AF19A72B371D776</strong>
+ <weak>3239976720</weak>
+ <size>117</size>
+ <position>4709</position>
                                                                                                                                                 </container>
                                                                                                                                         </stream_hook_path>
                                                                                                                                 </hook>
@@ -366,7 +369,7 @@
                                                                                                                                 </file>
                                                                                                                         </hook>
                                                                                                                         <title>
- <string>exception_ptr</string>
+ <string>rethrow_exception</string>
                                                                                                                         </title>
                                                                                                                         <file_name>
                                                                                                                                 <string></string>
@@ -393,32 +396,28 @@
                                                                                                                                 <hook>
                                                                                                                                         <stream_hook_path>
                                                                                                                                                 <container>
- <size>2</size>
- <strong>973F8368D72D56424349CBB81C8F3015CB9F4F0CD7B23A8C62C3DBADDA37CD57</strong>
- <weak>3833800883</weak>
- <size>4832</size>
- <position>514</position>
- <strong>921FBF6991E17349BFF2AD6F165372F85AA9457DDB28E502ABB6B392BBA6B529</strong>
- <weak>3119269037</weak>
- <size>284</size>
- <position>4423</position>
+ <size>1</size>
+ <strong>E64E4DFB1DC251F844260AE133EFD419677D0F7143D65B578DEE525492F6B624</strong>
+ <weak>2172131053</weak>
+ <size>94</size>
+ <position>227</position>
                                                                                                                                                 </container>
                                                                                                                                         </stream_hook_path>
                                                                                                                                 </hook>
                                                                                                                                 <file>
                                                                                                                                         <path>
                                                                                                                                                 <empty>0</empty>
- <string>../../../../boost/exception_ptr.hpp</string>
+ <string>../../../../boost/exception.hpp</string>
                                                                                                                                                 <type>0</type>
                                                                                                                                                 <base>0</base>
                                                                                                                                         </path>
                                                                                                                                 </file>
                                                                                                                         </hook>
                                                                                                                         <title>
- <string>copy_exception</string>
+ <string>boost/exception.hpp</string>
                                                                                                                         </title>
                                                                                                                         <file_name>
- <string></string>
+ <string>exception_hpp</string>
                                                                                                                         </file_name>
                                                                                                                 </object>
                                                                                                         </shared_ptr>
@@ -426,7 +425,7 @@
                                                                                                 <container>
                                                                                                         <size>1</size>
                                                                                                         <variant>2</variant>
- <string>(:include include:)&#10;&#10;!!!See also:&#10;&#10;(:pagelist link=&quot;backlink&quot; except_tags=&quot;noalso&quot;:)&#10;</string>
+ <string>!!!boost/exception.hpp&#10;&#10;This header file includes all other header files of Boost Exception:&#10;&#10;(:pagelist tags=&quot;header&quot;:)&#10;</string>
                                                                                                 </container>
                                                                                         </pair>
                                                                                         <pair>
@@ -774,6 +773,42 @@
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
+ <id>-5</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)&#10;##(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-18</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)&#10;##(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-6</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)&#10;#Documentation&#10;##Class @@(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-7</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)@@&#10;##Transporting of Arbitrary Data to the Catch Site&#10;###@@(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
                                                                                                                         <id>21</id>
                                                                                                                         <type>
                                                                                                                                 <string>reno_context</string>
@@ -783,43 +818,65 @@
                                                                                                                                         <hook>
                                                                                                                                                 <stream_hook_path>
                                                                                                                                                         <container>
- <size>1</size>
- <strong>D9B8E6AA12A4F33953B1A961FA590C5A3840234B6531CA8C04AC985AD5800835</strong>
- <weak>2432554768</weak>
- <size>702</size>
- <position>408</position>
+ <size>2</size>
+ <strong>427FFBF157B284A9FB0CF4FAEC4A9BB2ADA8AC6CB4F4C329FAE0FED649640E3E</strong>
+ <weak>2573550761</weak>
+ <size>6200</size>
+ <position>737</position>
+ <strong>865A7E598C4F2EDA41CCDFAD253F5E4699012898C97E29E3CB1C68DABA0C62B1</strong>
+ <weak>2395321958</weak>
+ <size>721</size>
+ <position>726</position>
                                                                                                                                                         </container>
                                                                                                                                                 </stream_hook_path>
                                                                                                                                         </hook>
                                                                                                                                         <file>
                                                                                                                                                 <path>
                                                                                                                                                         <empty>0</empty>
- <string>../../example/enable_error_info.cpp</string>
+ <string>../../../../boost/exception/info.hpp</string>
                                                                                                                                                         <type>0</type>
                                                                                                                                                         <base>0</base>
                                                                                                                                                 </path>
                                                                                                                                         </file>
                                                                                                                                 </hook>
                                                                                                                                 <title>
- <string>Tutorial: Integrating Boost Exception in Existing Exception Class Hierarchies</string>
+ <string>error_info</string>
                                                                                                                                 </title>
                                                                                                                                 <file_name>
- <string>using_enable_error_info</string>
+ <string></string>
                                                                                                                                 </file_name>
                                                                                                                         </object>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:)&#10;##(:link </string>
+ <string>:)@@&#10;###@@(:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-18</id>
+ <id>-8</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:)&#10;##(:link </string>
+ <string>|operator&lt;&lt;:)()@@&#10;###@@(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-9</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)()@@&#10;###@@(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-10</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)()@@&#10;###@@(:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
@@ -834,33 +891,33 @@
                                                                                                                                                 <stream_hook_path>
                                                                                                                                                         <container>
                                                                                                                                                                 <size>1</size>
- <strong>AEB5EEC1A44A4F0B184A6F73617CB57E82CE06A15DB6036D54109C66CDE06EFF</strong>
- <weak>625364235</weak>
- <size>290</size>
- <position>302</position>
+ <strong>49D31376D97691F7C84A134B5D8C7C66EF1ED6901D376CA250D634AE2B38AB5E</strong>
+ <weak>549270010</weak>
+ <size>163</size>
+ <position>572</position>
                                                                                                                                                         </container>
                                                                                                                                                 </stream_hook_path>
                                                                                                                                         </hook>
                                                                                                                                         <file>
                                                                                                                                                 <path>
                                                                                                                                                         <empty>0</empty>
- <string>../../example/logging.cpp</string>
+ <string>../../../../boost/exception/info.hpp</string>
                                                                                                                                                         <type>0</type>
                                                                                                                                                         <base>0</base>
                                                                                                                                                 </path>
                                                                                                                                         </file>
                                                                                                                                 </hook>
                                                                                                                                 <title>
- <string>Tutorial: Logging of boost::exception Objects</string>
+ <string>BOOST_ERROR_INFO</string>
                                                                                                                                 </title>
                                                                                                                                 <file_name>
- <string>logging</string>
+ <string></string>
                                                                                                                                 </file_name>
                                                                                                                         </object>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:)&#10;#Documentation&#10;##Class @@(:link </string>
+ <string>:)@@&#10;##Transporting of Exceptions between Threads&#10;###@@(:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
@@ -875,28 +932,28 @@
                                                                                                                                                 <stream_hook_path>
                                                                                                                                                         <container>
                                                                                                                                                                 <size>2</size>
- <strong>49EA85868C2355F4F7ED6CF9D05FDC08547EF85F76913E1FDBBC96F8712C6C83</strong>
- <weak>385672468</weak>
- <size>2694</size>
- <position>503</position>
- <strong>041A9EA55D30804689CD4DEB864994D595EDF33378B25EA81DB5DA2CF402E542</strong>
- <weak>1211481835</weak>
- <size>1683</size>
- <position>846</position>
+ <strong>973F8368D72D56424349CBB81C8F3015CB9F4F0CD7B23A8C62C3DBADDA37CD57</strong>
+ <weak>3833800883</weak>
+ <size>4832</size>
+ <position>514</position>
+ <strong>ED09F845070FF7D381BE5EFB6B55313FD09FBA16B64B69992410380EFA45519C</strong>
+ <weak>2051939590</weak>
+ <size>78</size>
+ <position>409</position>
                                                                                                                                                         </container>
                                                                                                                                                 </stream_hook_path>
                                                                                                                                         </hook>
                                                                                                                                         <file>
                                                                                                                                                 <path>
                                                                                                                                                         <empty>0</empty>
- <string>../../../../boost/exception/exception.hpp</string>
+ <string>../../../../boost/exception_ptr.hpp</string>
                                                                                                                                                         <type>0</type>
                                                                                                                                                         <base>0</base>
                                                                                                                                                 </path>
                                                                                                                                         </file>
                                                                                                                                 </hook>
                                                                                                                                 <title>
- <string>exception</string>
+ <string>exception_ptr</string>
                                                                                                                                 </title>
                                                                                                                                 <file_name>
                                                                                                                                         <string></string>
@@ -905,16 +962,25 @@
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:)@@&#10;##Transporting of Arbitrary Data to the Catch Site&#10;###@@(:link </string>
+ <string>:)@@&#10;###@@(:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-9</id>
+ <id>-13</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:)@@&#10;###@@(:link </string>
+ <string>:)()@@&#10;###@@(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-14</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)()@@&#10;###@@(:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
@@ -929,28 +995,28 @@
                                                                                                                                                 <stream_hook_path>
                                                                                                                                                         <container>
                                                                                                                                                                 <size>2</size>
- <strong>427FFBF157B284A9FB0CF4FAEC4A9BB2ADA8AC6CB4F4C329FAE0FED649640E3E</strong>
- <weak>2573550761</weak>
- <size>6200</size>
- <position>737</position>
- <strong>27AC1164E0A824D548386BEDCDC81DCAC283F3D286B0ECEE05B039BB8C392BFC</strong>
- <weak>1247954090</weak>
- <size>249</size>
- <position>1599</position>
+ <strong>973F8368D72D56424349CBB81C8F3015CB9F4F0CD7B23A8C62C3DBADDA37CD57</strong>
+ <weak>3833800883</weak>
+ <size>4832</size>
+ <position>514</position>
+ <strong>921FBF6991E17349BFF2AD6F165372F85AA9457DDB28E502ABB6B392BBA6B529</strong>
+ <weak>3119269037</weak>
+ <size>284</size>
+ <position>4423</position>
                                                                                                                                                         </container>
                                                                                                                                                 </stream_hook_path>
                                                                                                                                         </hook>
                                                                                                                                         <file>
                                                                                                                                                 <path>
                                                                                                                                                         <empty>0</empty>
- <string>../../../../boost/exception/info.hpp</string>
+ <string>../../../../boost/exception_ptr.hpp</string>
                                                                                                                                                         <type>0</type>
                                                                                                                                                         <base>0</base>
                                                                                                                                                 </path>
                                                                                                                                         </file>
                                                                                                                                 </hook>
                                                                                                                                 <title>
- <string>operator&lt;&lt;/exception</string>
+ <string>copy_exception</string>
                                                                                                                                 </title>
                                                                                                                                 <file_name>
                                                                                                                                         <string></string>
@@ -959,106 +1025,7 @@
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>|operator&lt;&lt;:)()@@&#10;###@@(:link </string>
- <variant>1</variant>
- <weak_ptr>
- <expired>0</expired>
- <shared_ptr>
- <id>25</id>
- <type>
- <string>reno_context</string>
- </type>
- <object>
- <hook>
- <hook>
- <stream_hook_path>
- <container>
- <size>2</size>
- <strong>427FFBF157B284A9FB0CF4FAEC4A9BB2ADA8AC6CB4F4C329FAE0FED649640E3E</strong>
- <weak>2573550761</weak>
- <size>6200</size>
- <position>737</position>
- <strong>65D13C1BB0A16823F69A32BAB56A51CA317075C7FC8B7441EE0D9B57AF5AB2AC</strong>
- <weak>2592266329</weak>
- <size>712</size>
- <position>1850</position>
- </container>
- </stream_hook_path>
- </hook>
- <file>
- <path>
- <empty>0</empty>
- <string>../../../../boost/exception/info.hpp</string>
- <type>0</type>
- <base>0</base>
- </path>
- </file>
- </hook>
- <title>
- <string>get_error_info</string>
- </title>
- <file_name>
- <string></string>
- </file_name>
- </object>
- </shared_ptr>
- </weak_ptr>
- <variant>2</variant>
- <string>:)()@@&#10;###@@(:link </string>
- <variant>1</variant>
- <weak_ptr>
- <expired>0</expired>
- <shared_ptr>
- <id>26</id>
- <type>
- <string>reno_context</string>
- </type>
- <object>
- <hook>
- <hook>
- <stream_hook_path>
- <container>
- <size>2</size>
- <strong>7B3C93C7263FD0FB201E2E279FE53520E47550B3C1497DCB5EE4F24832F8235C</strong>
- <weak>2778337684</weak>
- <size>1947</size>
- <position>407</position>
- <strong>21F529F6CC88DB2566F36223A07F700BD043680083D73ABA1A7444A663AAFCFF</strong>
- <weak>4141043385</weak>
- <size>241</size>
- <position>1700</position>
- </container>
- </stream_hook_path>
- </hook>
- <file>
- <path>
- <empty>0</empty>
- <string>../../../../boost/exception/enable_error_info.hpp</string>
- <type>0</type>
- <base>0</base>
- </path>
- </file>
- </hook>
- <title>
- <string>enable_error_info</string>
- </title>
- <file_name>
- <string></string>
- </file_name>
- </object>
- </shared_ptr>
- </weak_ptr>
- <variant>2</variant>
- <string>:)()@@&#10;###@@(:link </string>
- <variant>1</variant>
- <weak_ptr>
- <expired>0</expired>
- <shared_ptr>
- <id>-10</id>
- </shared_ptr>
- </weak_ptr>
- <variant>2</variant>
- <string>:)@@&#10;##Transporting of Exceptions between Threads&#10;###@@(:link </string>
+ <string>:)()@@&#10;###@@(:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
@@ -1067,25 +1034,25 @@
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:)@@&#10;###@@(:link </string>
+ <string>:)()@@&#10;###@@(:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-13</id>
+ <id>-16</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:)()@@&#10;###@@(:link </string>
+ <string>:)@@&#10;##@@(:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-14</id>
+ <id>-19</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:)()@@&#10;###@@(:link </string>
+ <string>:)()@@&#10;##Headers&#10;###@@(:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
@@ -1094,12 +1061,12 @@
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:)()@@&#10;###@@(:link </string>
+ <string>:)@@&#10;###@@(:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>27</id>
+ <id>25</id>
                                                                                                                         <type>
                                                                                                                                 <string>reno_context</string>
                                                                                                                         </type>
@@ -1108,15 +1075,11 @@
                                                                                                                                         <hook>
                                                                                                                                                 <stream_hook_path>
                                                                                                                                                         <container>
- <size>2</size>
- <strong>973F8368D72D56424349CBB81C8F3015CB9F4F0CD7B23A8C62C3DBADDA37CD57</strong>
- <weak>3833800883</weak>
- <size>4832</size>
- <position>514</position>
- <strong>156B870761DB092CE4269C1173B479A344A1041BA2B883765AF19A72B371D776</strong>
- <weak>3239976720</weak>
- <size>117</size>
- <position>4709</position>
+ <size>1</size>
+ <strong>40C2FBC8600FE6877A6D46EC005D97EB1F612B8687CCA297C838E10A80E089AA</strong>
+ <weak>2576029551</weak>
+ <size>94</size>
+ <position>227</position>
                                                                                                                                                         </container>
                                                                                                                                                 </stream_hook_path>
                                                                                                                                         </hook>
@@ -1130,39 +1093,21 @@
                                                                                                                                         </file>
                                                                                                                                 </hook>
                                                                                                                                 <title>
- <string>rethrow_exception</string>
+ <string>boost/exception_ptr.hpp</string>
                                                                                                                                 </title>
                                                                                                                                 <file_name>
- <string></string>
+ <string>exception_cloning_hpp</string>
                                                                                                                                 </file_name>
                                                                                                                         </object>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:)()@@&#10;###@@(:link </string>
- <variant>1</variant>
- <weak_ptr>
- <expired>0</expired>
- <shared_ptr>
- <id>-16</id>
- </shared_ptr>
- </weak_ptr>
- <variant>2</variant>
- <string>:)@@&#10;##@@(:link </string>
- <variant>1</variant>
- <weak_ptr>
- <expired>0</expired>
- <shared_ptr>
- <id>-19</id>
- </shared_ptr>
- </weak_ptr>
- <variant>2</variant>
- <string>:)()@@&#10;##Headers&#10;###@@(:link </string>
+ <string>:)@@&#10;###@@(:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>28</id>
+ <id>26</id>
                                                                                                                         <type>
                                                                                                                                 <string>reno_context</string>
                                                                                                                         </type>
@@ -1172,27 +1117,27 @@
                                                                                                                                                 <stream_hook_path>
                                                                                                                                                         <container>
                                                                                                                                                                 <size>1</size>
- <strong>E64E4DFB1DC251F844260AE133EFD419677D0F7143D65B578DEE525492F6B624</strong>
- <weak>2172131053</weak>
- <size>94</size>
- <position>227</position>
+ <strong>2C5F1B7E5C5052C9C9305848AB499A9C166D728EAAD25DC936B75FCA997A0650</strong>
+ <weak>3171555959</weak>
+ <size>88</size>
+ <position>1</position>
                                                                                                                                                         </container>
                                                                                                                                                 </stream_hook_path>
                                                                                                                                         </hook>
                                                                                                                                         <file>
                                                                                                                                                 <path>
                                                                                                                                                         <empty>0</empty>
- <string>../../../../boost/exception.hpp</string>
+ <string>../../../../boost/throw_exception.hpp</string>
                                                                                                                                                         <type>0</type>
                                                                                                                                                         <base>0</base>
                                                                                                                                                 </path>
                                                                                                                                         </file>
                                                                                                                                 </hook>
                                                                                                                                 <title>
- <string>boost/exception.hpp</string>
+ <string>boost/throw_exception.hpp</string>
                                                                                                                                 </title>
                                                                                                                                 <file_name>
- <string>exception_hpp</string>
+ <string>throw_exception_hpp</string>
                                                                                                                                 </file_name>
                                                                                                                         </object>
                                                                                                                 </shared_ptr>
@@ -1203,7 +1148,7 @@
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>29</id>
+ <id>27</id>
                                                                                                                         <type>
                                                                                                                                 <string>reno_context</string>
                                                                                                                         </type>
@@ -1213,8 +1158,8 @@
                                                                                                                                                 <stream_hook_path>
                                                                                                                                                         <container>
                                                                                                                                                                 <size>1</size>
- <strong>40C2FBC8600FE6877A6D46EC005D97EB1F612B8687CCA297C838E10A80E089AA</strong>
- <weak>2576029551</weak>
+ <strong>A9C65F105342D728DE9C996079E82DF25408B94A272090039FAAC12D29659F69</strong>
+ <weak>2378831669</weak>
                                                                                                                                                                 <size>94</size>
                                                                                                                                                                 <position>227</position>
                                                                                                                                                         </container>
@@ -1223,17 +1168,17 @@
                                                                                                                                         <file>
                                                                                                                                                 <path>
                                                                                                                                                         <empty>0</empty>
- <string>../../../../boost/exception_ptr.hpp</string>
+ <string>../../../../boost/exception/enable_current_exception.hpp</string>
                                                                                                                                                         <type>0</type>
                                                                                                                                                         <base>0</base>
                                                                                                                                                 </path>
                                                                                                                                         </file>
                                                                                                                                 </hook>
                                                                                                                                 <title>
- <string>boost/exception_ptr.hpp</string>
+ <string>boost/exception/enable_current_exception.hpp</string>
                                                                                                                                 </title>
                                                                                                                                 <file_name>
- <string>exception_cloning_hpp</string>
+ <string>exception_enable_exception_cloning_hpp</string>
                                                                                                                                 </file_name>
                                                                                                                         </object>
                                                                                                                 </shared_ptr>
@@ -1244,7 +1189,7 @@
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>30</id>
+ <id>28</id>
                                                                                                                         <type>
                                                                                                                                 <string>reno_context</string>
                                                                                                                         </type>
@@ -1254,27 +1199,27 @@
                                                                                                                                                 <stream_hook_path>
                                                                                                                                                         <container>
                                                                                                                                                                 <size>1</size>
- <strong>2C5F1B7E5C5052C9C9305848AB499A9C166D728EAAD25DC936B75FCA997A0650</strong>
- <weak>3171555959</weak>
- <size>88</size>
- <position>1</position>
+ <strong>DFB8EFE8A4EE9FB101DC20A69A4217A96B78A272D7DE88D579CFE8ECCC070531</strong>
+ <weak>2228033283</weak>
+ <size>94</size>
+ <position>227</position>
                                                                                                                                                         </container>
                                                                                                                                                 </stream_hook_path>
                                                                                                                                         </hook>
                                                                                                                                         <file>
                                                                                                                                                 <path>
                                                                                                                                                         <empty>0</empty>
- <string>../../../../boost/throw_exception.hpp</string>
+ <string>../../../../boost/exception/enable_error_info.hpp</string>
                                                                                                                                                         <type>0</type>
                                                                                                                                                         <base>0</base>
                                                                                                                                                 </path>
                                                                                                                                         </file>
                                                                                                                                 </hook>
                                                                                                                                 <title>
- <string>boost/throw_exception.hpp</string>
+ <string>boost/exception/enable_error_info.hpp</string>
                                                                                                                                 </title>
                                                                                                                                 <file_name>
- <string>throw_exception_hpp</string>
+ <string>exception_enable_error_info_hpp</string>
                                                                                                                                 </file_name>
                                                                                                                         </object>
                                                                                                                 </shared_ptr>
@@ -1285,24 +1230,6 @@
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-5</id>
- </shared_ptr>
- </weak_ptr>
- <variant>2</variant>
- <string>:)@@&#10;###@@(:link </string>
- <variant>1</variant>
- <weak_ptr>
- <expired>0</expired>
- <shared_ptr>
- <id>-6</id>
- </shared_ptr>
- </weak_ptr>
- <variant>2</variant>
- <string>:)@@&#10;###@@(:link </string>
- <variant>1</variant>
- <weak_ptr>
- <expired>0</expired>
- <shared_ptr>
                                                                                                                         <id>-15</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
@@ -1312,7 +1239,39 @@
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-7</id>
+ <id>29</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>CAD6C404CB725D336A44920D2341ECA131149AB02C368B59028F8147F16737BF</strong>
+ <weak>2258638601</weak>
+ <size>94</size>
+ <position>227</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/exception/info_tuple.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>boost/exception/info_tuple.hpp</string>
+ </title>
+ <file_name>
+ <string>exception_error_info_group_hpp</string>
+ </file_name>
+ </object>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
@@ -1321,7 +1280,39 @@
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-8</id>
+ <id>30</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>EB524A8A61E5F1A93CE4336B980696C09E7ADF42A6B933BA76EFB1544AB7C4CC</strong>
+ <weak>2274957083</weak>
+ <size>94</size>
+ <position>227</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/exception/error_info.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>boost/exception/error_info.hpp</string>
+ </title>
+ <file_name>
+ <string>exception_error_info_value_hpp</string>
+ </file_name>
+ </object>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
@@ -1405,7 +1396,7 @@
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-28</id>
+ <id>-12</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
@@ -1414,7 +1405,7 @@
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-23</id>
+ <id>-7</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
@@ -1423,7 +1414,7 @@
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-9</id>
+ <id>-21</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
@@ -1432,7 +1423,7 @@
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-24</id>
+ <id>-8</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
@@ -1441,7 +1432,7 @@
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-25</id>
+ <id>-9</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
@@ -1450,7 +1441,7 @@
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-26</id>
+ <id>-10</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
@@ -1459,7 +1450,7 @@
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-10</id>
+ <id>-22</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
@@ -1468,7 +1459,7 @@
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-11</id>
+ <id>-23</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
@@ -1495,7 +1486,7 @@
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-12</id>
+ <id>-24</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
@@ -1504,7 +1495,7 @@
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-27</id>
+ <id>-11</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
@@ -1531,7 +1522,7 @@
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-23</id>
+ <id>-7</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
@@ -1540,7 +1531,7 @@
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-9</id>
+ <id>-21</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
@@ -1549,7 +1540,7 @@
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-24</id>
+ <id>-8</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
@@ -1558,7 +1549,7 @@
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-25</id>
+ <id>-9</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
@@ -1567,7 +1558,7 @@
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-26</id>
+ <id>-10</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
@@ -1576,7 +1567,7 @@
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-10</id>
+ <id>-22</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
@@ -1585,7 +1576,7 @@
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-11</id>
+ <id>-23</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
@@ -1612,7 +1603,7 @@
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-12</id>
+ <id>-24</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
@@ -1621,7 +1612,7 @@
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-27</id>
+ <id>-11</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
@@ -1689,33 +1680,42 @@
                                                                                                 <weak_ptr>
                                                                                                         <expired>0</expired>
                                                                                                         <shared_ptr>
- <id>-21</id>
+ <id>-29</id>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
                                                                                                         <size>1</size>
                                                                                                         <variant>2</variant>
- <string>(:include include:)&#10;&#10;!!!See also:&#10;&#10;(:pagelist link=&quot;backlink&quot; except_tags=&quot;noalso&quot;:)&#10;</string>
+ <string>!!!boost/exception/info_tuple.hpp&#10;&#10;This header file contains the following definitions/declarations:&#10;&#10;(:pagelist link=&quot;backlink&quot; layer=&quot;synopsis&quot;:)&#10;</string>
                                                                                                 </container>
                                                                                         </pair>
                                                                                         <pair>
                                                                                                 <weak_ptr>
                                                                                                         <expired>0</expired>
                                                                                                         <shared_ptr>
- <id>-22</id>
+ <id>-30</id>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
- <size>1</size>
+ <size>3</size>
                                                                                                         <variant>2</variant>
- <string>(:include include:)&#10;&#10;!!!See also:&#10;&#10;(:pagelist link=&quot;backlink&quot; except_tags=&quot;noalso&quot;:)&#10;</string>
+ <string>!!!boost/exception/error_info.hpp&#10;&#10;This header file contains the following declaration:&#10;&#10;[@namespace&#10;boost&#10; {&#10; template &lt;class Tag, class T&gt;&#10; class (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-21</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:);&#10; }@]&#10;</string>
                                                                                                 </container>
                                                                                         </pair>
                                                                                         <pair>
                                                                                                 <weak_ptr>
                                                                                                         <expired>0</expired>
                                                                                                         <shared_ptr>
- <id>-23</id>
+ <id>-21</id>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
@@ -1728,7 +1728,7 @@
                                                                                                 <weak_ptr>
                                                                                                         <expired>0</expired>
                                                                                                         <shared_ptr>
- <id>-24</id>
+ <id>-22</id>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
@@ -1741,7 +1741,7 @@
                                                                                                 <weak_ptr>
                                                                                                         <expired>0</expired>
                                                                                                         <shared_ptr>
- <id>-25</id>
+ <id>-23</id>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
@@ -1754,7 +1754,7 @@
                                                                                                 <weak_ptr>
                                                                                                         <expired>0</expired>
                                                                                                         <shared_ptr>
- <id>-26</id>
+ <id>-24</id>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
@@ -1767,39 +1767,39 @@
                                                                                                 <weak_ptr>
                                                                                                         <expired>0</expired>
                                                                                                         <shared_ptr>
- <id>-27</id>
+ <id>-25</id>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
                                                                                                         <size>1</size>
                                                                                                         <variant>2</variant>
- <string>(:include include:)&#10;&#10;!!!See also:&#10;&#10;(:pagelist link=&quot;backlink&quot; except_tags=&quot;noalso&quot;:)&#10;</string>
+ <string>!!!boost/exception_ptr.hpp&#10;&#10;This header file contains the following definitions/declarations:&#10;&#10;(:pagelist link=&quot;backlink&quot; layer=&quot;synopsis&quot;:)&#10;</string>
                                                                                                 </container>
                                                                                         </pair>
                                                                                         <pair>
                                                                                                 <weak_ptr>
                                                                                                         <expired>0</expired>
                                                                                                         <shared_ptr>
- <id>-28</id>
+ <id>-26</id>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
                                                                                                         <size>1</size>
                                                                                                         <variant>2</variant>
- <string>!!!boost/exception.hpp&#10;&#10;This header file includes all other header files of Boost Exception:&#10;&#10;(:pagelist tags=&quot;header&quot;:)&#10;</string>
+ <string>!!!boost/exception/throw_exception.hpp&#10;&#10;&#10;&#10;This header file contains the following definitions/declarations:&#10;&#10;(:pagelist link=&quot;backlink&quot; layer=&quot;synopsis&quot;:)&#10;</string>
                                                                                                 </container>
                                                                                         </pair>
                                                                                         <pair>
                                                                                                 <weak_ptr>
                                                                                                         <expired>0</expired>
                                                                                                         <shared_ptr>
- <id>-29</id>
+ <id>-27</id>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
                                                                                                         <size>1</size>
                                                                                                         <variant>2</variant>
- <string>!!!boost/exception_ptr.hpp&#10;&#10;This header file contains the following definitions/declarations:&#10;&#10;(:pagelist link=&quot;backlink&quot; layer=&quot;synopsis&quot;:)&#10;</string>
+ <string>!!!boost/exception/enable_current_exception.hpp&#10;&#10;This header file contains the following definitions/declarations:&#10;&#10;(:pagelist link=&quot;backlink&quot; layer=&quot;synopsis&quot;:)&#10;</string>
                                                                                                 </container>
                                                                                         </pair>
                                                                                         <pair>
@@ -1819,13 +1819,13 @@
                                                                                                 <weak_ptr>
                                                                                                         <expired>0</expired>
                                                                                                         <shared_ptr>
- <id>-30</id>
+ <id>-28</id>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
                                                                                                         <size>1</size>
                                                                                                         <variant>2</variant>
- <string>!!!boost/exception/throw_exception.hpp&#10;&#10;&#10;&#10;This header file contains the following definitions/declarations:&#10;&#10;(:pagelist link=&quot;backlink&quot; layer=&quot;synopsis&quot;:)&#10;</string>
+ <string>!!!boost/exception/enable_error_info.hpp&#10;&#10;&#10;&#10;This header file contains the following definitions/declarations:&#10;&#10;(:pagelist link=&quot;backlink&quot; layer=&quot;synopsis&quot;:)&#10;</string>
                                                                                                 </container>
                                                                                         </pair>
                                                                                         <pair>
@@ -2339,7 +2339,7 @@
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-5</id>
+ <id>-27</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
@@ -2435,7 +2435,7 @@
                                                                                                 <weak_ptr>
                                                                                                         <expired>0</expired>
                                                                                                         <shared_ptr>
- <id>-21</id>
+ <id>-29</id>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
@@ -2446,7 +2446,7 @@
                                                                                                 <weak_ptr>
                                                                                                         <expired>0</expired>
                                                                                                         <shared_ptr>
- <id>-22</id>
+ <id>-30</id>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
@@ -2457,7 +2457,7 @@
                                                                                                 <weak_ptr>
                                                                                                         <expired>0</expired>
                                                                                                         <shared_ptr>
- <id>-23</id>
+ <id>-21</id>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
@@ -2468,7 +2468,7 @@
                                                                                                 <weak_ptr>
                                                                                                         <expired>0</expired>
                                                                                                         <shared_ptr>
- <id>-24</id>
+ <id>-22</id>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
@@ -2479,18 +2479,26 @@
                                                                                                 <weak_ptr>
                                                                                                         <expired>0</expired>
                                                                                                         <shared_ptr>
- <id>-25</id>
+ <id>-23</id>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
- <size>0</size>
+ <size>3</size>
+ <variant>2</variant>
+ <string>[@#include &lt;</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>1</expired>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>&gt;@]</string>
                                                                                                 </container>
                                                                                         </pair>
                                                                                         <pair>
                                                                                                 <weak_ptr>
                                                                                                         <expired>0</expired>
                                                                                                         <shared_ptr>
- <id>-26</id>
+ <id>-24</id>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
@@ -2501,26 +2509,18 @@
                                                                                                 <weak_ptr>
                                                                                                         <expired>0</expired>
                                                                                                         <shared_ptr>
- <id>-27</id>
+ <id>-25</id>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
- <size>3</size>
- <variant>2</variant>
- <string>[@#include &lt;</string>
- <variant>1</variant>
- <weak_ptr>
- <expired>1</expired>
- </weak_ptr>
- <variant>2</variant>
- <string>&gt;@]</string>
+ <size>0</size>
                                                                                                 </container>
                                                                                         </pair>
                                                                                         <pair>
                                                                                                 <weak_ptr>
                                                                                                         <expired>0</expired>
                                                                                                         <shared_ptr>
- <id>-28</id>
+ <id>-26</id>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
@@ -2531,7 +2531,7 @@
                                                                                                 <weak_ptr>
                                                                                                         <expired>0</expired>
                                                                                                         <shared_ptr>
- <id>-29</id>
+ <id>-27</id>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
@@ -2553,7 +2553,7 @@
                                                                                                 <weak_ptr>
                                                                                                         <expired>0</expired>
                                                                                                         <shared_ptr>
- <id>-30</id>
+ <id>-28</id>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
@@ -2853,7 +2853,7 @@
                                                                                                 <weak_ptr>
                                                                                                         <expired>0</expired>
                                                                                                         <shared_ptr>
- <id>-21</id>
+ <id>-29</id>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
@@ -2864,7 +2864,7 @@
                                                                                                 <weak_ptr>
                                                                                                         <expired>0</expired>
                                                                                                         <shared_ptr>
- <id>-22</id>
+ <id>-30</id>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
@@ -2875,7 +2875,7 @@
                                                                                                 <weak_ptr>
                                                                                                         <expired>0</expired>
                                                                                                         <shared_ptr>
- <id>-23</id>
+ <id>-21</id>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
@@ -2886,7 +2886,7 @@
                                                                                                 <weak_ptr>
                                                                                                         <expired>0</expired>
                                                                                                         <shared_ptr>
- <id>-24</id>
+ <id>-22</id>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
@@ -2897,7 +2897,7 @@
                                                                                                 <weak_ptr>
                                                                                                         <expired>0</expired>
                                                                                                         <shared_ptr>
- <id>-25</id>
+ <id>-23</id>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
@@ -2908,7 +2908,7 @@
                                                                                                 <weak_ptr>
                                                                                                         <expired>0</expired>
                                                                                                         <shared_ptr>
- <id>-26</id>
+ <id>-24</id>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
@@ -2919,7 +2919,7 @@
                                                                                                 <weak_ptr>
                                                                                                         <expired>0</expired>
                                                                                                         <shared_ptr>
- <id>-27</id>
+ <id>-25</id>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
@@ -2930,7 +2930,7 @@
                                                                                                 <weak_ptr>
                                                                                                         <expired>0</expired>
                                                                                                         <shared_ptr>
- <id>-28</id>
+ <id>-26</id>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
@@ -2941,7 +2941,7 @@
                                                                                                 <weak_ptr>
                                                                                                         <expired>0</expired>
                                                                                                         <shared_ptr>
- <id>-29</id>
+ <id>-27</id>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
@@ -2963,7 +2963,7 @@
                                                                                                 <weak_ptr>
                                                                                                         <expired>0</expired>
                                                                                                         <shared_ptr>
- <id>-30</id>
+ <id>-28</id>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
@@ -3263,7 +3263,7 @@
                                                                                                 <weak_ptr>
                                                                                                         <expired>0</expired>
                                                                                                         <shared_ptr>
- <id>-21</id>
+ <id>-29</id>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
@@ -3274,7 +3274,7 @@
                                                                                                 <weak_ptr>
                                                                                                         <expired>0</expired>
                                                                                                         <shared_ptr>
- <id>-22</id>
+ <id>-30</id>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
@@ -3285,7 +3285,7 @@
                                                                                                 <weak_ptr>
                                                                                                         <expired>0</expired>
                                                                                                         <shared_ptr>
- <id>-23</id>
+ <id>-21</id>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
@@ -3296,7 +3296,7 @@
                                                                                                 <weak_ptr>
                                                                                                         <expired>0</expired>
                                                                                                         <shared_ptr>
- <id>-24</id>
+ <id>-22</id>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
@@ -3307,7 +3307,7 @@
                                                                                                 <weak_ptr>
                                                                                                         <expired>0</expired>
                                                                                                         <shared_ptr>
- <id>-25</id>
+ <id>-23</id>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
@@ -3318,7 +3318,7 @@
                                                                                                 <weak_ptr>
                                                                                                         <expired>0</expired>
                                                                                                         <shared_ptr>
- <id>-26</id>
+ <id>-24</id>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
@@ -3329,7 +3329,7 @@
                                                                                                 <weak_ptr>
                                                                                                         <expired>0</expired>
                                                                                                         <shared_ptr>
- <id>-27</id>
+ <id>-25</id>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
@@ -3340,7 +3340,7 @@
                                                                                                 <weak_ptr>
                                                                                                         <expired>0</expired>
                                                                                                         <shared_ptr>
- <id>-28</id>
+ <id>-26</id>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
@@ -3351,7 +3351,7 @@
                                                                                                 <weak_ptr>
                                                                                                         <expired>0</expired>
                                                                                                         <shared_ptr>
- <id>-29</id>
+ <id>-27</id>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
@@ -3373,7 +3373,7 @@
                                                                                                 <weak_ptr>
                                                                                                         <expired>0</expired>
                                                                                                         <shared_ptr>
- <id>-30</id>
+ <id>-28</id>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
@@ -3523,124 +3523,142 @@
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
- <size>0</size>
- </container>
- </pair>
- <pair>
- <weak_ptr>
- <expired>0</expired>
- <shared_ptr>
- <id>-8</id>
- </shared_ptr>
- </weak_ptr>
- <container>
- <size>0</size>
- </container>
- </pair>
- <pair>
- <weak_ptr>
- <expired>0</expired>
- <shared_ptr>
- <id>-9</id>
- </shared_ptr>
- </weak_ptr>
- <container>
- <size>3</size>
+ <size>9</size>
                                                                                                         <variant>2</variant>
- <string>[@ template &lt;class Tag,class T&gt;&#10; class&#10; (:link </string>
+ <string>[@ class&#10; (:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-9</id>
+ <id>-7</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:)&#10; {&#10; public:&#10;&#10; typedef T value_type;&#10;&#10; error_info( value_type const &amp; );&#10;&#10; private:&#10;&#10; ---unspecified---&#10; };@]&#10;</string>
+ <string>:)&#10; {&#10; public:&#10;&#10;(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-35</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> decl:)&#10;&#10; protected:&#10;&#10;(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-36</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> decl:)&#10;(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-37</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> decl:)&#10;&#10; private:&#10;&#10; ---unspecified---&#10; };@]&#10;</string>
                                                                                                 </container>
                                                                                         </pair>
                                                                                         <pair>
                                                                                                 <weak_ptr>
                                                                                                         <expired>0</expired>
                                                                                                         <shared_ptr>
- <id>-10</id>
+ <id>-8</id>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
- <size>9</size>
+ <size>7</size>
                                                                                                         <variant>2</variant>
- <string>[@ typedef (:link </string>
+ <string>[@ template &lt;class E, class Tag1, class T1&gt;&#10; E const &amp; operator&lt;&lt;( E const &amp; x, (:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-9</id>
+ <id>-21</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:)&lt;struct tag_throw_function,char const *&gt; throw_function;&#10; typedef (:link </string>
+ <string>:)&lt;Tag1,T1&gt; const &amp; v );&#10;&#10; template &lt;class E, class Tag1, class T1, ..., class TagN, class TN&gt;&#10; E const &amp; operator&lt;&lt;( E const &amp; x,&#10; (:link http://www.boost.org/libs/tuple/doc/tuple_users_guide.html|tuple:)&lt;&#10; (:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-9</id>
+ <id>-21</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:)&lt;struct tag_throw_file,char const *&gt; throw_file;&#10; typedef (:link </string>
+ <string>:)&lt;Tag1,T1&gt;,&#10; ...,&#10; (:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-9</id>
+ <id>-21</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:)&lt;struct tag_throw_line,int&gt; throw_line;&#10;&#10; #define (:link </string>
+ <string>:)&lt;TagN,TN&gt; &gt; const &amp; v );@]&#10;</string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-9</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>[@ template &lt;class ErrorInfo,class E&gt;&#10; (:link http://www.boost.org/libs/smart_ptr/shared_ptr.htm|shared_ptr:)&lt;typename ErrorInfo::value_type const&gt; (:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-10</id>
+ <id>-9</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:)\&#10; ::boost::throw_function(BOOST_CURRENT_FUNCTION) &lt;&lt;\&#10; ::boost::throw_file(__FILE__) &lt;&lt;\&#10; ::boost::throw_line((int)__LINE__)@]&#10;</string>
+ <string>:)( E const &amp; x );</string>
                                                                                                 </container>
                                                                                         </pair>
                                                                                         <pair>
                                                                                                 <weak_ptr>
                                                                                                         <expired>0</expired>
                                                                                                         <shared_ptr>
- <id>-11</id>
+ <id>-10</id>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
                                                                                                         <size>3</size>
                                                                                                         <variant>2</variant>
- <string>[@ typedef ---unspecified--- (:link </string>
+ <string>[@ template &lt;class T&gt;&#10; ---unspecified--- (:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-11</id>
+ <id>-10</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:);@]&#10;</string>
+ <string>:)( T const &amp; x );@]&#10;</string>
                                                                                                 </container>
                                                                                         </pair>
                                                                                         <pair>
                                                                                                 <weak_ptr>
                                                                                                         <expired>0</expired>
                                                                                                         <shared_ptr>
- <id>-12</id>
+ <id>-11</id>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
                                                                                                         <size>5</size>
                                                                                                         <variant>2</variant>
- <string>[@ template &lt;class T&gt;&#10; (:link </string>
+ <string>[@ void (:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
@@ -3649,16 +3667,27 @@
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:) (:link </string>
+ <string>:)( (:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-12</id>
+ <id>-23</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:)( T const &amp; e );@]&#10;</string>
+ <string>:) const &amp; ep );</string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-12</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
                                                                                                 </container>
                                                                                         </pair>
                                                                                         <pair>
@@ -3698,7 +3727,7 @@
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-11</id>
+ <id>-23</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
@@ -3815,7 +3844,7 @@
                                                                                                 <weak_ptr>
                                                                                                         <expired>0</expired>
                                                                                                         <shared_ptr>
- <id>-21</id>
+ <id>-29</id>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
@@ -3826,7 +3855,7 @@
                                                                                                 <weak_ptr>
                                                                                                         <expired>0</expired>
                                                                                                         <shared_ptr>
- <id>-22</id>
+ <id>-30</id>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
@@ -3837,171 +3866,131 @@
                                                                                                 <weak_ptr>
                                                                                                         <expired>0</expired>
                                                                                                         <shared_ptr>
- <id>-23</id>
+ <id>-21</id>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
- <size>9</size>
+ <size>3</size>
                                                                                                         <variant>2</variant>
- <string>[@ class&#10; (:link </string>
+ <string>[@ template &lt;class Tag,class T&gt;&#10; class&#10; (:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-23</id>
+ <id>-21</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:)&#10; {&#10; public:&#10;&#10;(:include </string>
- <variant>1</variant>
- <weak_ptr>
- <expired>0</expired>
- <shared_ptr>
- <id>-35</id>
- </shared_ptr>
- </weak_ptr>
- <variant>2</variant>
- <string> decl:)&#10;&#10; protected:&#10;&#10;(:include </string>
- <variant>1</variant>
- <weak_ptr>
- <expired>0</expired>
- <shared_ptr>
- <id>-36</id>
- </shared_ptr>
- </weak_ptr>
- <variant>2</variant>
- <string> decl:)&#10;(:include </string>
- <variant>1</variant>
- <weak_ptr>
- <expired>0</expired>
- <shared_ptr>
- <id>-37</id>
- </shared_ptr>
- </weak_ptr>
- <variant>2</variant>
- <string> decl:)&#10;&#10; private:&#10;&#10; ---unspecified---&#10; };@]&#10;</string>
+ <string>:)&#10; {&#10; public:&#10;&#10; typedef T value_type;&#10;&#10; error_info( value_type const &amp; );&#10;&#10; private:&#10;&#10; ---unspecified---&#10; };@]&#10;</string>
                                                                                                 </container>
                                                                                         </pair>
                                                                                         <pair>
                                                                                                 <weak_ptr>
                                                                                                         <expired>0</expired>
                                                                                                         <shared_ptr>
- <id>-24</id>
+ <id>-22</id>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
- <size>7</size>
+ <size>9</size>
                                                                                                         <variant>2</variant>
- <string>[@ template &lt;class E, class Tag1, class T1&gt;&#10; E const &amp; operator&lt;&lt;( E const &amp; x, (:link </string>
+ <string>[@ typedef (:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-9</id>
+ <id>-21</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:)&lt;Tag1,T1&gt; const &amp; v );&#10;&#10; template &lt;class E, class Tag1, class T1, ..., class TagN, class TN&gt;&#10; E const &amp; operator&lt;&lt;( E const &amp; x,&#10; (:link http://www.boost.org/libs/tuple/doc/tuple_users_guide.html|tuple:)&lt;&#10; (:link </string>
+ <string>:)&lt;struct tag_throw_function,char const *&gt; throw_function;&#10; typedef (:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-9</id>
+ <id>-21</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:)&lt;Tag1,T1&gt;,&#10; ...,&#10; (:link </string>
+ <string>:)&lt;struct tag_throw_file,char const *&gt; throw_file;&#10; typedef (:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-9</id>
+ <id>-21</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:)&lt;TagN,TN&gt; &gt; const &amp; v );@]&#10;</string>
- </container>
- </pair>
- <pair>
- <weak_ptr>
- <expired>0</expired>
- <shared_ptr>
- <id>-25</id>
- </shared_ptr>
- </weak_ptr>
- <container>
- <size>3</size>
- <variant>2</variant>
- <string>[@ template &lt;class ErrorInfo,class E&gt;&#10; (:link http://www.boost.org/libs/smart_ptr/shared_ptr.htm|shared_ptr:)&lt;typename ErrorInfo::value_type const&gt; (:link </string>
+ <string>:)&lt;struct tag_throw_line,int&gt; throw_line;&#10;&#10; #define (:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-25</id>
+ <id>-22</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:)( E const &amp; x );</string>
+ <string>:)\&#10; ::boost::throw_function(BOOST_CURRENT_FUNCTION) &lt;&lt;\&#10; ::boost::throw_file(__FILE__) &lt;&lt;\&#10; ::boost::throw_line((int)__LINE__)@]&#10;</string>
                                                                                                 </container>
                                                                                         </pair>
                                                                                         <pair>
                                                                                                 <weak_ptr>
                                                                                                         <expired>0</expired>
                                                                                                         <shared_ptr>
- <id>-26</id>
+ <id>-23</id>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
                                                                                                         <size>3</size>
                                                                                                         <variant>2</variant>
- <string>[@ template &lt;class T&gt;&#10; ---unspecified--- (:link </string>
+ <string>[@ typedef ---unspecified--- (:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-26</id>
+ <id>-23</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:)( T const &amp; x );@]&#10;</string>
+ <string>:);@]&#10;</string>
                                                                                                 </container>
                                                                                         </pair>
                                                                                         <pair>
                                                                                                 <weak_ptr>
                                                                                                         <expired>0</expired>
                                                                                                         <shared_ptr>
- <id>-27</id>
+ <id>-24</id>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
                                                                                                         <size>5</size>
                                                                                                         <variant>2</variant>
- <string>[@ void (:link </string>
+ <string>[@ template &lt;class T&gt;&#10; (:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-27</id>
+ <id>-23</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:)( (:link </string>
+ <string>:) (:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-11</id>
+ <id>-24</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:) const &amp; ep );</string>
+ <string>:)( T const &amp; e );@]&#10;</string>
                                                                                                 </container>
                                                                                         </pair>
                                                                                         <pair>
                                                                                                 <weak_ptr>
                                                                                                         <expired>0</expired>
                                                                                                         <shared_ptr>
- <id>-28</id>
+ <id>-25</id>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
@@ -4012,7 +4001,18 @@
                                                                                                 <weak_ptr>
                                                                                                         <expired>0</expired>
                                                                                                         <shared_ptr>
- <id>-29</id>
+ <id>-26</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-27</id>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
@@ -4034,7 +4034,7 @@
                                                                                                 <weak_ptr>
                                                                                                         <expired>0</expired>
                                                                                                         <shared_ptr>
- <id>-30</id>
+ <id>-28</id>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
@@ -4129,7 +4129,7 @@
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-23</id>
+ <id>-7</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
@@ -4213,282 +4213,441 @@
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
- <size>0</size>
- </container>
- </pair>
- <pair>
- <weak_ptr>
- <expired>0</expired>
- <shared_ptr>
- <id>-6</id>
- </shared_ptr>
- </weak_ptr>
- <container>
- <size>0</size>
- </container>
- </pair>
- <pair>
- <weak_ptr>
- <expired>0</expired>
- <shared_ptr>
- <id>-7</id>
- </shared_ptr>
- </weak_ptr>
- <container>
- <size>0</size>
- </container>
- </pair>
- <pair>
- <weak_ptr>
- <expired>0</expired>
- <shared_ptr>
- <id>-8</id>
- </shared_ptr>
- </weak_ptr>
- <container>
- <size>0</size>
- </container>
- </pair>
- <pair>
- <weak_ptr>
- <expired>0</expired>
- <shared_ptr>
- <id>-9</id>
- </shared_ptr>
- </weak_ptr>
- <container>
- <size>21</size>
+ <size>27</size>
                                                                                                         <variant>2</variant>
- <string>!!!error_info&#10;&#10;(:include synopsis:)&#10;&#10;!!!!Requirements:&#10;&#10;@@T@@ must have accessible copy constructor and must not be a reference.&#10;&#10;!!!!Description:&#10;&#10;This class template is used to associate a @@Tag@@ type with a value type @@T@@. Objects of type @@(:link </string>
+ <string>!!Integrating Boost Exception in Existing Exception Class Hierarchies&#10;&#10;Some exception hierarchies can not be modified to make @@boost::(:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-9</id>
+ <id>-7</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:)&lt;Tag,T&gt;@@ can be passed to @@(:link </string>
+ <string>:)@@ a base type. For this case, the @@(:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-24</id>
+ <id>-10</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>|operator&lt;&lt;:)()@@ to be stored in objects of type @@boost::(:link </string>
+ <string>:)()@@ function template can be used to make exception objects derive from @@boost::(:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-23</id>
+ <id>-7</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:)@@.&#10;&#10;!!!!Note:&#10;&#10;The header @@&lt;(:link </string>
+ <string>:)@@ anyway. Here is an example:&#10;&#10;[@#include &lt;(:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-8</id>
+ <id>-12</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:)&gt;@@ provides a declaration of the @@(:link </string>
+ <string>:)&gt;&#10;#include &lt;stdexcept&gt;&#10;&#10;typedef boost::(:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-9</id>
+ <id>-21</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:)@@ template, which is sufficient for the purpose of @@typedef@@ing an instance for specific @@Tag@@ and @@T@@, like this:&#10;&#10;[@#include &lt;(:link </string>
+ <string>:)&lt;struct tag_std_range_min,size_t&gt; std_range_min;&#10;typedef boost::(:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-8</id>
+ <id>-21</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:)&gt;&#10;&#10;typedef boost::(:link </string>
+ <string>:)&lt;struct tag_std_range_max,size_t&gt; std_range_max;&#10;typedef boost::(:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-9</id>
+ <id>-21</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:)&lt;struct tag_errno,int&gt; errno_info;@]&#10;&#10;Of course, to actually add an @@errno_info@@ object to exceptions using @@(:link </string>
+ <string>:)&lt;struct tag_std_range_index,size_t&gt; std_range_index;&#10;&#10;template &lt;class T&gt;&#10;class&#10;my_container&#10; {&#10; public:&#10;&#10; size_t size() const;&#10;&#10; T const &amp;&#10; operator[]( size_t i ) const&#10; {&#10; if( i &gt; size() )&#10; throw boost::(:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-24</id>
+ <id>-10</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>|operator&lt;&lt;:)()@@, or to retrieve it using @@(:link </string>
+ <string>:)(std::range_error(&quot;Index out of range&quot;)) &lt;&lt;&#10; std_range_min(0) &lt;&lt;&#10; std_range_max(size()) &lt;&lt;&#10; std_range_index(i);&#10; //....&#10; }&#10; };&#10;@]&#10;&#10;@@(:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-25</id>
+ <id>-10</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:)()@@, you must first @@#include &lt;(:link </string>
+ <string>|Enable_error_info:)&lt;T&gt;@@ returns an object of &apos;&apos;unspecified type&apos;&apos; which is guaranteed to derive from both @@boost::(:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-15</id>
+ <id>-7</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:)&gt;@@.&#10;</string>
- </container>
- </pair>
- <pair>
- <weak_ptr>
- <expired>0</expired>
- <shared_ptr>
- <id>-10</id>
- </shared_ptr>
- </weak_ptr>
- <container>
- <size>7</size>
- <variant>2</variant>
- <string>!!!BOOST_ERROR_INFO&#10;&#10;(:include synopsis:)&#10;&#10;This macro is designed to be used with @@(:link </string>
+ <string>:)@@ and @@T@@. This makes it possible to use @@(:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-24</id>
+ <id>-8</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>|operator&lt;&lt;:)()@@ when throwing a @@boost::(:link </string>
+ <string>|operator&lt;&lt;:)()@@ to store additional information in the exception object. The exception can be intercepted as @@T &amp;@@, therefore existing exception handling will not break. It can also be intercepted as @@boost::(:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-23</id>
+ <id>-7</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:)@@, to store information about the location of the throw statement. It can be chained with other @@(:link </string>
+ <string>:) &amp;@@, so that (:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-9</id>
+ <id>-20</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:)@@s in a single throw expression.&#10;</string>
+ <string>|more information can be added to the exception at a later time:).&#10;</string>
                                                                                                 </container>
                                                                                         </pair>
                                                                                         <pair>
                                                                                                 <weak_ptr>
                                                                                                         <expired>0</expired>
                                                                                                         <shared_ptr>
- <id>-11</id>
+ <id>-6</id>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
- <size>15</size>
+ <size>21</size>
                                                                                                         <variant>2</variant>
- <string>!!!exception_ptr&#10;&#10;(:include synopsis:)&#10;&#10;The @@(:link </string>
+ <string>!!Logging of boost::exception Objects&#10;&#10;Class @@boost::(:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-11</id>
+ <id>-7</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:)@@ type can be used to refer to a copy of an exception object. It is Default Constructible, Copy Constructible, Assignable and Equality Comparable; @@(:link </string>
+ <string>:)@@ provides a virtual member function @@(:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-11</id>
+ <id>-35</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:)@@&apos;s operations do not throw.&#10;&#10;Two instances of @@(:link </string>
+ <string>:::)()@@, with a signature identical to the familiar @@std::exception::what()@@ function. The default implementation returns a string value that is not presentable as a friendly user message, but because it is generated automatically, it is useful for debugging or logging purposes. Here is an example:&#10;&#10;[@#include &lt;(:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-11</id>
+ <id>-12</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:)@@ are equivalent and compare equal if and only if they refer to the same exception.&#10;&#10;The default constructor of @@(:link </string>
+ <string>:)&gt;&#10;#include &lt;iostream&gt;&#10;&#10;void f(); //throws unknown types that derive from boost::(:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-11</id>
+ <id>-7</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:)@@ produces the null value of the type. The null value is equivalent only to itself.&#10;&#10;!!!!Note:&#10;&#10;@@(:link </string>
+ <string>:).&#10;&#10;void&#10;g()&#10; {&#10; try&#10; {&#10; f();&#10; }&#10; catch(&#10; boost::(:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-11</id>
+ <id>-7</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:)@@ objects are returned by @@(:link </string>
+ <string>:) &amp; e )&#10; {&#10; std::cerr &lt;&lt; e.(:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-14</id>
+ <id>-35</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:)()@@ and @@(:link </string>
+ <string>:::)();&#10; }&#10; }@]&#10;&#10;The @@(:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-12</id>
+ <id>-35</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:)()@@.&#10;</string>
- </container>
- </pair>
- <pair>
- <weak_ptr>
- <expired>0</expired>
- <shared_ptr>
- <id>-12</id>
- </shared_ptr>
- </weak_ptr>
- <container>
- <size>3</size>
- <variant>2</variant>
- <string>!!!copy_exception()&#10;&#10;(:include synopsis:)&#10;&#10;!!!!Effects:&#10;&#10;As if @@try { throw e; } catch( ... ) { return </string>
+ <string>:::)()@@ member function iterates over all data objects stored in the @@boost::(:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-14</id>
+ <id>-7</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>(); }@@&#10;</string>
- </container>
+ <string>:)@@ through @@(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-8</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>|operator&lt;&lt;:)()@@. The returned string is constructed by converting each data object to string and then concatenating these strings together.&#10;&#10;When the @@(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-21</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)&lt;Tag,T&gt;@@ template is instantiated, the system attempts overload resolution for an unqualified call to @@to_string(x)@@, where @@x@@ is of type @@T@@. If this is successful, the @@to_string()@@ overload is used to convert objects of type @@T@@ to string.&#10;&#10;Otherwise, the system attempts overload resolution for @@s &lt;&lt; x@@, where @@s@@ is a @@std::ostringstream@@ and @@x@@ is of type @@T@@. If this is successful, the @@operator&lt;&lt;@@ overload is used to convert objects of type @@T@@ to string.&#10;&#10;Otherwise the system is unable to convert objects of type @@T@@ to string, and an unspecified stub string value is used without issuing a compile error.&#10;</string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-7</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>13</size>
+ <variant>2</variant>
+ <string>!!exception&#10;&#10;&#10;&#10;(:include synopsis:)&#10;&#10;Class @@boost::(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-7</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)@@ is designed to be used as a universal base for user-defined exception types.&#10;&#10;An object of any type deriving from @@boost::(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-7</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)@@ can store data of arbitrary types, using the @@</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-21</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>@@ wrapper and @@(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-8</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>|operator&lt;&lt;:)()@@.&#10;&#10;To retrieve data from a @@boost::(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-7</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)@@ object, use the @@(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-9</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)()@@ function template.&#10;&#10;(:include members:)&#10;</string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-8</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>7</size>
+ <variant>2</variant>
+ <string>!!!operator&lt;&lt;()&#10;&#10;(:include synopsis:)&#10;&#10;!!!!Requirements:&#10;&#10;@@E@@ must be @@boost::(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-7</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)@@, or a type that derives (indirectly) from @@boost::(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-7</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)@@.&#10;&#10;!!!!Effects:&#10;&#10;* The first overload stores a copy of @@v@@ into @@x@@. If @@x@@ already contains data of type @@(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-21</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)&lt;Tag1,T1&gt;@@, that data is overwritten.&#10;* The @@boost::(:link http://www.boost.org/libs/tuple/doc/tuple_users_guide.html|tuple:)@@ overload is equivalent to @@x &lt;&lt; v.(:link http://www.boost.org/libs/tuple/doc/tuple_users_guide.html#accessing_elements|get:)&lt;0&gt;() &lt;&lt; ... &lt;&lt; v.(:link http://www.boost.org/libs/tuple/doc/tuple_users_guide.html#accessing_elements|get:)&lt;N&gt;()@@.&#10;&#10;!!!!Returns:&#10;&#10;@@x@@.&#10;&#10;(:include throws:)&#10;</string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-9</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>7</size>
+ <variant>2</variant>
+ <string>!!!get_error_info()&#10;&#10;(:include synopsis:)&#10;&#10;!!!!Requirements:&#10;&#10;The type of the @@x@@ object must derive from @@boost::(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-7</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)@@; @@ErrorInfo@@ must be an instance of the @@(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-21</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)@@ template.&#10;&#10;!!!!Returns:&#10;&#10;If @@x@@ does not store an object of type @@ErrorInfo@@, returns an empty @@(:link http://www.boost.org/libs/smart_ptr/shared_ptr.htm|shared_ptr:)@@; otherwise returns pointer to the stored value. Use @@(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-8</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>|operator&lt;&lt;:)()@@ to store values in exception objects.&#10;&#10;!!!!Throws:&#10;&#10;Nothing.&#10;</string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-10</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>7</size>
+ <variant>2</variant>
+ <string>!!!enable_error_info()&#10;&#10;(:include synopsis:)&#10;&#10;!!!!Requirements:&#10;&#10;@@T@@ must be a user-defined type with accessible no-throw copy constructor.&#10;&#10;!!!!Returns:&#10;&#10;An object of unspecified type with no-throw copy semantics, which derives publicly from both @@T@@, and class @@boost::(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-7</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)@@. The @@T@@ sub-object is initialized from @@x@@ by the @@T@@ copy constructor. If @@T@@ already derives from @@boost::(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-7</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)@@, then the type of the returned object does not derive @@boost::(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-7</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)@@.&#10;&#10;!!!!Throws:&#10;&#10;Nothing.&#10;</string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-11</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>!!!rethrow_exception()&#10;&#10;(:include synopsis:)&#10;&#10;!!!!Precondition:&#10;&#10;@@ep@@ shall not be null.&#10;&#10;!!!!Throws:&#10;&#10;&#10;&#10;The exception to which @@ep@@ refers.&#10;</string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-12</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
                                                                                         </pair>
                                                                                         <pair>
                                                                                                 <weak_ptr>
@@ -4532,7 +4691,7 @@
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-11</id>
+ <id>-23</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
@@ -4568,7 +4727,7 @@
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-23</id>
+ <id>-7</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
@@ -4599,7 +4758,7 @@
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-11</id>
+ <id>-23</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
@@ -4608,7 +4767,7 @@
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-11</id>
+ <id>-23</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
@@ -4662,7 +4821,7 @@
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-11</id>
+ <id>-23</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
@@ -4680,7 +4839,7 @@
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-23</id>
+ <id>-7</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
@@ -4689,7 +4848,7 @@
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-23</id>
+ <id>-7</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
@@ -4707,7 +4866,7 @@
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-23</id>
+ <id>-7</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
@@ -4800,7 +4959,7 @@
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-23</id>
+ <id>-7</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
@@ -4858,7 +5017,7 @@
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-26</id>
+ <id>-10</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
@@ -4889,7 +5048,7 @@
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-23</id>
+ <id>-7</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
@@ -4898,7 +5057,7 @@
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-23</id>
+ <id>-7</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
@@ -4936,313 +5095,178 @@
                                                                                                 <weak_ptr>
                                                                                                         <expired>0</expired>
                                                                                                         <shared_ptr>
- <id>-21</id>
+ <id>-29</id>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
- <size>27</size>
- <variant>2</variant>
- <string>!!Integrating Boost Exception in Existing Exception Class Hierarchies&#10;&#10;Some exception hierarchies can not be modified to make @@boost::(:link </string>
- <variant>1</variant>
- <weak_ptr>
- <expired>0</expired>
- <shared_ptr>
- <id>-23</id>
- </shared_ptr>
- </weak_ptr>
- <variant>2</variant>
- <string>:)@@ a base type. For this case, the @@(:link </string>
- <variant>1</variant>
- <weak_ptr>
- <expired>0</expired>
- <shared_ptr>
- <id>-26</id>
- </shared_ptr>
- </weak_ptr>
- <variant>2</variant>
- <string>:)()@@ function template can be used to make exception objects derive from @@boost::(:link </string>
- <variant>1</variant>
- <weak_ptr>
- <expired>0</expired>
- <shared_ptr>
- <id>-23</id>
- </shared_ptr>
- </weak_ptr>
- <variant>2</variant>
- <string>:)@@ anyway. Here is an example:&#10;&#10;[@#include &lt;(:link </string>
- <variant>1</variant>
- <weak_ptr>
- <expired>0</expired>
- <shared_ptr>
- <id>-28</id>
- </shared_ptr>
- </weak_ptr>
- <variant>2</variant>
- <string>:)&gt;&#10;#include &lt;stdexcept&gt;&#10;&#10;typedef boost::(:link </string>
- <variant>1</variant>
- <weak_ptr>
- <expired>0</expired>
- <shared_ptr>
- <id>-9</id>
- </shared_ptr>
- </weak_ptr>
- <variant>2</variant>
- <string>:)&lt;struct tag_std_range_min,size_t&gt; std_range_min;&#10;typedef boost::(:link </string>
- <variant>1</variant>
- <weak_ptr>
- <expired>0</expired>
- <shared_ptr>
- <id>-9</id>
- </shared_ptr>
- </weak_ptr>
- <variant>2</variant>
- <string>:)&lt;struct tag_std_range_max,size_t&gt; std_range_max;&#10;typedef boost::(:link </string>
- <variant>1</variant>
- <weak_ptr>
- <expired>0</expired>
- <shared_ptr>
- <id>-9</id>
- </shared_ptr>
- </weak_ptr>
- <variant>2</variant>
- <string>:)&lt;struct tag_std_range_index,size_t&gt; std_range_index;&#10;&#10;template &lt;class T&gt;&#10;class&#10;my_container&#10; {&#10; public:&#10;&#10; size_t size() const;&#10;&#10; T const &amp;&#10; operator[]( size_t i ) const&#10; {&#10; if( i &gt; size() )&#10; throw boost::(:link </string>
- <variant>1</variant>
- <weak_ptr>
- <expired>0</expired>
- <shared_ptr>
- <id>-26</id>
- </shared_ptr>
- </weak_ptr>
- <variant>2</variant>
- <string>:)(std::range_error(&quot;Index out of range&quot;)) &lt;&lt;&#10; std_range_min(0) &lt;&lt;&#10; std_range_max(size()) &lt;&lt;&#10; std_range_index(i);&#10; //....&#10; }&#10; };&#10;@]&#10;&#10;@@(:link </string>
- <variant>1</variant>
- <weak_ptr>
- <expired>0</expired>
- <shared_ptr>
- <id>-26</id>
- </shared_ptr>
- </weak_ptr>
- <variant>2</variant>
- <string>|Enable_error_info:)&lt;T&gt;@@ returns an object of &apos;&apos;unspecified type&apos;&apos; which is guaranteed to derive from both @@boost::(:link </string>
- <variant>1</variant>
- <weak_ptr>
- <expired>0</expired>
- <shared_ptr>
- <id>-23</id>
- </shared_ptr>
- </weak_ptr>
- <variant>2</variant>
- <string>:)@@ and @@T@@. This makes it possible to use @@(:link </string>
- <variant>1</variant>
- <weak_ptr>
- <expired>0</expired>
- <shared_ptr>
- <id>-24</id>
- </shared_ptr>
- </weak_ptr>
- <variant>2</variant>
- <string>|operator&lt;&lt;:)()@@ to store additional information in the exception object. The exception can be intercepted as @@T &amp;@@, therefore existing exception handling will not break. It can also be intercepted as @@boost::(:link </string>
- <variant>1</variant>
- <weak_ptr>
- <expired>0</expired>
- <shared_ptr>
- <id>-23</id>
- </shared_ptr>
- </weak_ptr>
- <variant>2</variant>
- <string>:) &amp;@@, so that (:link </string>
- <variant>1</variant>
- <weak_ptr>
- <expired>0</expired>
- <shared_ptr>
- <id>-20</id>
- </shared_ptr>
- </weak_ptr>
- <variant>2</variant>
- <string>|more information can be added to the exception at a later time:).&#10;</string>
+ <size>0</size>
                                                                                                 </container>
                                                                                         </pair>
                                                                                         <pair>
                                                                                                 <weak_ptr>
                                                                                                         <expired>0</expired>
                                                                                                         <shared_ptr>
- <id>-22</id>
+ <id>-30</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-21</id>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
                                                                                                         <size>21</size>
                                                                                                         <variant>2</variant>
- <string>!!Logging of boost::exception Objects&#10;&#10;Class @@boost::(:link </string>
+ <string>!!!error_info&#10;&#10;(:include synopsis:)&#10;&#10;!!!!Requirements:&#10;&#10;@@T@@ must have accessible copy constructor and must not be a reference.&#10;&#10;!!!!Description:&#10;&#10;This class template is used to associate a @@Tag@@ type with a value type @@T@@. Objects of type @@(:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-23</id>
+ <id>-21</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:)@@ provides a virtual member function @@(:link </string>
+ <string>:)&lt;Tag,T&gt;@@ can be passed to @@(:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-35</id>
+ <id>-8</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:::)()@@, with a signature identical to the familiar @@std::exception::what()@@ function. The default implementation returns a string value that is not presentable as a friendly user message, but because it is generated automatically, it is useful for debugging or logging purposes. Here is an example:&#10;&#10;[@#include &lt;(:link </string>
+ <string>|operator&lt;&lt;:)()@@ to be stored in objects of type @@boost::(:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-28</id>
+ <id>-7</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:)&gt;&#10;#include &lt;iostream&gt;&#10;&#10;void f(); //throws unknown types that derive from boost::(:link </string>
+ <string>:)@@.&#10;&#10;!!!!Note:&#10;&#10;The header @@&lt;(:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-23</id>
+ <id>-30</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:).&#10;&#10;void&#10;g()&#10; {&#10; try&#10; {&#10; f();&#10; }&#10; catch(&#10; boost::(:link </string>
+ <string>:)&gt;@@ provides a declaration of the @@(:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-23</id>
+ <id>-21</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:) &amp; e )&#10; {&#10; std::cerr &lt;&lt; e.(:link </string>
+ <string>:)@@ template, which is sufficient for the purpose of @@typedef@@ing an instance for specific @@Tag@@ and @@T@@, like this:&#10;&#10;[@#include &lt;(:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-35</id>
+ <id>-30</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:::)();&#10; }&#10; }@]&#10;&#10;The @@(:link </string>
+ <string>:)&gt;&#10;&#10;typedef boost::(:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-35</id>
+ <id>-21</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:::)()@@ member function iterates over all data objects stored in the @@boost::(:link </string>
+ <string>:)&lt;struct tag_errno,int&gt; errno_info;@]&#10;&#10;Of course, to actually add an @@errno_info@@ object to exceptions using @@(:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-23</id>
+ <id>-8</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:)@@ through @@(:link </string>
+ <string>|operator&lt;&lt;:)()@@, or to retrieve it using @@(:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-24</id>
+ <id>-9</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>|operator&lt;&lt;:)()@@. The returned string is constructed by converting each data object to string and then concatenating these strings together.&#10;&#10;When the @@(:link </string>
+ <string>:)()@@, you must first @@#include &lt;(:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-9</id>
+ <id>-15</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:)&lt;Tag,T&gt;@@ template is instantiated, the system attempts overload resolution for an unqualified call to @@to_string(x)@@, where @@x@@ is of type @@T@@. If this is successful, the @@to_string()@@ overload is used to convert objects of type @@T@@ to string.&#10;&#10;Otherwise, the system attempts overload resolution for @@s &lt;&lt; x@@, where @@s@@ is a @@std::ostringstream@@ and @@x@@ is of type @@T@@. If this is successful, the @@operator&lt;&lt;@@ overload is used to convert objects of type @@T@@ to string.&#10;&#10;Otherwise the system is unable to convert objects of type @@T@@ to string, and an unspecified stub string value is used without issuing a compile error.&#10;</string>
+ <string>:)&gt;@@.&#10;</string>
                                                                                                 </container>
                                                                                         </pair>
                                                                                         <pair>
                                                                                                 <weak_ptr>
                                                                                                         <expired>0</expired>
                                                                                                         <shared_ptr>
- <id>-23</id>
+ <id>-22</id>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
- <size>13</size>
- <variant>2</variant>
- <string>!!exception&#10;&#10;&#10;&#10;(:include synopsis:)&#10;&#10;Class @@boost::(:link </string>
- <variant>1</variant>
- <weak_ptr>
- <expired>0</expired>
- <shared_ptr>
- <id>-23</id>
- </shared_ptr>
- </weak_ptr>
- <variant>2</variant>
- <string>:)@@ is designed to be used as a universal base for user-defined exception types.&#10;&#10;An object of any type deriving from @@boost::(:link </string>
- <variant>1</variant>
- <weak_ptr>
- <expired>0</expired>
- <shared_ptr>
- <id>-23</id>
- </shared_ptr>
- </weak_ptr>
- <variant>2</variant>
- <string>:)@@ can store data of arbitrary types, using the @@</string>
- <variant>1</variant>
- <weak_ptr>
- <expired>0</expired>
- <shared_ptr>
- <id>-9</id>
- </shared_ptr>
- </weak_ptr>
+ <size>7</size>
                                                                                                         <variant>2</variant>
- <string>@@ wrapper and @@(:link </string>
+ <string>!!!BOOST_ERROR_INFO&#10;&#10;(:include synopsis:)&#10;&#10;This macro is designed to be used with @@(:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-24</id>
+ <id>-8</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>|operator&lt;&lt;:)()@@.&#10;&#10;To retrieve data from a @@boost::(:link </string>
+ <string>|operator&lt;&lt;:)()@@ when throwing a @@boost::(:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-23</id>
+ <id>-7</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:)@@ object, use the @@(:link </string>
+ <string>:)@@, to store information about the location of the throw statement. It can be chained with other @@(:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-25</id>
+ <id>-21</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:)()@@ function template.&#10;&#10;(:include members:)&#10;</string>
+ <string>:)@@s in a single throw expression.&#10;</string>
                                                                                                 </container>
                                                                                         </pair>
                                                                                         <pair>
                                                                                                 <weak_ptr>
                                                                                                         <expired>0</expired>
                                                                                                         <shared_ptr>
- <id>-24</id>
+ <id>-23</id>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
- <size>7</size>
+ <size>15</size>
                                                                                                         <variant>2</variant>
- <string>!!!operator&lt;&lt;()&#10;&#10;(:include synopsis:)&#10;&#10;!!!!Requirements:&#10;&#10;@@E@@ must be @@boost::(:link </string>
+ <string>!!!exception_ptr&#10;&#10;(:include synopsis:)&#10;&#10;The @@(:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
@@ -5251,7 +5275,7 @@
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:)@@, or a type that derives (indirectly) from @@boost::(:link </string>
+ <string>:)@@ type can be used to refer to a copy of an exception object. It is Default Constructible, Copy Constructible, Assignable and Equality Comparable; @@(:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
@@ -5260,29 +5284,7 @@
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:)@@.&#10;&#10;!!!!Effects:&#10;&#10;* The first overload stores a copy of @@v@@ into @@x@@. If @@x@@ already contains data of type @@(:link </string>
- <variant>1</variant>
- <weak_ptr>
- <expired>0</expired>
- <shared_ptr>
- <id>-9</id>
- </shared_ptr>
- </weak_ptr>
- <variant>2</variant>
- <string>:)&lt;Tag1,T1&gt;@@, that data is overwritten.&#10;* The @@boost::(:link http://www.boost.org/libs/tuple/doc/tuple_users_guide.html|tuple:)@@ overload is equivalent to @@x &lt;&lt; v.(:link http://www.boost.org/libs/tuple/doc/tuple_users_guide.html#accessing_elements|get:)&lt;0&gt;() &lt;&lt; ... &lt;&lt; v.(:link http://www.boost.org/libs/tuple/doc/tuple_users_guide.html#accessing_elements|get:)&lt;N&gt;()@@.&#10;&#10;!!!!Returns:&#10;&#10;@@x@@.&#10;&#10;(:include throws:)&#10;</string>
- </container>
- </pair>
- <pair>
- <weak_ptr>
- <expired>0</expired>
- <shared_ptr>
- <id>-25</id>
- </shared_ptr>
- </weak_ptr>
- <container>
- <size>7</size>
- <variant>2</variant>
- <string>!!!get_error_info()&#10;&#10;(:include synopsis:)&#10;&#10;!!!!Requirements:&#10;&#10;The type of the @@x@@ object must derive from @@boost::(:link </string>
+ <string>:)@@&apos;s operations do not throw.&#10;&#10;Two instances of @@(:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
@@ -5291,85 +5293,83 @@
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:)@@; @@ErrorInfo@@ must be an instance of the @@(:link </string>
+ <string>:)@@ are equivalent and compare equal if and only if they refer to the same exception.&#10;&#10;The default constructor of @@(:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-9</id>
+ <id>-23</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:)@@ template.&#10;&#10;!!!!Returns:&#10;&#10;If @@x@@ does not store an object of type @@ErrorInfo@@, returns an empty @@(:link http://www.boost.org/libs/smart_ptr/shared_ptr.htm|shared_ptr:)@@; otherwise returns pointer to the stored value. Use @@(:link </string>
+ <string>:)@@ produces the null value of the type. The null value is equivalent only to itself.&#10;&#10;!!!!Note:&#10;&#10;@@(:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-24</id>
+ <id>-23</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>|operator&lt;&lt;:)()@@ to store values in exception objects.&#10;&#10;!!!!Throws:&#10;&#10;Nothing.&#10;</string>
- </container>
- </pair>
- <pair>
- <weak_ptr>
- <expired>0</expired>
- <shared_ptr>
- <id>-26</id>
- </shared_ptr>
- </weak_ptr>
- <container>
- <size>7</size>
- <variant>2</variant>
- <string>!!!enable_error_info()&#10;&#10;(:include synopsis:)&#10;&#10;!!!!Requirements:&#10;&#10;@@T@@ must be a user-defined type with accessible no-throw copy constructor.&#10;&#10;!!!!Returns:&#10;&#10;An object of unspecified type with no-throw copy semantics, which derives publicly from both @@T@@, and class @@boost::(:link </string>
+ <string>:)@@ objects are returned by @@(:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-23</id>
+ <id>-14</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:)@@. The @@T@@ sub-object is initialized from @@x@@ by the @@T@@ copy constructor. If @@T@@ already derives from @@boost::(:link </string>
+ <string>:)()@@ and @@(:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-23</id>
+ <id>-24</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:)@@, then the type of the returned object does not derive @@boost::(:link </string>
+ <string>:)()@@.&#10;</string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-24</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>!!!copy_exception()&#10;&#10;(:include synopsis:)&#10;&#10;!!!!Effects:&#10;&#10;As if @@try { throw e; } catch( ... ) { return </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-23</id>
+ <id>-14</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:)@@.&#10;&#10;!!!!Throws:&#10;&#10;Nothing.&#10;</string>
+ <string>(); }@@&#10;</string>
                                                                                                 </container>
                                                                                         </pair>
                                                                                         <pair>
                                                                                                 <weak_ptr>
                                                                                                         <expired>0</expired>
                                                                                                         <shared_ptr>
- <id>-27</id>
+ <id>-25</id>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
- <size>1</size>
- <variant>2</variant>
- <string>!!!rethrow_exception()&#10;&#10;(:include synopsis:)&#10;&#10;!!!!Precondition:&#10;&#10;@@ep@@ shall not be null.&#10;&#10;!!!!Throws:&#10;&#10;&#10;&#10;The exception to which @@ep@@ refers.&#10;</string>
+ <size>0</size>
                                                                                                 </container>
                                                                                         </pair>
                                                                                         <pair>
                                                                                                 <weak_ptr>
                                                                                                         <expired>0</expired>
                                                                                                         <shared_ptr>
- <id>-28</id>
+ <id>-26</id>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
@@ -5380,7 +5380,7 @@
                                                                                                 <weak_ptr>
                                                                                                         <expired>0</expired>
                                                                                                         <shared_ptr>
- <id>-29</id>
+ <id>-27</id>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
@@ -5402,7 +5402,7 @@
                                                                                                 <weak_ptr>
                                                                                                         <expired>0</expired>
                                                                                                         <shared_ptr>
- <id>-30</id>
+ <id>-28</id>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
@@ -5435,7 +5435,7 @@
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-5</id>
+ <id>-27</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
@@ -5453,7 +5453,7 @@
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-23</id>
+ <id>-7</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
@@ -5484,7 +5484,7 @@
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-28</id>
+ <id>-12</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
@@ -5493,7 +5493,7 @@
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-9</id>
+ <id>-21</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
@@ -5502,7 +5502,7 @@
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-23</id>
+ <id>-7</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
@@ -5511,7 +5511,7 @@
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-9</id>
+ <id>-21</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
@@ -5520,7 +5520,7 @@
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-23</id>
+ <id>-7</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
@@ -5529,7 +5529,7 @@
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-24</id>
+ <id>-8</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
@@ -5538,7 +5538,7 @@
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-25</id>
+ <id>-9</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
@@ -5547,7 +5547,7 @@
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-25</id>
+ <id>-9</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
@@ -5556,7 +5556,7 @@
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-23</id>
+ <id>-7</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
@@ -5578,7 +5578,7 @@
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-23</id>
+ <id>-7</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
@@ -5587,7 +5587,7 @@
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-24</id>
+ <id>-8</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
@@ -5596,7 +5596,7 @@
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-22</id>
+ <id>-6</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
@@ -5618,7 +5618,7 @@
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-23</id>
+ <id>-7</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
@@ -5627,7 +5627,7 @@
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-23</id>
+ <id>-7</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
@@ -5636,7 +5636,7 @@
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-24</id>
+ <id>-8</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
@@ -5658,7 +5658,7 @@
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-23</id>
+ <id>-7</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
@@ -5680,7 +5680,7 @@
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-7</id>
+ <id>-29</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
@@ -5689,7 +5689,7 @@
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-9</id>
+ <id>-21</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
@@ -5698,7 +5698,7 @@
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-9</id>
+ <id>-21</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
@@ -5707,7 +5707,7 @@
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-9</id>
+ <id>-21</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
@@ -5716,7 +5716,7 @@
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-23</id>
+ <id>-7</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
@@ -5725,7 +5725,7 @@
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-25</id>
+ <id>-9</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
@@ -5747,7 +5747,7 @@
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-23</id>
+ <id>-7</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
@@ -5765,7 +5765,7 @@
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-11</id>
+ <id>-23</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
@@ -5774,7 +5774,7 @@
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-29</id>
+ <id>-25</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
@@ -5783,7 +5783,7 @@
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-23</id>
+ <id>-7</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
@@ -5792,7 +5792,7 @@
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-11</id>
+ <id>-23</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
@@ -5801,7 +5801,7 @@
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-11</id>
+ <id>-23</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
@@ -5828,7 +5828,7 @@
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-27</id>
+ <id>-11</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
@@ -5837,7 +5837,7 @@
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-11</id>
+ <id>-23</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
@@ -5846,7 +5846,7 @@
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-27</id>
+ <id>-11</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
@@ -5864,7 +5864,7 @@
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-11</id>
+ <id>-23</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
@@ -5882,7 +5882,7 @@
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-11</id>
+ <id>-23</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
@@ -5909,7 +5909,7 @@
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-27</id>
+ <id>-11</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
@@ -5931,7 +5931,7 @@
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-23</id>
+ <id>-7</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
@@ -5940,7 +5940,7 @@
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-28</id>
+ <id>-12</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
@@ -5949,7 +5949,7 @@
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-9</id>
+ <id>-21</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
@@ -5958,7 +5958,7 @@
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-23</id>
+ <id>-7</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
@@ -5967,7 +5967,7 @@
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-28</id>
+ <id>-12</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
@@ -5976,7 +5976,7 @@
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-9</id>
+ <id>-21</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
@@ -5985,7 +5985,7 @@
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-23</id>
+ <id>-7</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
@@ -5994,7 +5994,7 @@
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-23</id>
+ <id>-7</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
@@ -6003,7 +6003,7 @@
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-23</id>
+ <id>-7</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
@@ -6012,7 +6012,7 @@
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-25</id>
+ <id>-9</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
@@ -6074,7 +6074,9 @@
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
- <size>0</size>
+ <size>1</size>
+ <variant>2</variant>
+ <string>!!!!Throws:&#10;&#10;@@std::bad_alloc@@, or any exception emitted by @@T1..TN@@ copy constructor.&#10;</string>
                                                                                                 </container>
                                                                                         </pair>
                                                                                         <pair>
@@ -6085,18 +6087,7 @@
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
- <size>3</size>
- <variant>2</variant>
- <string>!!!!Throws:&#10;&#10;@@std::bad_alloc@@, or any other exception resulting from copying any of the arguments of @@(:link </string>
- <variant>1</variant>
- <weak_ptr>
- <expired>0</expired>
- <shared_ptr>
- <id>-9</id>
- </shared_ptr>
- </weak_ptr>
- <variant>2</variant>
- <string>:)()@@.&#10;</string>
+ <size>0</size>
                                                                                                 </container>
                                                                                         </pair>
                                                                                         <pair>
@@ -6224,7 +6215,7 @@
                                                                                                 <weak_ptr>
                                                                                                         <expired>0</expired>
                                                                                                         <shared_ptr>
- <id>-21</id>
+ <id>-29</id>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
@@ -6235,7 +6226,7 @@
                                                                                                 <weak_ptr>
                                                                                                         <expired>0</expired>
                                                                                                         <shared_ptr>
- <id>-22</id>
+ <id>-30</id>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
@@ -6246,31 +6237,40 @@
                                                                                                 <weak_ptr>
                                                                                                         <expired>0</expired>
                                                                                                         <shared_ptr>
- <id>-23</id>
+ <id>-21</id>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
- <size>0</size>
+ <size>3</size>
+ <variant>2</variant>
+ <string>!!!!Throws:&#10;&#10;@@std::bad_alloc@@, or any other exception resulting from copying any of the arguments of @@(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-21</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)()@@.&#10;</string>
                                                                                                 </container>
                                                                                         </pair>
                                                                                         <pair>
                                                                                                 <weak_ptr>
                                                                                                         <expired>0</expired>
                                                                                                         <shared_ptr>
- <id>-24</id>
+ <id>-22</id>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
- <size>1</size>
- <variant>2</variant>
- <string>!!!!Throws:&#10;&#10;@@std::bad_alloc@@, or any exception emitted by @@T1..TN@@ copy constructor.&#10;</string>
+ <size>0</size>
                                                                                                 </container>
                                                                                         </pair>
                                                                                         <pair>
                                                                                                 <weak_ptr>
                                                                                                         <expired>0</expired>
                                                                                                         <shared_ptr>
- <id>-25</id>
+ <id>-23</id>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
@@ -6281,7 +6281,7 @@
                                                                                                 <weak_ptr>
                                                                                                         <expired>0</expired>
                                                                                                         <shared_ptr>
- <id>-26</id>
+ <id>-24</id>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
@@ -6292,7 +6292,7 @@
                                                                                                 <weak_ptr>
                                                                                                         <expired>0</expired>
                                                                                                         <shared_ptr>
- <id>-27</id>
+ <id>-25</id>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
@@ -6303,7 +6303,7 @@
                                                                                                 <weak_ptr>
                                                                                                         <expired>0</expired>
                                                                                                         <shared_ptr>
- <id>-28</id>
+ <id>-26</id>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
@@ -6314,7 +6314,7 @@
                                                                                                 <weak_ptr>
                                                                                                         <expired>0</expired>
                                                                                                         <shared_ptr>
- <id>-29</id>
+ <id>-27</id>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
@@ -6336,7 +6336,7 @@
                                                                                                 <weak_ptr>
                                                                                                         <expired>0</expired>
                                                                                                         <shared_ptr>
- <id>-30</id>
+ <id>-28</id>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
@@ -6486,7 +6486,36 @@
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
- <size>0</size>
+ <size>7</size>
+ <variant>2</variant>
+ <string>(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-36</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)&#10;(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-37</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)&#10;(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-35</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)</string>
                                                                                                 </container>
                                                                                         </pair>
                                                                                         <pair>
@@ -6636,7 +6665,7 @@
                                                                                                 <weak_ptr>
                                                                                                         <expired>0</expired>
                                                                                                         <shared_ptr>
- <id>-21</id>
+ <id>-29</id>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
@@ -6647,7 +6676,7 @@
                                                                                                 <weak_ptr>
                                                                                                         <expired>0</expired>
                                                                                                         <shared_ptr>
- <id>-22</id>
+ <id>-30</id>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
@@ -6658,47 +6687,18 @@
                                                                                                 <weak_ptr>
                                                                                                         <expired>0</expired>
                                                                                                         <shared_ptr>
- <id>-23</id>
+ <id>-21</id>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
- <size>7</size>
- <variant>2</variant>
- <string>(:include </string>
- <variant>1</variant>
- <weak_ptr>
- <expired>0</expired>
- <shared_ptr>
- <id>-36</id>
- </shared_ptr>
- </weak_ptr>
- <variant>2</variant>
- <string>:)&#10;(:include </string>
- <variant>1</variant>
- <weak_ptr>
- <expired>0</expired>
- <shared_ptr>
- <id>-37</id>
- </shared_ptr>
- </weak_ptr>
- <variant>2</variant>
- <string>:)&#10;(:include </string>
- <variant>1</variant>
- <weak_ptr>
- <expired>0</expired>
- <shared_ptr>
- <id>-35</id>
- </shared_ptr>
- </weak_ptr>
- <variant>2</variant>
- <string>:)</string>
+ <size>0</size>
                                                                                                 </container>
                                                                                         </pair>
                                                                                         <pair>
                                                                                                 <weak_ptr>
                                                                                                         <expired>0</expired>
                                                                                                         <shared_ptr>
- <id>-24</id>
+ <id>-22</id>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
@@ -6709,7 +6709,7 @@
                                                                                                 <weak_ptr>
                                                                                                         <expired>0</expired>
                                                                                                         <shared_ptr>
- <id>-25</id>
+ <id>-23</id>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
@@ -6720,7 +6720,7 @@
                                                                                                 <weak_ptr>
                                                                                                         <expired>0</expired>
                                                                                                         <shared_ptr>
- <id>-26</id>
+ <id>-24</id>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
@@ -6731,7 +6731,7 @@
                                                                                                 <weak_ptr>
                                                                                                         <expired>0</expired>
                                                                                                         <shared_ptr>
- <id>-27</id>
+ <id>-25</id>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
@@ -6742,7 +6742,7 @@
                                                                                                 <weak_ptr>
                                                                                                         <expired>0</expired>
                                                                                                         <shared_ptr>
- <id>-28</id>
+ <id>-26</id>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
@@ -6753,7 +6753,7 @@
                                                                                                 <weak_ptr>
                                                                                                         <expired>0</expired>
                                                                                                         <shared_ptr>
- <id>-29</id>
+ <id>-27</id>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
@@ -6775,7 +6775,7 @@
                                                                                                 <weak_ptr>
                                                                                                         <expired>0</expired>
                                                                                                         <shared_ptr>
- <id>-30</id>
+ <id>-28</id>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
@@ -6925,7 +6925,18 @@
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
- <size>0</size>
+ <size>3</size>
+ <variant>2</variant>
+ <string>@@#include &lt;(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-31</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)&gt;@@&#10;&#10;[@namespace&#10;boost&#10; {&#10;(:include decl:)&#10; }@]&#10;</string>
                                                                                                 </container>
                                                                                         </pair>
                                                                                         <pair>
@@ -6936,7 +6947,27 @@
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
- <size>0</size>
+ <size>5</size>
+ <variant>2</variant>
+ <string>@@#include &lt;(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-15</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)&gt;@@\\&#10;@@#include &lt;(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-29</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)&gt;&#10;&#10;[@namespace&#10;boost&#10; {&#10;(:include decl:)&#10; }@]&#10;</string>
                                                                                                 </container>
                                                                                         </pair>
                                                                                         <pair>
@@ -6976,7 +7007,7 @@
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-15</id>
+ <id>-28</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
@@ -6998,7 +7029,7 @@
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-29</id>
+ <id>-25</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
@@ -7013,18 +7044,7 @@
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
- <size>3</size>
- <variant>2</variant>
- <string>@@#include &lt;(:link </string>
- <variant>1</variant>
- <weak_ptr>
- <expired>0</expired>
- <shared_ptr>
- <id>-29</id>
- </shared_ptr>
- </weak_ptr>
- <variant>2</variant>
- <string>:)&gt;@@&#10;&#10;[@namespace&#10;boost&#10; {&#10;(:include decl:)&#10; }@]&#10;</string>
+ <size>0</size>
                                                                                                 </container>
                                                                                         </pair>
                                                                                         <pair>
@@ -7042,7 +7062,7 @@
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-5</id>
+ <id>-27</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
@@ -7064,7 +7084,7 @@
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-29</id>
+ <id>-25</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
@@ -7097,7 +7117,7 @@
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-29</id>
+ <id>-25</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
@@ -7141,7 +7161,7 @@
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-30</id>
+ <id>-26</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
@@ -7163,7 +7183,7 @@
                                                                                                 <weak_ptr>
                                                                                                         <expired>0</expired>
                                                                                                         <shared_ptr>
- <id>-21</id>
+ <id>-29</id>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
@@ -7174,7 +7194,7 @@
                                                                                                 <weak_ptr>
                                                                                                         <expired>0</expired>
                                                                                                         <shared_ptr>
- <id>-22</id>
+ <id>-30</id>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
@@ -7185,7 +7205,7 @@
                                                                                                 <weak_ptr>
                                                                                                         <expired>0</expired>
                                                                                                         <shared_ptr>
- <id>-23</id>
+ <id>-21</id>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
@@ -7196,7 +7216,7 @@
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-31</id>
+ <id>-15</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
@@ -7207,11 +7227,11 @@
                                                                                                 <weak_ptr>
                                                                                                         <expired>0</expired>
                                                                                                         <shared_ptr>
- <id>-24</id>
+ <id>-22</id>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
- <size>5</size>
+ <size>3</size>
                                                                                                         <variant>2</variant>
                                                                                                         <string>@@#include &lt;(:link </string>
                                                                                                         <variant>1</variant>
@@ -7222,23 +7242,14 @@
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:)&gt;@@\\&#10;@@#include &lt;(:link </string>
- <variant>1</variant>
- <weak_ptr>
- <expired>0</expired>
- <shared_ptr>
- <id>-7</id>
- </shared_ptr>
- </weak_ptr>
- <variant>2</variant>
- <string>:)&gt;&#10;&#10;[@namespace&#10;boost&#10; {&#10;(:include decl:)&#10; }@]&#10;</string>
+ <string>:)&gt;@@&#10;&#10;[@namespace&#10;boost&#10; {&#10;(:include decl:)&#10; }@]&#10;</string>
                                                                                                 </container>
                                                                                         </pair>
                                                                                         <pair>
                                                                                                 <weak_ptr>
                                                                                                         <expired>0</expired>
                                                                                                         <shared_ptr>
- <id>-25</id>
+ <id>-23</id>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
@@ -7249,7 +7260,7 @@
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-15</id>
+ <id>-25</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
@@ -7260,7 +7271,7 @@
                                                                                                 <weak_ptr>
                                                                                                         <expired>0</expired>
                                                                                                         <shared_ptr>
- <id>-26</id>
+ <id>-24</id>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
@@ -7271,7 +7282,7 @@
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-6</id>
+ <id>-25</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
@@ -7282,29 +7293,18 @@
                                                                                                 <weak_ptr>
                                                                                                         <expired>0</expired>
                                                                                                         <shared_ptr>
- <id>-27</id>
+ <id>-25</id>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
- <size>3</size>
- <variant>2</variant>
- <string>@@#include &lt;(:link </string>
- <variant>1</variant>
- <weak_ptr>
- <expired>0</expired>
- <shared_ptr>
- <id>-29</id>
- </shared_ptr>
- </weak_ptr>
- <variant>2</variant>
- <string>:)&gt;@@&#10;&#10;[@namespace&#10;boost&#10; {&#10;(:include decl:)&#10; }@]&#10;</string>
+ <size>0</size>
                                                                                                 </container>
                                                                                         </pair>
                                                                                         <pair>
                                                                                                 <weak_ptr>
                                                                                                         <expired>0</expired>
                                                                                                         <shared_ptr>
- <id>-28</id>
+ <id>-26</id>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
@@ -7315,7 +7315,7 @@
                                                                                                 <weak_ptr>
                                                                                                         <expired>0</expired>
                                                                                                         <shared_ptr>
- <id>-29</id>
+ <id>-27</id>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
@@ -7337,7 +7337,7 @@
                                                                                                 <weak_ptr>
                                                                                                         <expired>0</expired>
                                                                                                         <shared_ptr>
- <id>-30</id>
+ <id>-28</id>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
@@ -7510,6 +7510,12 @@
                                                                         <id>-20</id>
                                                                 </shared_ptr>
                                                                 <shared_ptr>
+ <id>-29</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-30</id>
+ </shared_ptr>
+ <shared_ptr>
                                                                         <id>-21</id>
                                                                 </shared_ptr>
                                                                 <shared_ptr>
@@ -7531,16 +7537,10 @@
                                                                         <id>-27</id>
                                                                 </shared_ptr>
                                                                 <shared_ptr>
- <id>-28</id>
- </shared_ptr>
- <shared_ptr>
- <id>-29</id>
- </shared_ptr>
- <shared_ptr>
                                                                         <id>-31</id>
                                                                 </shared_ptr>
                                                                 <shared_ptr>
- <id>-30</id>
+ <id>-28</id>
                                                                 </shared_ptr>
                                                                 <shared_ptr>
                                                                         <id>-32</id>
@@ -7704,7 +7704,7 @@
                                                                                 </path>
                                                                         </file>
                                                                         <shared_ptr>
- <id>-28</id>
+ <id>-12</id>
                                                                         </shared_ptr>
                                                                 </pair>
                                                                 <pair>
@@ -7728,7 +7728,7 @@
                                                                                 </path>
                                                                         </file>
                                                                         <shared_ptr>
- <id>-6</id>
+ <id>-28</id>
                                                                         </shared_ptr>
                                                                 </pair>
                                                                 <pair>
@@ -7752,7 +7752,7 @@
                                                                                 </path>
                                                                         </file>
                                                                         <shared_ptr>
- <id>-21</id>
+ <id>-5</id>
                                                                         </shared_ptr>
                                                                 </pair>
                                                                 <pair>
@@ -7804,7 +7804,7 @@
                                                                                 </path>
                                                                         </file>
                                                                         <shared_ptr>
- <id>-25</id>
+ <id>-9</id>
                                                                         </shared_ptr>
                                                                 </pair>
                                                                 <pair>
@@ -7832,7 +7832,7 @@
                                                                                 </path>
                                                                         </file>
                                                                         <shared_ptr>
- <id>-9</id>
+ <id>-21</id>
                                                                         </shared_ptr>
                                                                 </pair>
                                                                 <pair>
@@ -7860,7 +7860,7 @@
                                                                                 </path>
                                                                         </file>
                                                                         <shared_ptr>
- <id>-24</id>
+ <id>-8</id>
                                                                         </shared_ptr>
                                                                 </pair>
                                                                 <pair>
@@ -7884,7 +7884,7 @@
                                                                                 </path>
                                                                         </file>
                                                                         <shared_ptr>
- <id>-30</id>
+ <id>-26</id>
                                                                         </shared_ptr>
                                                                 </pair>
                                                                 <pair>
@@ -7912,7 +7912,7 @@
                                                                                 </path>
                                                                         </file>
                                                                         <shared_ptr>
- <id>-12</id>
+ <id>-24</id>
                                                                         </shared_ptr>
                                                                 </pair>
                                                                 <pair>
@@ -7996,7 +7996,7 @@
                                                                                 </path>
                                                                         </file>
                                                                         <shared_ptr>
- <id>-27</id>
+ <id>-11</id>
                                                                         </shared_ptr>
                                                                 </pair>
                                                                 <pair>
@@ -8024,35 +8024,7 @@
                                                                                 </path>
                                                                         </file>
                                                                         <shared_ptr>
- <id>-11</id>
- </shared_ptr>
- </pair>
- <pair>
- <hook>
- <stream_hook_path>
- <container>
- <size>2</size>
- <strong>7B3C93C7263FD0FB201E2E279FE53520E47550B3C1497DCB5EE4F24832F8235C</strong>
- <weak>2778337684</weak>
- <size>1947</size>
- <position>407</position>
- <strong>21F529F6CC88DB2566F36223A07F700BD043680083D73ABA1A7444A663AAFCFF</strong>
- <weak>4141043385</weak>
- <size>241</size>
- <position>1700</position>
- </container>
- </stream_hook_path>
- </hook>
- <file>
- <path>
- <empty>0</empty>
- <string>../../../../boost/exception/enable_error_info.hpp</string>
- <type>0</type>
- <base>0</base>
- </path>
- </file>
- <shared_ptr>
- <id>-26</id>
+ <id>-23</id>
                                                                         </shared_ptr>
                                                                 </pair>
                                                                 <pair>
@@ -8076,7 +8048,7 @@
                                                                                 </path>
                                                                         </file>
                                                                         <shared_ptr>
- <id>-10</id>
+ <id>-22</id>
                                                                         </shared_ptr>
                                                                 </pair>
                                                                 <pair>
@@ -8100,7 +8072,7 @@
                                                                                 </path>
                                                                         </file>
                                                                         <shared_ptr>
- <id>-5</id>
+ <id>-27</id>
                                                                         </shared_ptr>
                                                                 </pair>
                                                                 <pair>
@@ -8156,7 +8128,7 @@
                                                                                 </path>
                                                                         </file>
                                                                         <shared_ptr>
- <id>-23</id>
+ <id>-7</id>
                                                                         </shared_ptr>
                                                                 </pair>
                                                                 <pair>
@@ -8259,6 +8231,34 @@
                                                                         <hook>
                                                                                 <stream_hook_path>
                                                                                         <container>
+ <size>2</size>
+ <strong>E285EAA0D81E350113B888423C3FA5D2071F070FCA2759D99666EE07C0F8449F</strong>
+ <weak>4208148208</weak>
+ <size>2125</size>
+ <position>457</position>
+ <strong>ACC64445E8B6AAEF58395C0083BC0247CDE33AC00ED8DB9B7B4F216325DEE410</strong>
+ <weak>2943579912</weak>
+ <size>400</size>
+ <position>1719</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/exception/enable_error_info.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-10</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
                                                                                                 <size>1</size>
                                                                                                 <strong>C9AFCA0931CB65AE31811E702FC48CB22348149B1D259CD9161D391FEC640FA8</strong>
                                                                                                 <weak>2324436793</weak>
@@ -8300,7 +8300,7 @@
                                                                                 </path>
                                                                         </file>
                                                                         <shared_ptr>
- <id>-29</id>
+ <id>-25</id>
                                                                         </shared_ptr>
                                                                 </pair>
                                                                 <pair>
@@ -8348,7 +8348,7 @@
                                                                                 </path>
                                                                         </file>
                                                                         <shared_ptr>
- <id>-7</id>
+ <id>-29</id>
                                                                         </shared_ptr>
                                                                 </pair>
                                                                 <pair>
@@ -8372,7 +8372,7 @@
                                                                                 </path>
                                                                         </file>
                                                                         <shared_ptr>
- <id>-8</id>
+ <id>-30</id>
                                                                         </shared_ptr>
                                                                 </pair>
                                                                 <pair>
@@ -8468,7 +8468,7 @@
                                                                                 </path>
                                                                         </file>
                                                                         <shared_ptr>
- <id>-22</id>
+ <id>-6</id>
                                                                         </shared_ptr>
                                                                 </pair>
                                                         </sorted>
@@ -8499,7 +8499,7 @@
                                                                                         <id>-5</id>
                                                                                 </shared_ptr>
                                                                         </weak_ptr>
- <string>boost/exception/enable_current_exception.hpp,exception,header</string>
+ <string>noindex,tutorial</string>
                                                                 </pair>
                                                                 <pair>
                                                                         <weak_ptr>
@@ -8508,7 +8508,7 @@
                                                                                         <id>-6</id>
                                                                                 </shared_ptr>
                                                                         </weak_ptr>
- <string>boost/exception/enable_error_info.hpp,exception,header</string>
+ <string>noindex,tutorial</string>
                                                                 </pair>
                                                                 <pair>
                                                                         <weak_ptr>
@@ -8517,7 +8517,7 @@
                                                                                         <id>-7</id>
                                                                                 </shared_ptr>
                                                                         </weak_ptr>
- <string>boost/exception/info_tuple.hpp,exception,header</string>
+ <string>exception,type</string>
                                                                 </pair>
                                                                 <pair>
                                                                         <weak_ptr>
@@ -8526,7 +8526,7 @@
                                                                                         <id>-8</id>
                                                                                 </shared_ptr>
                                                                         </weak_ptr>
- <string>boost/exception/error_info.hpp,exception,header</string>
+ <string>error_info,exception,free,function,operator&lt;&lt;/exception,template</string>
                                                                 </pair>
                                                                 <pair>
                                                                         <weak_ptr>
@@ -8535,7 +8535,7 @@
                                                                                         <id>-9</id>
                                                                                 </shared_ptr>
                                                                         </weak_ptr>
- <string>error_info,exception,free,function,template</string>
+ <string>error_info,exception,free,function,get_error_info,template</string>
                                                                 </pair>
                                                                 <pair>
                                                                         <weak_ptr>
@@ -8544,7 +8544,7 @@
                                                                                         <id>-10</id>
                                                                                 </shared_ptr>
                                                                         </weak_ptr>
- <string>BOOST_ERROR_INFO,error_info,exception,macro</string>
+ <string>enable_error_info,error_info,exception,free,function,template</string>
                                                                 </pair>
                                                                 <pair>
                                                                         <weak_ptr>
@@ -8553,7 +8553,7 @@
                                                                                         <id>-11</id>
                                                                                 </shared_ptr>
                                                                         </weak_ptr>
- <string>cloning,exception,exception_ptr,type</string>
+ <string>cloning,exception,free,function,rethrow_exception</string>
                                                                 </pair>
                                                                 <pair>
                                                                         <weak_ptr>
@@ -8562,7 +8562,7 @@
                                                                                         <id>-12</id>
                                                                                 </shared_ptr>
                                                                         </weak_ptr>
- <string>cloning,copy_exception,exception,free,function</string>
+ <string>boost/exception.hpp,exception,header</string>
                                                                 </pair>
                                                                 <pair>
                                                                         <weak_ptr>
@@ -8640,82 +8640,82 @@
                                                                         <weak_ptr>
                                                                                 <expired>0</expired>
                                                                                 <shared_ptr>
- <id>-21</id>
+ <id>-29</id>
                                                                                 </shared_ptr>
                                                                         </weak_ptr>
- <string>noindex,tutorial</string>
+ <string>boost/exception/info_tuple.hpp,exception,header</string>
                                                                 </pair>
                                                                 <pair>
                                                                         <weak_ptr>
                                                                                 <expired>0</expired>
                                                                                 <shared_ptr>
- <id>-22</id>
+ <id>-30</id>
                                                                                 </shared_ptr>
                                                                         </weak_ptr>
- <string>noindex,tutorial</string>
+ <string>boost/exception/error_info.hpp,exception,header</string>
                                                                 </pair>
                                                                 <pair>
                                                                         <weak_ptr>
                                                                                 <expired>0</expired>
                                                                                 <shared_ptr>
- <id>-23</id>
+ <id>-21</id>
                                                                                 </shared_ptr>
                                                                         </weak_ptr>
- <string>exception,type</string>
+ <string>error_info,exception,free,function,template</string>
                                                                 </pair>
                                                                 <pair>
                                                                         <weak_ptr>
                                                                                 <expired>0</expired>
                                                                                 <shared_ptr>
- <id>-24</id>
+ <id>-22</id>
                                                                                 </shared_ptr>
                                                                         </weak_ptr>
- <string>error_info,exception,free,function,operator&lt;&lt;/exception,template</string>
+ <string>BOOST_ERROR_INFO,error_info,exception,macro</string>
                                                                 </pair>
                                                                 <pair>
                                                                         <weak_ptr>
                                                                                 <expired>0</expired>
                                                                                 <shared_ptr>
- <id>-25</id>
+ <id>-23</id>
                                                                                 </shared_ptr>
                                                                         </weak_ptr>
- <string>error_info,exception,free,function,get_error_info,template</string>
+ <string>cloning,exception,exception_ptr,type</string>
                                                                 </pair>
                                                                 <pair>
                                                                         <weak_ptr>
                                                                                 <expired>0</expired>
                                                                                 <shared_ptr>
- <id>-26</id>
+ <id>-24</id>
                                                                                 </shared_ptr>
                                                                         </weak_ptr>
- <string>enable_error_info,error_info,exception,free,function,template</string>
+ <string>cloning,copy_exception,exception,free,function</string>
                                                                 </pair>
                                                                 <pair>
                                                                         <weak_ptr>
                                                                                 <expired>0</expired>
                                                                                 <shared_ptr>
- <id>-27</id>
+ <id>-25</id>
                                                                                 </shared_ptr>
                                                                         </weak_ptr>
- <string>cloning,exception,free,function,rethrow_exception</string>
+ <string>boost/exception_ptr.hpp,header</string>
                                                                 </pair>
                                                                 <pair>
                                                                         <weak_ptr>
                                                                                 <expired>0</expired>
                                                                                 <shared_ptr>
- <id>-28</id>
+ <id>-26</id>
                                                                                 </shared_ptr>
                                                                         </weak_ptr>
- <string>boost/exception.hpp,exception,header</string>
+ <string>boost/throw_exception.hpp,header</string>
                                                                 </pair>
                                                                 <pair>
                                                                         <weak_ptr>
                                                                                 <expired>0</expired>
                                                                                 <shared_ptr>
- <id>-29</id>
+ <id>-27</id>
                                                                                 </shared_ptr>
                                                                         </weak_ptr>
- <string>boost/exception_ptr.hpp,header</string>
+ <string>boost/exception/enable_current_exception.hpp,exception,header</string>
                                                                 </pair>
                                                                 <pair>
                                                                         <weak_ptr>
@@ -8730,10 +8730,10 @@
                                                                         <weak_ptr>
                                                                                 <expired>0</expired>
                                                                                 <shared_ptr>
- <id>-30</id>
+ <id>-28</id>
                                                                                 </shared_ptr>
                                                                         </weak_ptr>
- <string>boost/throw_exception.hpp,header</string>
+ <string>boost/exception/enable_error_info.hpp,exception,header</string>
                                                                 </pair>
                                                                 <pair>
                                                                         <weak_ptr>

Modified: branches/proto/v4/libs/ptr_container/test/Jamfile.v2
==============================================================================
--- branches/proto/v4/libs/ptr_container/test/Jamfile.v2 (original)
+++ branches/proto/v4/libs/ptr_container/test/Jamfile.v2 2008-06-05 01:50:03 EDT (Thu, 05 Jun 2008)
@@ -24,6 +24,7 @@
     [ sc-test ptr_deque ]
     [ sc-test ptr_set ]
     [ sc-test ptr_map ]
+ [ sc-test ptr_map_adapter ]
     [ sc-test ptr_array ]
     [ sc-test tree_test ]
     [ sc-test incomplete_type_test ]
@@ -33,5 +34,9 @@
     [ sc-test indirect_fun ]
     [ sc-test serialization : /boost/serialization//boost_serialization ]
     [ sc-test no_exceptions ]
+
+ [ sc-test ptr_unordered_set ]
+ [ sc-test ptr_unordered_map ]
+ #[ sc-test ptr_circular_buffer ]
  
     ;

Modified: branches/proto/v4/libs/ptr_container/test/associative_test_data.hpp
==============================================================================
--- branches/proto/v4/libs/ptr_container/test/associative_test_data.hpp (original)
+++ branches/proto/v4/libs/ptr_container/test/associative_test_data.hpp 2008-06-05 01:50:03 EDT (Thu, 05 Jun 2008)
@@ -13,10 +13,44 @@
 #include <boost/ptr_container/exception.hpp>
 #include <boost/range/sub_range.hpp>
 
-template< typename C, typename B, typename T >
+template< typename C, typename B, typename T, bool Ordered >
 void ptr_set_test();
 
-template< typename C, typename B, typename T >
+template< class T, bool Ordered >
+struct test_algorithms
+{
+ template< class Cont >
+ void operator()( Cont& c, const Cont& c2 ) const
+ {
+ typename Cont::iterator i;
+ typename Cont::const_iterator ci;
+
+ T* t = new T;
+ i = c.lower_bound( *t );
+ ci = c2.lower_bound( *t );
+ i = c.upper_bound( *t );
+ ci = c2.upper_bound( *t );
+ delete t;
+
+ BOOST_DEDUCED_TYPENAME Cont::reverse_iterator ri = c.rbegin();
+ BOOST_DEDUCED_TYPENAME Cont::const_reverse_iterator cri = c2.rbegin();
+ BOOST_DEDUCED_TYPENAME Cont::reverse_iterator rv2 = c.rend();
+ BOOST_DEDUCED_TYPENAME Cont::const_reverse_iterator cvr2 = c2.rend();
+ cri = c.crbegin();
+ cri = c.crend();
+ }
+};
+
+template< class T >
+struct test_algorithms<T,false>
+{
+ template< class Cont>
+ void operator()( Cont& c, const Cont& c2 ) const
+ {
+ }
+};
+
+template< typename C, typename B, typename T, bool Ordered >
 void ptr_set_test()
 {
     using namespace boost;
@@ -27,7 +61,7 @@
     BOOST_CHECK( c.size() == 0 );
     c.insert( c.end(), new T );
     c.insert( c.end(), new T );
-
+
     const C c2( c.begin(), c.end() );
     BOOST_CHECK( c.size() == c2.size() );
     
@@ -49,12 +83,10 @@
     BOOST_DEDUCED_TYPENAME C::allocator_type alloc = c.get_allocator();
     BOOST_DEDUCED_TYPENAME C::iterator i = c.begin();
     BOOST_DEDUCED_TYPENAME C::const_iterator ci = c2.begin();
+ ci = c.cbegin();
+ ci = c.cend();
     BOOST_DEDUCED_TYPENAME C::iterator i2 = c.end();
     BOOST_DEDUCED_TYPENAME C::const_iterator ci2 = c2.begin();
- BOOST_DEDUCED_TYPENAME C::reverse_iterator ri = c.rbegin();
- BOOST_DEDUCED_TYPENAME C::const_reverse_iterator cri = c2.rbegin();
- BOOST_DEDUCED_TYPENAME C::reverse_iterator rv2 = c.rend();
- BOOST_DEDUCED_TYPENAME C::const_reverse_iterator cvr2 = c2.rend();
                              
     BOOST_MESSAGE( "finished iterator test" );
    
@@ -111,6 +143,7 @@
     BOOST_CHECK( c3.empty() == false );
     c.clear();
     unsigned long c3size = c3.size();
+ hide_warning( c3size );
     unsigned long num = c. BOOST_NESTED_TEMPLATE transfer<C>( c3.begin(),
                                                                c3.end(),
                                                                c3 );
@@ -142,14 +175,12 @@
     i = c.find( *t );
     ci = c2.find( *t );
     c2.count( *t );
- i = c.lower_bound( *t );
- ci = c2.lower_bound( *t );
- i = c.upper_bound( *t );
- ci = c2.upper_bound( *t );
+
+ test_algorithms<T,Ordered>()( c, c2 );
     sub = c.equal_range( *t );
     csub = c2.equal_range( *t );
     delete t;
-
+
     BOOST_MESSAGE( "finished algorithms interface test" );
     
 }

Modified: branches/proto/v4/libs/ptr_container/test/ptr_map.cpp
==============================================================================
--- branches/proto/v4/libs/ptr_container/test/ptr_map.cpp (original)
+++ branches/proto/v4/libs/ptr_container/test/ptr_map.cpp 2008-06-05 01:50:03 EDT (Thu, 05 Jun 2008)
@@ -381,6 +381,36 @@
 
 }
 
+#include <boost/tuple/tuple.hpp>
+#include <boost/iterator/zip_iterator.hpp>
+#include <map>
+#include <boost/ptr_container/ptr_map.hpp>
+
+void test_map_iterators()
+{
+ using boost::zip_iterator;
+ using boost::tuple;
+ using boost::make_tuple;
+ using boost::ptr_map;
+ using std::map;
+
+ //typedef map<int, int> theMapType;
+ /*
+ @remark: the following will not compile
+ because of the proxy (non-reference) returned by operator*()
+ of the ptr_map's iterator type.
+
+ typedef boost::ptr_map<int, int> theMapType;
+ typedef zip_iterator
+ <tuple<theMapType::iterator, theMapType::iterator> > zipIter;
+ theMapType map1;
+ theMapType map2;
+ zipIter zip(make_tuple(map1.begin(), map2.begin()));
+ */
+}
+
+
+
 using boost::unit_test::test_suite;
 
 test_suite* init_unit_test_suite( int argc, char* argv[] )
@@ -388,6 +418,7 @@
     test_suite* test = BOOST_TEST_SUITE( "Pointer Container Test Suite" );
 
     test->add( BOOST_TEST_CASE( &test_map ) );
+ test->add( BOOST_TEST_CASE( &test_map_iterators ) );
 
     return test;
 }

Modified: branches/proto/v4/libs/ptr_container/test/ptr_map_adapter.cpp
==============================================================================
--- branches/proto/v4/libs/ptr_container/test/ptr_map_adapter.cpp (original)
+++ branches/proto/v4/libs/ptr_container/test/ptr_map_adapter.cpp 2008-06-05 01:50:03 EDT (Thu, 05 Jun 2008)
@@ -8,25 +8,26 @@
 //
 // For more information, see http://www.boost.org/libs/ptr_container/
 //
-
+
+#include "test_data.hpp"
 #include <boost/ptr_container/ptr_map.hpp>
 #include <string>
 
 using namespace std;
 
-int test_main( int, char*[] )
+void test_ptr_map_adapter()
 {
- typedef_test< ptr_map<int, Base>, Derived >();
- typedef_test< ptr_map<int, Value>, Value >();
+ //typedef_test< ptr_map<int, Base>, Derived >();
+ //typedef_test< ptr_map<int, Value>, Value >();
 
- associative_container_test< ptr_map<int, Base>, Base, Derived >();
- associative_container_test< ptr_map<int, Value>, Value, Value >();
+ //associative_container_test< ptr_map<int, Base>, Base, Derived >();
+ //associative_container_test< ptr_map<int, Value>, Value, Value >();
     
- typedef_test< ptr_multimap<int, Base>, Derived >();
- typedef_test< ptr_multimap<int, Value>, Value >();
+ //typedef_test< ptr_multimap<int, Base>, Derived >();
+ //typedef_test< ptr_multimap<int, Value>, Value >();
 
- associative_container_test< ptr_multimap<int, Base>, Base, Derived >();
- associative_container_test< ptr_multimap<int, Value>, Value, Value >();
+ //associative_container_test< ptr_multimap<int, Base>, Base, Derived >();
+ //associative_container_test< ptr_multimap<int, Value>, Value, Value >();
     
     string joe = "joe";
     string brian = "brian";
@@ -44,7 +45,19 @@
     catch( const bad_ptr_container_operation& )
     { }
 
- return 0;
+ ptr_map<string,int> m2;
+ m2.insert( m2.begin(), *m.begin() );
+ BOOST_CHECK( m != m2 );
+ BOOST_CHECK( m2 < m );
+ m2.insert( m2.begin(), joe, new int(5) );
+ BOOST_CHECK( m != m2 );
+ BOOST_CHECK( m2 > m );
+
+ ptr_multimap<string,int> m3;
+ m3.insert( m3.begin(), *m.begin() );
+ BOOST_CHECK( m3.size() == 1u );
+ m3.insert( m3.begin(), brian, new int(11 ) );
+ BOOST_CHECK( m3.size() == 2u );
 }
 
 
@@ -56,7 +69,7 @@
 {
     test_suite* test = BOOST_TEST_SUITE( "Pointer Container Test Suite" );
 
- test->add( BOOST_TEST_CASE( &test_container_adapter ) );
+ test->add( BOOST_TEST_CASE( &test_ptr_map_adapter ) );
 
     return test;
 }

Modified: branches/proto/v4/libs/ptr_container/test/ptr_set.cpp
==============================================================================
--- branches/proto/v4/libs/ptr_container/test/ptr_set.cpp (original)
+++ branches/proto/v4/libs/ptr_container/test/ptr_set.cpp 2008-06-05 01:50:03 EDT (Thu, 05 Jun 2008)
@@ -41,11 +41,11 @@
 void test_set()
 {
     srand( 0 );
- ptr_set_test< ptr_set<Base>, Base, Derived_class >();
- ptr_set_test< ptr_set<Value>, Value, Value >();
+ ptr_set_test< ptr_set<Base>, Base, Derived_class, true >();
+ ptr_set_test< ptr_set<Value>, Value, Value, true >();
 
- ptr_set_test< ptr_multiset<Base>, Base, Derived_class >();
- ptr_set_test< ptr_multiset<Value>, Value, Value >();
+ ptr_set_test< ptr_multiset<Base>, Base, Derived_class, true >();
+ ptr_set_test< ptr_multiset<Value>, Value, Value, true >();
 
     test_copy< ptr_set<Base>, ptr_set<Derived_class>,
                Derived_class>();

Modified: branches/proto/v4/libs/ptr_container/test/sequence_test_data.hpp
==============================================================================
--- branches/proto/v4/libs/ptr_container/test/sequence_test_data.hpp (original)
+++ branches/proto/v4/libs/ptr_container/test/sequence_test_data.hpp 2008-06-05 01:50:03 EDT (Thu, 05 Jun 2008)
@@ -19,6 +19,13 @@
 template< class IntContainer >
 void algorithms_test();
 
+template< class Cont >
+struct set_capacity
+{
+ void operator()( Cont& ) const
+ { }
+};
+
 template< typename C, typename B, typename T >
 void reversible_container_test()
 {
@@ -27,6 +34,7 @@
     BOOST_MESSAGE( "starting reversible container test" );
     enum { max_cnt = 10, size = 100 };
     C c;
+ set_capacity<C>()( c );
     BOOST_CHECK( c.size() == 0 );
     c.push_back( new T );
     BOOST_CHECK( c.size() == 1 );
@@ -50,6 +58,7 @@
     a_copy.clear();
     a_copy = a_copy;
     BOOST_CHECK( a_copy.empty() );
+ BOOST_CHECK( !c.empty() );
     BOOST_MESSAGE( "finished copying test" );
 
     BOOST_DEDUCED_TYPENAME C::allocator_type alloc = c.get_allocator();

Modified: branches/proto/v4/libs/ptr_container/test/serialization.cpp
==============================================================================
--- branches/proto/v4/libs/ptr_container/test/serialization.cpp (original)
+++ branches/proto/v4/libs/ptr_container/test/serialization.cpp 2008-06-05 01:50:03 EDT (Thu, 05 Jun 2008)
@@ -19,6 +19,7 @@
 #include <boost/archive/text_iarchive.hpp>
 #include <boost/archive/xml_iarchive.hpp>
 #include <boost/archive/xml_oarchive.hpp>
+#include <boost/functional/hash.hpp>
 #include <boost/ptr_container/ptr_container.hpp>
 #include <boost/ptr_container/serialize_ptr_container.hpp>
 #include <boost/serialization/export.hpp>
@@ -68,6 +69,16 @@
     return l.i < r.i;
 }
 
+inline bool operator==( const Base& l, const Base& r )
+{
+ return l.i == r.i;
+}
+
+inline std::size_t hash_value( const Base& b )
+{
+ return boost::hash_value( b.i );
+}
+
 struct Derived : Base
 {
     int i2;
@@ -127,10 +138,10 @@
 
     BOOST_CHECK_EQUAL( vec.size(), vec2.size() );
     BOOST_CHECK_EQUAL( (*vec2.begin()).i, -1 );
- BOOST_CHECK_EQUAL( (*--vec2.end()).i, 0 );
+ BOOST_CHECK_EQUAL( (*++vec2.begin()).i, 0 );
 
- typename Cont::iterator i = vec2.end();
- --i;
+ typename Cont::iterator i = vec2.begin();
+ ++i;
     Derived* d = dynamic_cast<Derived*>( &*i );
     BOOST_CHECK_EQUAL( d->i2, 1 );
 
@@ -218,7 +229,16 @@
     test_serialization_helper< boost::ptr_multiset<Base>,
                                boost::archive::text_oarchive,
                                boost::archive::text_iarchive>();
-
+ /*test_serialization_helper< boost::ptr_unordered_set<Base>,
+ boost::archive::text_oarchive,
+ boost::archive::text_iarchive>();
+ test_serialization_helper< boost::ptr_unordered_multiset<Base>,
+ boost::archive::text_oarchive,
+ boost::archive::text_iarchive>();
+
+ @todo: fix ordernig issue here...
+ */
+
     test_serialization_map_helper< boost::ptr_map<std::string,Base>,
                                    boost::archive::text_oarchive,
                                    boost::archive::text_iarchive>();
@@ -233,6 +253,20 @@
                                    boost::archive::xml_oarchive,
                                    boost::archive::xml_iarchive>();
 
+ test_serialization_map_helper< boost::ptr_unordered_map<std::string,Base>,
+ boost::archive::text_oarchive,
+ boost::archive::text_iarchive>();
+ test_serialization_map_helper< boost::ptr_unordered_multimap<std::string,Base>,
+ boost::archive::text_oarchive,
+ boost::archive::text_iarchive>();
+
+ test_serialization_map_helper< boost::ptr_unordered_map<std::string,Base>,
+ boost::archive::xml_oarchive,
+ boost::archive::xml_iarchive>();
+ test_serialization_map_helper< boost::ptr_unordered_multimap<std::string,Base>,
+ boost::archive::xml_oarchive,
+ boost::archive::xml_iarchive>();
+
 }
 
 

Modified: branches/proto/v4/libs/ptr_container/test/test_data.hpp
==============================================================================
--- branches/proto/v4/libs/ptr_container/test/test_data.hpp (original)
+++ branches/proto/v4/libs/ptr_container/test/test_data.hpp 2008-06-05 01:50:03 EDT (Thu, 05 Jun 2008)
@@ -14,6 +14,7 @@
 #include <boost/config.hpp>
 #include <boost/test/test_tools.hpp>
 #include <boost/lexical_cast.hpp>
+#include <boost/functional/hash.hpp>
 #include <algorithm>
 #include <iostream>
 #include <string>
@@ -39,6 +40,8 @@
     }
     
     Base& operator=( const Base& );
+
+public: // for test reasons only
     int data1, data2, data3;
     string data;
     
@@ -149,9 +152,23 @@
 
 
 
+inline std::size_t hash_value( const Base& b )
+{
+ std::size_t seed = 0;
+ boost::hash_combine( seed, b.data );
+ boost::hash_combine( seed, b.data1 );
+ boost::hash_combine( seed, b.data2 );
+ boost::hash_combine( seed, b.data3 );
+ return seed;
+}
+
+
 class Derived_class : public Base
 {
+public: // for test reasons only
     int i_;
+
+private:
         
     virtual void do_print( ostream& out ) const
     {
@@ -180,12 +197,22 @@
     }
 };
 
+
+
+inline std::size_t hash_value( const Derived_class& b )
+{
+ std::size_t seed = hash_value( static_cast<const Base&>( b ) );
+ boost::hash_combine( seed, b.i_ );
+ return seed;
+}
+
 //////////////////////////////////////////////////////////////////////////////
 // Test class 2: a value class
 //////////////////////////////////////////////////////////////////////////////
 
 class Value
 {
+public: // for test reasons only
     string s_;
     
 public:
@@ -236,6 +263,13 @@
     return out << v.name() << " ";
 }
 
+
+
+inline std::size_t hash_value( const Value& v )
+{
+ return boost::hash_value( v.s_ );
+}
+
 //
 // used to hide "unused variable" warnings
 //

Modified: branches/proto/v4/libs/thread/doc/thread_ref.qbk
==============================================================================
--- branches/proto/v4/libs/thread/doc/thread_ref.qbk (original)
+++ branches/proto/v4/libs/thread/doc/thread_ref.qbk 2008-06-05 01:50:03 EDT (Thu, 05 Jun 2008)
@@ -206,6 +206,8 @@
         static void sleep(const system_time& xt);
     };
 
+ void swap(thread& lhs,thread& rhs);
+
 [section:default_constructor Default Constructor]
 
     thread();
@@ -451,6 +453,36 @@
 
 [endsect]
 
+[section:swap Member function `swap()`]
+
+ void swap(thread& other);
+
+[variablelist
+
+[[Effects:] [Exchanges the threads of execution associated with `*this` and `other`, so `*this` is associated with the thread of
+execution associated with `other` prior to the call, and vice-versa.]]
+
+[[Postconditions:] [`this->get_id()` returns the same value as `other.get_id()` prior to the call. `other.get_id()` returns the same
+value as `this->get_id()` prior to the call.]]
+
+[[Throws:] [Nothing.]]
+
+]
+
+[endsect]
+
+[section:non_member_swap Non-member function `swap()`]
+
+ void swap(thread& lhs,thread& rhs);
+
+[variablelist
+
+[[Effects:] [[link thread.thread_management.thread.swap `lhs.swap(rhs)`].]]
+
+]
+
+[endsect]
+
 
 [section:id Class `boost::thread::id`]
 

Modified: branches/proto/v4/libs/thread/test/test_thread.cpp
==============================================================================
--- branches/proto/v4/libs/thread/test/test_thread.cpp (original)
+++ branches/proto/v4/libs/thread/test/test_thread.cpp 2008-06-05 01:50:03 EDT (Thu, 05 Jun 2008)
@@ -1,5 +1,6 @@
 // Copyright (C) 2001-2003
 // William E. Kempf
+// Copyright (C) 2008 Anthony Williams
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -198,6 +199,22 @@
     timed_test(&do_test_timed_join, 10);
 }
 
+void test_swap()
+{
+ boost::thread t(simple_thread);
+ boost::thread t2(simple_thread);
+ boost::thread::id id1=t.get_id();
+ boost::thread::id id2=t2.get_id();
+
+ t.swap(t2);
+ BOOST_CHECK(t.get_id()==id2);
+ BOOST_CHECK(t2.get_id()==id1);
+
+ swap(t,t2);
+ BOOST_CHECK(t.get_id()==id1);
+ BOOST_CHECK(t2.get_id()==id2);
+}
+
 
 boost::unit_test_framework::test_suite* init_unit_test_suite(int, char*[])
 {
@@ -211,6 +228,7 @@
     test->add(BOOST_TEST_CASE(test_thread_no_interrupt_if_interrupts_disabled_at_interruption_point));
     test->add(BOOST_TEST_CASE(test_creation_through_reference_wrapper));
     test->add(BOOST_TEST_CASE(test_timed_join));
+ test->add(BOOST_TEST_CASE(test_swap));
 
     return test;
 }

Modified: branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/background.html
==============================================================================
--- branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/background.html (original)
+++ branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/background.html 2008-06-05 01:50:03 EDT (Thu, 05 Jun 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -56,7 +56,7 @@
       method available to them.
     </p>
 <a name="boost_typetraits.background.type_traits"></a><h5>
-<a name="id436329"></a>
+<a name="id446121"></a>
       <a href="background.html#boost_typetraits.background.type_traits">Type Traits</a>
     </h5>
 <p>
@@ -84,7 +84,7 @@
       given.
     </p>
 <a name="boost_typetraits.background.implementation"></a><h5>
-<a name="id436440"></a>
+<a name="id446232"></a>
       <a href="background.html#boost_typetraits.background.implementation">Implementation</a>
     </h5>
 <p>
@@ -174,7 +174,7 @@
       in the default template.
     </p>
 <a name="boost_typetraits.background.optimized_copy"></a><h5>
-<a name="id490355"></a>
+<a name="id500131"></a>
       <a href="background.html#boost_typetraits.background.optimized_copy">Optimized copy</a>
     </h5>
 <p>
@@ -247,7 +247,7 @@
       otherwise it will call the "slow but safe version".
     </p>
 <a name="boost_typetraits.background.was_it_worth_it_"></a><h5>
-<a name="id490900"></a>
+<a name="id500676"></a>
       <a href="background.html#boost_typetraits.background.was_it_worth_it_">Was it worth it?</a>
     </h5>
 <p>
@@ -280,7 +280,7 @@
       </li>
 </ul></div>
 <div class="table">
-<a name="id490971"></a><p class="title"><b>Table 1.1. Time taken to copy 1000 elements using `copy&lt;const
+<a name="id500747"></a><p class="title"><b>Table 1.1. Time taken to copy 1000 elements using `copy&lt;const
     T*, T*&gt;` (times in micro-seconds)</b></p>
 <div class="table-contents"><table class="table" summary="Time taken to copy 1000 elements using `copy&lt;const
     T*, T*&gt;` (times in micro-seconds)">
@@ -379,7 +379,7 @@
 </table></div>
 </div>
 <br class="table-break"><a name="boost_typetraits.background.pair_of_references"></a><h5>
-<a name="id491128"></a>
+<a name="id500903"></a>
       <a href="background.html#boost_typetraits.background.pair_of_references">Pair of References</a>
     </h5>
 <p>
@@ -416,7 +416,7 @@
       to hold non-reference types, references, and constant references:
     </p>
 <div class="table">
-<a name="id491489"></a><p class="title"><b>Table 1.2. Required Constructor Argument Types</b></p>
+<a name="id501265"></a><p class="title"><b>Table 1.2. Required Constructor Argument Types</b></p>
 <div class="table-contents"><table class="table" summary="Required Constructor Argument Types">
 <colgroup>
 <col>
@@ -481,7 +481,7 @@
       adds a reference to its type, unless it is already a reference.
     </p>
 <div class="table">
-<a name="id491614"></a><p class="title"><b>Table 1.3. Using add_reference to synthesize the correct constructor
+<a name="id501390"></a><p class="title"><b>Table 1.3. Using add_reference to synthesize the correct constructor
     type</b></p>
 <div class="table-contents"><table class="table" summary="Using add_reference to synthesize the correct constructor
     type">
@@ -598,7 +598,7 @@
       easier to maintain and easier to understand.
     </p>
 <a name="boost_typetraits.background.conclusion"></a><h5>
-<a name="id492236"></a>
+<a name="id502012"></a>
       <a href="background.html#boost_typetraits.background.conclusion">Conclusion</a>
     </h5>
 <p>
@@ -611,7 +611,7 @@
       can be optimal as well as generic.
     </p>
 <a name="boost_typetraits.background.acknowledgements"></a><h5>
-<a name="id492282"></a>
+<a name="id502058"></a>
       <a href="background.html#boost_typetraits.background.acknowledgements">Acknowledgements</a>
     </h5>
 <p>
@@ -619,7 +619,7 @@
       comments when preparing this article.
     </p>
 <a name="background.references"></a><a name="boost_typetraits.background.references"></a><h5>
-<a name="id492316"></a>
+<a name="id502092"></a>
       <a href="background.html#boost_typetraits.background.references">References</a>
     </h5>
 <div class="orderedlist"><ol type="1">

Modified: branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/category.html
==============================================================================
--- branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/category.html (original)
+++ branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/category.html 2008-06-05 01:50:03 EDT (Thu, 05 Jun 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/category/alignment.html
==============================================================================
--- branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/category/alignment.html (original)
+++ branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/category/alignment.html 2008-06-05 01:50:03 EDT (Thu, 05 Jun 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/category/function.html
==============================================================================
--- branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/category/function.html (original)
+++ branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/category/function.html 2008-06-05 01:50:03 EDT (Thu, 05 Jun 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/category/transform.html
==============================================================================
--- branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/category/transform.html (original)
+++ branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/category/transform.html 2008-06-05 01:50:03 EDT (Thu, 05 Jun 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -91,7 +91,7 @@
 <span class="keyword">struct</span> remove_volatile<span class="special">;</span>
 </pre>
 <a name="boost_typetraits.category.transform.broken_compiler_workarounds_"></a><h5>
-<a name="id496263"></a>
+<a name="id506039"></a>
         <a href="transform.html#boost_typetraits.category.transform.broken_compiler_workarounds_">Broken
         Compiler Workarounds:</a>
       </h5>

Modified: branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/category/value_traits.html
==============================================================================
--- branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/category/value_traits.html (original)
+++ branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/category/value_traits.html 2008-06-05 01:50:03 EDT (Thu, 05 Jun 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/category/value_traits/primary.html
==============================================================================
--- branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/category/value_traits/primary.html (original)
+++ branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/category/value_traits/primary.html 2008-06-05 01:50:03 EDT (Thu, 05 Jun 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/category/value_traits/properties.html
==============================================================================
--- branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/category/value_traits/properties.html (original)
+++ branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/category/value_traits/properties.html 2008-06-05 01:50:03 EDT (Thu, 05 Jun 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/category/value_traits/relate.html
==============================================================================
--- branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/category/value_traits/relate.html (original)
+++ branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/category/value_traits/relate.html 2008-06-05 01:50:03 EDT (Thu, 05 Jun 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/credits.html
==============================================================================
--- branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/credits.html (original)
+++ branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/credits.html 2008-06-05 01:50:03 EDT (Thu, 05 Jun 2008)
@@ -13,8 +13,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/examples.html
==============================================================================
--- branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/examples.html (original)
+++ branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/examples.html 2008-06-05 01:50:03 EDT (Thu, 05 Jun 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/examples/copy.html
==============================================================================
--- branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/examples/copy.html (original)
+++ branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/examples/copy.html 2008-06-05 01:50:03 EDT (Thu, 05 Jun 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/examples/destruct.html
==============================================================================
--- branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/examples/destruct.html (original)
+++ branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/examples/destruct.html 2008-06-05 01:50:03 EDT (Thu, 05 Jun 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/examples/fill.html
==============================================================================
--- branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/examples/fill.html (original)
+++ branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/examples/fill.html 2008-06-05 01:50:03 EDT (Thu, 05 Jun 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/examples/iter.html
==============================================================================
--- branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/examples/iter.html (original)
+++ branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/examples/iter.html 2008-06-05 01:50:03 EDT (Thu, 05 Jun 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/examples/to_double.html
==============================================================================
--- branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/examples/to_double.html (original)
+++ branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/examples/to_double.html 2008-06-05 01:50:03 EDT (Thu, 05 Jun 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/intrinsics.html
==============================================================================
--- branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/intrinsics.html (original)
+++ branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/intrinsics.html 2008-06-05 01:50:03 EDT (Thu, 05 Jun 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -71,7 +71,7 @@
       of the following macros:
     </p>
 <div class="table">
-<a name="id498501"></a><p class="title"><b>Table 1.4. Macros for Compiler Intrinsics</b></p>
+<a name="id508277"></a><p class="title"><b>Table 1.4. Macros for Compiler Intrinsics</b></p>
 <div class="table-contents"><table class="table" summary="Macros for Compiler Intrinsics">
 <colgroup>
 <col>
@@ -220,6 +220,90 @@
           </p>
           </td>
 </tr>
+<tr>
+<td>
+ <p>
+ BOOST_IS_ABSTRACT(T)
+ </p>
+ </td>
+<td>
+ <p>
+ Should evaluate to true if T is an abstract type
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ BOOST_IS_BASE_OF(T,U)
+ </p>
+ </td>
+<td>
+ <p>
+ Should evaluate to true if T is a base class of U
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ BOOST_IS_CLASS(T)
+ </p>
+ </td>
+<td>
+ <p>
+ Should evaluate to true if T is a class type
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ BOOST_IS_CONVERTIBLE(T,U)
+ </p>
+ </td>
+<td>
+ <p>
+ Should evaluate to true if T is convertible to U
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ BOOST_IS_ENUM(T)
+ </p>
+ </td>
+<td>
+ <p>
+ Should evaluate to true is T is an enum
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ BOOST_IS_POLYMORPHIC(T)
+ </p>
+ </td>
+<td>
+ <p>
+ Should evaluate to true if T is a polymorphic type
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ BOOST_ALIGNMENT_OF(T)
+ </p>
+ </td>
+<td>
+ <p>
+ Should evaluate to the alignment requirements of type T.
+ </p>
+ </td>
+</tr>
 </tbody>
 </table></div>
 </div>

Modified: branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/intro.html
==============================================================================
--- branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/intro.html (original)
+++ branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/intro.html 2008-06-05 01:50:03 EDT (Thu, 05 Jun 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/mpl.html
==============================================================================
--- branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/mpl.html (original)
+++ branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/mpl.html 2008-06-05 01:50:03 EDT (Thu, 05 Jun 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference.html
==============================================================================
--- branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference.html (original)
+++ branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference.html 2008-06-05 01:50:03 EDT (Thu, 05 Jun 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/add_const.html
==============================================================================
--- branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/add_const.html (original)
+++ branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/add_const.html 2008-06-05 01:50:03 EDT (Thu, 05 Jun 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -53,7 +53,7 @@
         or <code class="computeroutput"> <span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
       </p>
 <div class="table">
-<a name="id503636"></a><p class="title"><b>Table 1.5. Examples</b></p>
+<a name="id513547"></a><p class="title"><b>Table 1.5. Examples</b></p>
 <div class="table-contents"><table class="table" summary="Examples">
 <colgroup>
 <col>

Modified: branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/add_cv.html
==============================================================================
--- branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/add_cv.html (original)
+++ branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/add_cv.html 2008-06-05 01:50:03 EDT (Thu, 05 Jun 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -54,7 +54,7 @@
         or <code class="computeroutput"> <span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
       </p>
 <div class="table">
-<a name="id504275"></a><p class="title"><b>Table 1.6. Examples</b></p>
+<a name="id514185"></a><p class="title"><b>Table 1.6. Examples</b></p>
 <div class="table-contents"><table class="table" summary="Examples">
 <colgroup>
 <col>

Modified: branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/add_pointer.html
==============================================================================
--- branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/add_pointer.html (original)
+++ branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/add_pointer.html 2008-06-05 01:50:03 EDT (Thu, 05 Jun 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -56,7 +56,7 @@
         or <code class="computeroutput"> <span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
       </p>
 <div class="table">
-<a name="id504987"></a><p class="title"><b>Table 1.7. Examples</b></p>
+<a name="id514897"></a><p class="title"><b>Table 1.7. Examples</b></p>
 <div class="table-contents"><table class="table" summary="Examples">
 <colgroup>
 <col>

Modified: branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/add_reference.html
==============================================================================
--- branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/add_reference.html (original)
+++ branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/add_reference.html 2008-06-05 01:50:03 EDT (Thu, 05 Jun 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -53,7 +53,7 @@
         or <code class="computeroutput"> <span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
       </p>
 <div class="table">
-<a name="id505624"></a><p class="title"><b>Table 1.8. Examples</b></p>
+<a name="id515535"></a><p class="title"><b>Table 1.8. Examples</b></p>
 <div class="table-contents"><table class="table" summary="Examples">
 <colgroup>
 <col>

Modified: branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/add_volatile.html
==============================================================================
--- branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/add_volatile.html (original)
+++ branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/add_volatile.html 2008-06-05 01:50:03 EDT (Thu, 05 Jun 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -53,7 +53,7 @@
         or <code class="computeroutput"> <span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
       </p>
 <div class="table">
-<a name="id506254"></a><p class="title"><b>Table 1.9. Examples</b></p>
+<a name="id516164"></a><p class="title"><b>Table 1.9. Examples</b></p>
 <div class="table-contents"><table class="table" summary="Examples">
 <colgroup>
 <col>

Modified: branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/aligned_storage.html
==============================================================================
--- branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/aligned_storage.html (original)
+++ branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/aligned_storage.html 2008-06-05 01:50:03 EDT (Thu, 05 Jun 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/alignment_of.html
==============================================================================
--- branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/alignment_of.html (original)
+++ branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/alignment_of.html 2008-06-05 01:50:03 EDT (Thu, 05 Jun 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/decay.html
==============================================================================
--- branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/decay.html (original)
+++ branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/decay.html 2008-06-05 01:50:03 EDT (Thu, 05 Jun 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -48,7 +48,7 @@
         or <code class="computeroutput"> <span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
       </p>
 <div class="table">
-<a name="id507911"></a><p class="title"><b>Table 1.10. Examples</b></p>
+<a name="id517822"></a><p class="title"><b>Table 1.10. Examples</b></p>
 <div class="table-contents"><table class="table" summary="Examples">
 <colgroup>
 <col>

Modified: branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/extent.html
==============================================================================
--- branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/extent.html (original)
+++ branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/extent.html 2008-06-05 01:50:03 EDT (Thu, 05 Jun 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/floating_point_promotion.html
==============================================================================
--- branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/floating_point_promotion.html (original)
+++ branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/floating_point_promotion.html 2008-06-05 01:50:03 EDT (Thu, 05 Jun 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -49,7 +49,7 @@
         or <code class="computeroutput"> <span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
       </p>
 <div class="table">
-<a name="id509697"></a><p class="title"><b>Table 1.11. Examples</b></p>
+<a name="id519607"></a><p class="title"><b>Table 1.11. Examples</b></p>
 <div class="table-contents"><table class="table" summary="Examples">
 <colgroup>
 <col>

Modified: branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/function_traits.html
==============================================================================
--- branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/function_traits.html (original)
+++ branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/function_traits.html 2008-06-05 01:50:03 EDT (Thu, 05 Jun 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -59,7 +59,7 @@
         </p></td></tr>
 </table></div>
 <div class="table">
-<a name="id510177"></a><p class="title"><b>Table 1.12. Function Traits Members</b></p>
+<a name="id520088"></a><p class="title"><b>Table 1.12. Function Traits Members</b></p>
 <div class="table-contents"><table class="table" summary="Function Traits Members">
 <colgroup>
 <col>
@@ -122,7 +122,7 @@
 </table></div>
 </div>
 <br class="table-break"><div class="table">
-<a name="id510455"></a><p class="title"><b>Table 1.13. Examples</b></p>
+<a name="id520365"></a><p class="title"><b>Table 1.13. Examples</b></p>
 <div class="table-contents"><table class="table" summary="Examples">
 <colgroup>
 <col>

Modified: branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/has_no_throw_def_cons.html
==============================================================================
--- branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/has_no_throw_def_cons.html (original)
+++ branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/has_no_throw_def_cons.html 2008-06-05 01:50:03 EDT (Thu, 05 Jun 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/has_nothrow_assign.html
==============================================================================
--- branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/has_nothrow_assign.html (original)
+++ branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/has_nothrow_assign.html 2008-06-05 01:50:03 EDT (Thu, 05 Jun 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/has_nothrow_constructor.html
==============================================================================
--- branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/has_nothrow_constructor.html (original)
+++ branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/has_nothrow_constructor.html 2008-06-05 01:50:03 EDT (Thu, 05 Jun 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/has_nothrow_copy.html
==============================================================================
--- branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/has_nothrow_copy.html (original)
+++ branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/has_nothrow_copy.html 2008-06-05 01:50:03 EDT (Thu, 05 Jun 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/has_nothrow_cp_cons.html
==============================================================================
--- branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/has_nothrow_cp_cons.html (original)
+++ branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/has_nothrow_cp_cons.html 2008-06-05 01:50:03 EDT (Thu, 05 Jun 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/has_trivial_assign.html
==============================================================================
--- branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/has_trivial_assign.html (original)
+++ branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/has_trivial_assign.html 2008-06-05 01:50:03 EDT (Thu, 05 Jun 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/has_trivial_constructor.html
==============================================================================
--- branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/has_trivial_constructor.html (original)
+++ branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/has_trivial_constructor.html 2008-06-05 01:50:03 EDT (Thu, 05 Jun 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/has_trivial_copy.html
==============================================================================
--- branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/has_trivial_copy.html (original)
+++ branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/has_trivial_copy.html 2008-06-05 01:50:03 EDT (Thu, 05 Jun 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/has_trivial_cp_cons.html
==============================================================================
--- branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/has_trivial_cp_cons.html (original)
+++ branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/has_trivial_cp_cons.html 2008-06-05 01:50:03 EDT (Thu, 05 Jun 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/has_trivial_def_cons.html
==============================================================================
--- branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/has_trivial_def_cons.html (original)
+++ branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/has_trivial_def_cons.html 2008-06-05 01:50:03 EDT (Thu, 05 Jun 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/has_trivial_destructor.html
==============================================================================
--- branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/has_trivial_destructor.html (original)
+++ branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/has_trivial_destructor.html 2008-06-05 01:50:03 EDT (Thu, 05 Jun 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/has_virtual_destructor.html
==============================================================================
--- branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/has_virtual_destructor.html (original)
+++ branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/has_virtual_destructor.html 2008-06-05 01:50:03 EDT (Thu, 05 Jun 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/integral_constant.html
==============================================================================
--- branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/integral_constant.html (original)
+++ branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/integral_constant.html 2008-06-05 01:50:03 EDT (Thu, 05 Jun 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/integral_promotion.html
==============================================================================
--- branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/integral_promotion.html (original)
+++ branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/integral_promotion.html 2008-06-05 01:50:03 EDT (Thu, 05 Jun 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -49,7 +49,7 @@
         or <code class="computeroutput"> <span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
       </p>
 <div class="table">
-<a name="id515944"></a><p class="title"><b>Table 1.14. Examples</b></p>
+<a name="id525991"></a><p class="title"><b>Table 1.14. Examples</b></p>
 <div class="table-contents"><table class="table" summary="Examples">
 <colgroup>
 <col>

Modified: branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/is_abstract.html
==============================================================================
--- branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/is_abstract.html (original)
+++ branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/is_abstract.html 2008-06-05 01:50:03 EDT (Thu, 05 Jun 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/is_arithmetic.html
==============================================================================
--- branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/is_arithmetic.html (original)
+++ branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/is_arithmetic.html 2008-06-05 01:50:03 EDT (Thu, 05 Jun 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/is_array.html
==============================================================================
--- branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/is_array.html (original)
+++ branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/is_array.html 2008-06-05 01:50:03 EDT (Thu, 05 Jun 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/is_base_of.html
==============================================================================
--- branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/is_base_of.html (original)
+++ branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/is_base_of.html 2008-06-05 01:50:03 EDT (Thu, 05 Jun 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/is_class.html
==============================================================================
--- branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/is_class.html (original)
+++ branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/is_class.html 2008-06-05 01:50:03 EDT (Thu, 05 Jun 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/is_complex.html
==============================================================================
--- branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/is_complex.html (original)
+++ branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/is_complex.html 2008-06-05 01:50:03 EDT (Thu, 05 Jun 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/is_compound.html
==============================================================================
--- branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/is_compound.html (original)
+++ branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/is_compound.html 2008-06-05 01:50:03 EDT (Thu, 05 Jun 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/is_const.html
==============================================================================
--- branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/is_const.html (original)
+++ branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/is_const.html 2008-06-05 01:50:03 EDT (Thu, 05 Jun 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/is_convertible.html
==============================================================================
--- branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/is_convertible.html (original)
+++ branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/is_convertible.html 2008-06-05 01:50:03 EDT (Thu, 05 Jun 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/is_empty.html
==============================================================================
--- branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/is_empty.html (original)
+++ branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/is_empty.html 2008-06-05 01:50:03 EDT (Thu, 05 Jun 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/is_enum.html
==============================================================================
--- branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/is_enum.html (original)
+++ branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/is_enum.html 2008-06-05 01:50:03 EDT (Thu, 05 Jun 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/is_floating_point.html
==============================================================================
--- branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/is_floating_point.html (original)
+++ branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/is_floating_point.html 2008-06-05 01:50:03 EDT (Thu, 05 Jun 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/is_function.html
==============================================================================
--- branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/is_function.html (original)
+++ branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/is_function.html 2008-06-05 01:50:03 EDT (Thu, 05 Jun 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/is_fundamental.html
==============================================================================
--- branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/is_fundamental.html (original)
+++ branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/is_fundamental.html 2008-06-05 01:50:03 EDT (Thu, 05 Jun 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/is_integral.html
==============================================================================
--- branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/is_integral.html (original)
+++ branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/is_integral.html 2008-06-05 01:50:03 EDT (Thu, 05 Jun 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/is_member_function_pointer.html
==============================================================================
--- branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/is_member_function_pointer.html (original)
+++ branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/is_member_function_pointer.html 2008-06-05 01:50:03 EDT (Thu, 05 Jun 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/is_member_object_pointer.html
==============================================================================
--- branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/is_member_object_pointer.html (original)
+++ branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/is_member_object_pointer.html 2008-06-05 01:50:03 EDT (Thu, 05 Jun 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/is_member_pointer.html
==============================================================================
--- branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/is_member_pointer.html (original)
+++ branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/is_member_pointer.html 2008-06-05 01:50:03 EDT (Thu, 05 Jun 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/is_object.html
==============================================================================
--- branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/is_object.html (original)
+++ branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/is_object.html 2008-06-05 01:50:03 EDT (Thu, 05 Jun 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/is_pod.html
==============================================================================
--- branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/is_pod.html (original)
+++ branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/is_pod.html 2008-06-05 01:50:03 EDT (Thu, 05 Jun 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/is_pointer.html
==============================================================================
--- branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/is_pointer.html (original)
+++ branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/is_pointer.html 2008-06-05 01:50:03 EDT (Thu, 05 Jun 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/is_polymorphic.html
==============================================================================
--- branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/is_polymorphic.html (original)
+++ branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/is_polymorphic.html 2008-06-05 01:50:03 EDT (Thu, 05 Jun 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/is_reference.html
==============================================================================
--- branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/is_reference.html (original)
+++ branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/is_reference.html 2008-06-05 01:50:03 EDT (Thu, 05 Jun 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/is_same.html
==============================================================================
--- branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/is_same.html (original)
+++ branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/is_same.html 2008-06-05 01:50:03 EDT (Thu, 05 Jun 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/is_scalar.html
==============================================================================
--- branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/is_scalar.html (original)
+++ branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/is_scalar.html 2008-06-05 01:50:03 EDT (Thu, 05 Jun 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/is_signed.html
==============================================================================
--- branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/is_signed.html (original)
+++ branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/is_signed.html 2008-06-05 01:50:03 EDT (Thu, 05 Jun 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/is_stateless.html
==============================================================================
--- branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/is_stateless.html (original)
+++ branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/is_stateless.html 2008-06-05 01:50:03 EDT (Thu, 05 Jun 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/is_union.html
==============================================================================
--- branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/is_union.html (original)
+++ branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/is_union.html 2008-06-05 01:50:03 EDT (Thu, 05 Jun 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/is_unsigned.html
==============================================================================
--- branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/is_unsigned.html (original)
+++ branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/is_unsigned.html 2008-06-05 01:50:03 EDT (Thu, 05 Jun 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/is_void.html
==============================================================================
--- branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/is_void.html (original)
+++ branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/is_void.html 2008-06-05 01:50:03 EDT (Thu, 05 Jun 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/is_volatile.html
==============================================================================
--- branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/is_volatile.html (original)
+++ branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/is_volatile.html 2008-06-05 01:50:03 EDT (Thu, 05 Jun 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/make_signed.html
==============================================================================
--- branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/make_signed.html (original)
+++ branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/make_signed.html 2008-06-05 01:50:03 EDT (Thu, 05 Jun 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -54,7 +54,7 @@
         or <code class="computeroutput"> <span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
       </p>
 <div class="table">
-<a name="id536284"></a><p class="title"><b>Table 1.15. Examples</b></p>
+<a name="id546331"></a><p class="title"><b>Table 1.15. Examples</b></p>
 <div class="table-contents"><table class="table" summary="Examples">
 <colgroup>
 <col>

Modified: branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/make_unsigned.html
==============================================================================
--- branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/make_unsigned.html (original)
+++ branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/make_unsigned.html 2008-06-05 01:50:03 EDT (Thu, 05 Jun 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -54,7 +54,7 @@
         or <code class="computeroutput"> <span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
       </p>
 <div class="table">
-<a name="id536916"></a><p class="title"><b>Table 1.16. Examples</b></p>
+<a name="id546963"></a><p class="title"><b>Table 1.16. Examples</b></p>
 <div class="table-contents"><table class="table" summary="Examples">
 <colgroup>
 <col>

Modified: branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/promote.html
==============================================================================
--- branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/promote.html (original)
+++ branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/promote.html 2008-06-05 01:50:03 EDT (Thu, 05 Jun 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -51,7 +51,7 @@
         or <code class="computeroutput"> <span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
       </p>
 <div class="table">
-<a name="id537616"></a><p class="title"><b>Table 1.17. Examples</b></p>
+<a name="id547663"></a><p class="title"><b>Table 1.17. Examples</b></p>
 <div class="table-contents"><table class="table" summary="Examples">
 <colgroup>
 <col>

Modified: branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/rank.html
==============================================================================
--- branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/rank.html (original)
+++ branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/rank.html 2008-06-05 01:50:03 EDT (Thu, 05 Jun 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/remove_all_extents.html
==============================================================================
--- branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/remove_all_extents.html (original)
+++ branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/remove_all_extents.html 2008-06-05 01:50:03 EDT (Thu, 05 Jun 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -54,7 +54,7 @@
         or <code class="computeroutput"> <span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
       </p>
 <div class="table">
-<a name="id539049"></a><p class="title"><b>Table 1.18. Examples</b></p>
+<a name="id549096"></a><p class="title"><b>Table 1.18. Examples</b></p>
 <div class="table-contents"><table class="table" summary="Examples">
 <colgroup>
 <col>

Modified: branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/remove_const.html
==============================================================================
--- branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/remove_const.html (original)
+++ branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/remove_const.html 2008-06-05 01:50:03 EDT (Thu, 05 Jun 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -53,7 +53,7 @@
         or <code class="computeroutput"> <span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
       </p>
 <div class="table">
-<a name="id539771"></a><p class="title"><b>Table 1.19. Examples</b></p>
+<a name="id549818"></a><p class="title"><b>Table 1.19. Examples</b></p>
 <div class="table-contents"><table class="table" summary="Examples">
 <colgroup>
 <col>

Modified: branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/remove_cv.html
==============================================================================
--- branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/remove_cv.html (original)
+++ branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/remove_cv.html 2008-06-05 01:50:03 EDT (Thu, 05 Jun 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -53,7 +53,7 @@
         or <code class="computeroutput"> <span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
       </p>
 <div class="table">
-<a name="id540474"></a><p class="title"><b>Table 1.20. Examples</b></p>
+<a name="id550521"></a><p class="title"><b>Table 1.20. Examples</b></p>
 <div class="table-contents"><table class="table" summary="Examples">
 <colgroup>
 <col>

Modified: branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/remove_extent.html
==============================================================================
--- branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/remove_extent.html (original)
+++ branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/remove_extent.html 2008-06-05 01:50:03 EDT (Thu, 05 Jun 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -54,7 +54,7 @@
         or <code class="computeroutput"> <span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
       </p>
 <div class="table">
-<a name="id541178"></a><p class="title"><b>Table 1.21. Examples</b></p>
+<a name="id551225"></a><p class="title"><b>Table 1.21. Examples</b></p>
 <div class="table-contents"><table class="table" summary="Examples">
 <colgroup>
 <col>

Modified: branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/remove_pointer.html
==============================================================================
--- branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/remove_pointer.html (original)
+++ branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/remove_pointer.html 2008-06-05 01:50:03 EDT (Thu, 05 Jun 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -53,7 +53,7 @@
         or <code class="computeroutput"> <span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
       </p>
 <div class="table">
-<a name="id541913"></a><p class="title"><b>Table 1.22. Examples</b></p>
+<a name="id551960"></a><p class="title"><b>Table 1.22. Examples</b></p>
 <div class="table-contents"><table class="table" summary="Examples">
 <colgroup>
 <col>

Modified: branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/remove_reference.html
==============================================================================
--- branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/remove_reference.html (original)
+++ branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/remove_reference.html 2008-06-05 01:50:03 EDT (Thu, 05 Jun 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -53,7 +53,7 @@
         or <code class="computeroutput"> <span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
       </p>
 <div class="table">
-<a name="id542592"></a><p class="title"><b>Table 1.23. Examples</b></p>
+<a name="id552640"></a><p class="title"><b>Table 1.23. Examples</b></p>
 <div class="table-contents"><table class="table" summary="Examples">
 <colgroup>
 <col>

Modified: branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/remove_volatile.html
==============================================================================
--- branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/remove_volatile.html (original)
+++ branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/remove_volatile.html 2008-06-05 01:50:03 EDT (Thu, 05 Jun 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -53,7 +53,7 @@
         or <code class="computeroutput"> <span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
       </p>
 <div class="table">
-<a name="id543198"></a><p class="title"><b>Table 1.24. Examples</b></p>
+<a name="id553246"></a><p class="title"><b>Table 1.24. Examples</b></p>
 <div class="table-contents"><table class="table" summary="Examples">
 <colgroup>
 <col>

Modified: branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/type_with_alignment.html
==============================================================================
--- branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/type_with_alignment.html (original)
+++ branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/reference/type_with_alignment.html 2008-06-05 01:50:03 EDT (Thu, 05 Jun 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/user_defined.html
==============================================================================
--- branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/user_defined.html (original)
+++ branches/proto/v4/libs/type_traits/doc/html/boost_typetraits/user_defined.html 2008-06-05 01:50:03 EDT (Thu, 05 Jun 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v4/libs/type_traits/doc/html/index.html
==============================================================================
--- branches/proto/v4/libs/type_traits/doc/html/index.html (original)
+++ branches/proto/v4/libs/type_traits/doc/html/index.html 2008-06-05 01:50:03 EDT (Thu, 05 Jun 2008)
@@ -12,8 +12,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -30,7 +30,7 @@
       Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten Ottosen, Robert
       Ramey and Jeremy Siek</p></div>
 <div><div class="legalnotice">
-<a name="id437635"></a><p>
+<a name="id445702"></a><p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
       </p>

Modified: branches/proto/v4/libs/type_traits/doc/intrinsics.qbk
==============================================================================
--- branches/proto/v4/libs/type_traits/doc/intrinsics.qbk (original)
+++ branches/proto/v4/libs/type_traits/doc/intrinsics.qbk 2008-06-05 01:50:03 EDT (Thu, 05 Jun 2008)
@@ -57,6 +57,15 @@
    [[BOOST_HAS_NOTHROW_COPY(T)][Should evaluate to true if `T(t)` can not throw]]
    [[BOOST_HAS_NOTHROW_ASSIGN(T)][Should evaluate to true if `T t, u; t = u` can not throw]]
    [[BOOST_HAS_VIRTUAL_DESTRUCTOR(T)][Should evaluate to true T has a virtual destructor]]
+
+ [[BOOST_IS_ABSTRACT(T)][Should evaluate to true if T is an abstract type]]
+ [[BOOST_IS_BASE_OF(T,U)][Should evaluate to true if T is a base class of U]]
+ [[BOOST_IS_CLASS(T)][Should evaluate to true if T is a class type]]
+ [[BOOST_IS_CONVERTIBLE(T,U)][Should evaluate to true if T is convertible to U]]
+ [[BOOST_IS_ENUM(T)][Should evaluate to true is T is an enum]]
+ [[BOOST_IS_POLYMORPHIC(T)][Should evaluate to true if T is a polymorphic type]]
+ [[BOOST_ALIGNMENT_OF(T)][Should evaluate to the alignment requirements of type T.]]
+
 ]
 
 [endsect]

Modified: branches/proto/v4/libs/type_traits/test/alignment_of_test.cpp
==============================================================================
--- branches/proto/v4/libs/type_traits/test/alignment_of_test.cpp (original)
+++ branches/proto/v4/libs/type_traits/test/alignment_of_test.cpp 2008-06-05 01:50:03 EDT (Thu, 05 Jun 2008)
@@ -16,6 +16,37 @@
 // VC++ emits an awful lot of warnings unless we define these:
 #ifdef BOOST_MSVC
 # pragma warning(disable:4244)
+//
+// What follows here is the test case for issue 1946.
+//
+#include <boost/function.hpp>
+// This kind of packing is set within MSVC 9.0 headers.
+// E.g. std::ostream has it.
+#pragma pack(push,8)
+
+// The issue is gone if Root has no data members
+struct Root { int a; };
+// The issue is gone if Root is inherited non-virtually
+struct A : virtual public Root {};
+
+#pragma pack(pop)
+//
+// This class has 8-byte alignment but is 44 bytes in size, which means
+// that elements in an array of this type will not actually be 8 byte
+// aligned. This appears to be an MSVC bug, and throws off our
+// alignment calculations: causing us to report a non-sensical 12-byte
+// alignment for this type. This is fixed by using the native __alignof
+// operator.
+//
+class issue1946 :
+ public A
+{
+public:
+ // The issue is gone if the type is not a boost::function. The signature doesn't matter.
+ typedef boost::function0< void > function_type;
+ function_type m_function;
+};
+
 #endif
 
 
@@ -63,6 +94,10 @@
 BOOST_CHECK_INTEGRAL_CONSTANT(::tt::alignment_of<empty_UDT>::value, ALIGNOF(empty_UDT));
 BOOST_CHECK_INTEGRAL_CONSTANT(::tt::alignment_of<union_UDT>::value, ALIGNOF(union_UDT));
 
+#if defined(BOOST_MSVC) && (BOOST_MSVC >= 1400)
+BOOST_CHECK_INTEGRAL_CONSTANT(::tt::alignment_of<issue1946>::value, ALIGNOF(issue1946));
+#endif
+
 TT_TEST_END
 
 

Modified: branches/proto/v4/libs/type_traits/test/type_with_alignment_test.cpp
==============================================================================
--- branches/proto/v4/libs/type_traits/test/type_with_alignment_test.cpp (original)
+++ branches/proto/v4/libs/type_traits/test/type_with_alignment_test.cpp 2008-06-05 01:50:03 EDT (Thu, 05 Jun 2008)
@@ -35,6 +35,14 @@
 
 #define TYPE_WITH_ALIGNMENT_TEST(T)\
 {\
+std::cout << "\ntesting type " << typeid(T).name() << std::endl;\
+std::cout << "Alignment of T is " << ::tt::alignment_of< T >::value << std::endl;\
+std::cout << "Aligned type is " << typeid(::tt::type_with_alignment< ::tt::alignment_of< T >::value>::type).name() << std::endl;\
+std::cout << "Alignment of aligned type is " << ::tt::alignment_of<\
+ ::tt::type_with_alignment<\
+ ::tt::alignment_of< T >::value\
+ >::type\
+>::value << std::endl;\
 BOOST_CHECK(::tt::alignment_of<\
                ::tt::type_with_alignment<\
                   ::tt::alignment_of< T >::value\
@@ -57,10 +65,6 @@
 
 TT_TEST_BEGIN(type_with_alignment)
 
-BOOST_MESSAGE(typeid(::tt::type_with_alignment<
- ::tt::alignment_of<char>::value
- >::type).name());
-
 TYPE_WITH_ALIGNMENT_TEST_EX(char)
 TYPE_WITH_ALIGNMENT_TEST_EX(short)
 TYPE_WITH_ALIGNMENT_TEST_EX(int)

Modified: branches/proto/v4/libs/wave/samples/hannibal/translation_unit_parser.h
==============================================================================
--- branches/proto/v4/libs/wave/samples/hannibal/translation_unit_parser.h (original)
+++ branches/proto/v4/libs/wave/samples/hannibal/translation_unit_parser.h 2008-06-05 01:50:03 EDT (Thu, 05 Jun 2008)
@@ -34,8 +34,7 @@
         const char rule_type[],
         std::ostream &strm
         )
- :rule_type_( rule_type),
- strm_( strm)
+ : strm_( strm), rule_type_( rule_type)
     {
         // nop
     }
@@ -297,7 +296,8 @@
             HANNIBAL_REGISTER_RULE( string_literal);
             string_literal
                 = pattern_p( StringLiteralTokenType, TokenTypeMask)
-
+ ;
+
             HANNIBAL_REGISTER_RULE( boolean_literal);
             boolean_literal
                 = pattern_p( BoolLiteralTokenType, TokenTypeMask)

Modified: branches/proto/v4/status/explicit-failures-markup.xml
==============================================================================
--- branches/proto/v4/status/explicit-failures-markup.xml (original)
+++ branches/proto/v4/status/explicit-failures-markup.xml 2008-06-05 01:50:03 EDT (Thu, 05 Jun 2008)
@@ -1850,14 +1850,12 @@
             <toolset name="gcc-3.1*"/>
             <toolset name="gcc-3.2*"/>
             <toolset name="gcc-3.3*"/>
- <toolset name="gcc-4.2.1_hpux_ia64"/>
             <toolset name="mipspro"/>
             <toolset name="acc*"/>
             <toolset name="msvc-8.0~wm5*"/>
             <toolset name="vacpp*"/>
             <toolset name="pathscale*"/>
             <toolset name="intel-linux-8.*"/>
- <toolset name="gcc-3.4.2_hpux_pa_risc"/>
             <toolset name="gcc-3.4.6_linux_ia64"/>
             <note author="Ion Gazta&#241;aga">
                 The compiler does not support features that are essential for the library.

Modified: branches/proto/v4/tools/build/v2/build/modifiers.jam
==============================================================================
--- branches/proto/v4/tools/build/v2/build/modifiers.jam (original)
+++ branches/proto/v4/tools/build/v2/build/modifiers.jam 2008-06-05 01:50:03 EDT (Thu, 05 Jun 2008)
@@ -45,7 +45,7 @@
     # Wraps the generation of the target to call before and after rules to
     # affect the real target.
     #
- rule run ( project name ? : property-set : sources + : multiple ? )
+ rule run ( project name ? : property-set : sources + )
     {
         local result ;
         local current-target = $(project)^$(name) ;
@@ -54,24 +54,20 @@
             # Before modifications...
             local project_ =
                 [ modify-project-before
- $(project) $(name) : $(property-set) : $(sources) : $(multiple) ] ;
+ $(project) $(name) : $(property-set) : $(sources) ] ;
             local name_ =
                 [ modify-name-before
- $(project) $(name) : $(property-set) : $(sources) : $(multiple) ] ;
+ $(project) $(name) : $(property-set) : $(sources) ] ;
             local property-set_ =
                 [ modify-properties-before
- $(project) $(name) : $(property-set) : $(sources) : $(multiple) ] ;
+ $(project) $(name) : $(property-set) : $(sources) ] ;
             local sources_ =
                 [ modify-sources-before
- $(project) $(name) : $(property-set) : $(sources) : $(multiple) ] ;
- local multiple_ =
- [ modify-multiple-before
- $(project) $(name) : $(property-set) : $(sources) : $(multiple) ] ;
+ $(project) $(name) : $(property-set) : $(sources) ] ;
             project = $(project_) ;
             name = $(name_) ;
             property-set = $(property-set_) ;
             sources = $(sources_) ;
- multiple = $(multiple_) ;
 
             # Generate the real target...
             local target-type-p =
@@ -79,7 +75,7 @@
             self.targets-in-progress += $(current-target) ;
             result =
                 [ generators.construct $(project) $(name)
- : $(target-type-p:G=) $(multiple)
+ : $(target-type-p:G=)
                     : $(property-set)
                     : $(sources) ] ;
             self.targets-in-progress = $(self.targets-in-progress[1--2]) ;
@@ -89,38 +85,32 @@
                 [ modify-target-after $(result)
                     : $(project) $(name)
                     : $(property-set)
- : $(sources)
- : $(multiple) ] ;
+ : $(sources) ] ;
         }
         return $(result) ;
     }
 
- rule modify-project-before ( project name ? : property-set : sources + : multiple ? )
+ rule modify-project-before ( project name ? : property-set : sources + )
     {
         return $(project) ;
     }
 
- rule modify-name-before ( project name ? : property-set : sources + : multiple ? )
+ rule modify-name-before ( project name ? : property-set : sources + )
     {
         return $(name) ;
     }
 
- rule modify-properties-before ( project name ? : property-set : sources + : multiple ? )
+ rule modify-properties-before ( project name ? : property-set : sources + )
     {
         return $(property-set) ;
     }
 
- rule modify-sources-before ( project name ? : property-set : sources + : multiple ? )
+ rule modify-sources-before ( project name ? : property-set : sources + )
     {
         return $(sources) ;
     }
 
- rule modify-multiple-before ( project name ? : property-set : sources + : multiple ? )
- {
- return $(multiple) ;
- }
-
- rule modify-target-after ( target : project name ? : property-set : sources + : multiple ? )
+ rule modify-target-after ( target : project name ? : property-set : sources + )
     {
         return $(target) ;
     }
@@ -170,7 +160,7 @@
 
     # Modifies the name, by cloning the target with the new name.
     #
- rule modify-target-after ( target : project name ? : property-set : sources + : multiple ? )
+ rule modify-target-after ( target : project name ? : property-set : sources + )
     {
         local result = $(target) ;
 

Modified: branches/proto/v4/tools/build/v2/doc/src/tutorial.xml
==============================================================================
--- branches/proto/v4/tools/build/v2/doc/src/tutorial.xml (original)
+++ branches/proto/v4/tools/build/v2/doc/src/tutorial.xml 2008-06-05 01:50:03 EDT (Thu, 05 Jun 2008)
@@ -372,104 +372,95 @@
     </para>
 
 
- <para>Let's improve this project further.
- The library
- probably has some headers that must be used when compiling
- <filename>app.cpp</filename>. We could manually add the necessary
- <code>#include</code> paths to <filename>app</filename>'s
- requirements as values of the
- <varname>&lt;include&gt;</varname> feature, but then this work will
- be repeated for all programs
+ <para>
+ Let's improve this project further. The library probably has some headers
+ that must be used when compiling <filename>app.cpp</filename>. We could
+ manually add the necessary <code>#include</code> paths to <filename>app
+ </filename>'s requirements as values of the <varname>&lt;include&gt;
+ </varname> feature, but then this work will be repeated for all programs
       that use <filename>foo</filename>. A better solution is to modify
       <filename>util/foo/Jamfile</filename> in this way:
 
-<programlisting>
+ <programlisting>
 project
     : usage-requirements &lt;include&gt;.
     ;
 
-lib foo : foo.cpp ;
-</programlisting>
+lib foo : foo.cpp ;</programlisting>
+
+ Usage requirements are applied not to the target being declared but to its
+ dependants. In this case, <literal>&lt;include&gt;.</literal> will be
+ applied to all targets that directly depend on <filename>foo</filename>.
+ </para>
+
+ <para>
+ Another improvement is using symbolic identifiers to refer to the library,
+ as opposed to <filename>Jamfile</filename> location. In a large project, a
+ library can be used by many targets, and if they all use <filename>Jamfile
+ </filename> location, a change in directory organization entails much
+ work. The solution is to use project ids&#x2014;symbolic names not tied to
+ directory layout. First, we need to assign a project id by adding this
+ code to <filename>Jamroot</filename>:
+ </para>
+
+ <programlisting>
+use-project /library-example/foo : util/foo ;</programlisting>
 
- Usage requirements are applied not to the target being declared
- but to its
- dependents. In this case, <literal>&lt;include&gt;.</literal> will be applied to all
- targets that directly depend on <filename>foo</filename>.
- </para>
-
- <para>Another improvement is using symbolic identifiers to refer to
- the library, as opposed to <filename>Jamfile</filename> location.
- In a large project, a library can be used by many targets, and if
- they all use <filename>Jamfile</filename> location,
- a change in directory organization entails much work.
- The solution is to use project ids&#x2014;symbolic names
- not tied to directory layout. First, we need to assign a project id by
- adding this code to
- <filename>Jamroot</filename>:</para>
- <programlisting>
-use-project /library-example/foo : util/foo ;
- </programlisting>
- <para>Second, we modify <filename>app/Jamfile</filename> to use the
- project id:
-
-<programlisting>
-exe app : app.cpp /library-example/foo//bar ;
-</programlisting>
-The <filename>/library-example/foo//bar</filename> syntax is used
- to refer to the target <filename>bar</filename> in
- the project with id <filename>/library-example/foo</filename>.
- We've achieved our goal&#x2014;if the library is moved to a different
- directory, only <filename>Jamroot</filename> must be modified.
- Note that project ids are global&#x2014;two Jamfiles are not
- allowed to assign the same project id to different directories.
+ <para>
+ Second, we modify <filename>app/Jamfile</filename> to use the project id:
+ <programlisting>
+exe app : app.cpp /library-example/foo//bar ;<programlisting>
 
+ The <filename>/library-example/foo//bar</filename> syntax is used to refer
+ to the target <filename>bar</filename> in the project with id <filename>
+ /library-example/foo</filename>. We've achieved our goal&#x2014;if the
+ library is moved to a different directory, only <filename>Jamroot
+ </filename> must be modified. Note that project ids are global&#x2014;two
+ Jamfiles are not allowed to assign the same project id to different
+ directories.
     </para>
 
     <tip>
- <para>If you want all applications in some project to link
- to a certain library, you can avoid having to specify it directly the sources of every
- target by using the
- <varname>&lt;library&gt;</varname> property. For example, if <filename>/boost/filesystem//fs</filename>
- should be linked to all applications in your project, you can add
- <code>&lt;library&gt;/boost/filesystem//fs</code> to the project's requirements, like this:</para>
+ <para>If you want all applications in some project to link to a certain
+ library, you can avoid having to specify it directly the sources of
+ every target by using the <varname>&lt;library&gt;</varname> property.
+ For example, if <filename>/boost/filesystem//fs</filename> should be
+ linked to all applications in your project, you can add
+ <code>&lt;library&gt;/boost/filesystem//fs</code> to the project's
+ requirements, like this:
+ </para>
 
       <programlisting>
 project
    : requirements &lt;source&gt;/boost/filesystem//fs
- ;
- </programlisting>
+ ;</programlisting>
     </tip>
-
   </section>
 
   <section id="bbv2.tutorial.testing">
     <title>Testing</title>
-
-
   </section>
 
   <section id="bbv2.tutorial.linkage">
     <title>Static and shared libaries</title>
 
- <para>Libraries can be either
- <emphasis>static</emphasis>, which means they are included in executable
- files that use them, or <emphasis>shared</emphasis> (a.k.a.
- <emphasis>dynamic</emphasis>), which are only referred to from executables,
- and must be available at run time. Boost.Build can create and use both kinds.
- </para>
-
- <para>The kind of library produced from a <code>lib</code> target is
- determined by the value of the <varname>link</varname> feature. Default
- value is <literal>shared</literal>, and to build a static library, the value
- should be <literal>static</literal>. You can request a static build either
- on the command line:
- <screen>
-bjam link=static
- </screen>
- or in the library's requirements:
- <programlisting>
-lib l : l.cpp : &lt;link&gt;static ;
- </programlisting>
+ <para>
+ Libraries can be either <emphasis>static</emphasis>, which means they are
+ included in executable files that use them, or <emphasis>shared</emphasis>
+ (a.k.a. <emphasis>dynamic</emphasis>), which are only referred to from
+ executables, and must be available at run time. Boost.Build can create and
+ use both kinds.
+ </para>
+
+ <para>
+ The kind of library produced from a <code>lib</code> target is determined
+ by the value of the <varname>link</varname> feature. Default value is
+ <literal>shared</literal>, and to build a static library, the value should
+ be <literal>static</literal>. You can request a static build either on the
+ command line:
+ <programlisting>bjam link=static<programlisting>
+ or in the library's requirements:
+ <programlisting>lib l : l.cpp : &lt;link&gt;static ;</programlisting>
     </para>
 
     <para>
@@ -488,119 +479,114 @@
      VP: to be addressed when this section is moved. See comment below.
 -->
 
- <programlisting>
+ <programlisting>
 exe important : main.cpp helpers/&lt;link&gt;static ;</programlisting>
 
- No matter what arguments are specified on the <command>bjam</command>
- command line, <filename>important</filename> will only be linked with
- the static version of <filename>helpers</filename>.
+ No matter what arguments are specified on the <command>bjam</command>
+ command line, <filename>important</filename> will only be linked with the
+ static version of <filename>helpers</filename>.
     </para>
 
- <para>
- Specifying properties in target references is especially useful if you
- use a library defined in some other project (one you can't
- change) but you still want static (or dynamic) linking to that library
- in all cases. If that library is used by many targets,
- you <emphasis>could</emphasis> use target references
- everywhere:
+ <para>
+ Specifying properties in target references is especially useful if you use
+ a library defined in some other project (one you can't change) but you
+ still want static (or dynamic) linking to that library in all cases. If
+ that library is used by many targets, you <emphasis>could</emphasis> use
+ target references everywhere:
 
- <programlisting>
+ <programlisting>
 exe e1 : e1.cpp /other_project//bar/&lt;link&gt;static ;
 exe e10 : e10.cpp /other_project//bar/&lt;link&gt;static ;</programlisting>
 
- but that's far from being convenient. A better approach is
- to introduce a level of indirection. Create a local
- <type>alias</type> target that refers to the static (or
- dynamic) version of <filename>foo</filename>:
+ but that's far from being convenient. A better approach is to introduce a
+ level of indirection. Create a local <type>alias</type> target that refers
+ to the static (or dynamic) version of <filename>foo</filename>:
 
- <programlisting>
+ <programlisting>
 alias foo : /other_project//bar/&lt;link&gt;static ;
 exe e1 : e1.cpp foo ;
 exe e10 : e10.cpp foo ;</programlisting>
 
- The <link linkend="bbv2.tasks.alias"><functionname>alias</functionname></link>
- rule is specifically used to rename a reference to a target and possibly
- change the properties.
-
- <!-- You should introduce the alias rule in an earlier
- section, before describing how it applies to this
- specific use-case, and the foregoing sentence should
- go there.
- VP: we've agreed that this section should be moved further
- in the docs, since it's more like advanced reading. When
- I'll move it, I'll make sure 'alias' is already mentioned.
- -->
- </para>
+ The <link linkend="bbv2.tasks.alias"><functionname>alias</functionname>
+ </link> rule is specifically used to rename a reference to a target and
+ possibly change the properties.
+
+ <!-- You should introduce the alias rule in an earlier section, before
+ describing how it applies to this specific use-case, and the
+ foregoing sentence should go there.
+ VP: we've agreed that this section should be moved further in the
+ docs, since it's more like advanced reading. When I move it, I'll
+ make sure 'alias' is already mentioned.
+ -->
+ </para>
 
- <tip>
- <para>
- When one library uses another, you put the second library in
- the source list of the first. For example:
- <programlisting>
+ <tip>
+ <para>
+ When one library uses another, you put the second library in the source
+ list of the first. For example:
+ <programlisting>
 lib utils : utils.cpp /boost/filesystem//fs ;
 lib core : core.cpp utils ;
 exe app : app.cpp core ;</programlisting>
- This works no matter what kind of linking is used. When
- <filename>core</filename> is built as a shared library, it is linked
- directly into <filename>utils</filename>. Static libraries can't
- link to other libraries, so when <filename>core</filename> is built
- as a static library, its dependency on <filename>utils</filename> is passed along to
- <filename>core</filename>'s dependents, causing
- <filename>app</filename> to be linked with both
- <filename>core</filename> and <filename>utils</filename>.
- </para>
- </tip>
-
- <note>
- <para>(Note for non-UNIX system). Typically, shared libraries must be
- installed to a directory in the dynamic linker's search
- path. Otherwise, applications that use shared libraries can't be
- started. On Windows, the dynamic linker's search path is given by the
- <envar>PATH</envar> environment variable. This restriction is lifted
- when you use Boost.Build testing facilities&#x2014;the
- <envar>PATH</envar> variable will be automatically adjusted before
- running executable.
+ This works no matter what kind of linking is used. When <filename>core
+ </filename> is built as a shared library, it is linked directly into
+ <filename>utils</filename>. Static libraries can't link to other
+ libraries, so when <filename>core</filename> is built as a static
+ library, its dependency on <filename>utils</filename> is passed along to
+ <filename>core</filename>'s dependents, causing <filename>app</filename>
+ to be linked with both <filename>core</filename> and <filename>utils
+ </filename>.
+ </para>
+ </tip>
+
+ <note>
+ <para>
+ (Note for non-UNIX system). Typically, shared libraries must be
+ installed to a directory in the dynamic linker's search path. Otherwise,
+ applications that use shared libraries can't be started. On Windows, the
+ dynamic linker's search path is given by the <envar>PATH</envar>
+ environment variable. This restriction is lifted when you use
+ Boost.Build testing facilities&#x2014;the <envar>PATH</envar> variable
+ will be automatically adjusted before running the executable.
         <!-- Need ref here to 'testing facilities' -->
- </para>
- </note>
+ </para>
+ </note>
 
   </section>
 
   <section id="bbv2.tutorial.conditions">
     <title>Conditions and alternatives</title>
 
- <para>Sometimes, particular relationships need to be maintained
- among a target's build properties. For example, you might want to set
- specific <code>#define</code> when a library is built as shared,
- or when a target's <code>release</code> variant is built.
- This can be achieved with <firstterm>conditional requirements</firstterm>.
+ <para>
+ Sometimes, particular relationships need to be maintained among a target's
+ build properties. For example, you might want to set specific <code>
+ #define</code> when a library is built as shared, or when a target's
+ <code>release</code> variant is built. This can be achieved using
+ <firstterm>conditional requirements</firstterm>.
 
- <programlisting>
+ <programlisting>
 lib network : network.cpp
     : <emphasis role="bold">&lt;link&gt;shared:&lt;define&gt;NEWORK_LIB_SHARED</emphasis>
      &lt;variant&gt;release:&lt;define&gt;EXTRA_FAST
- ;
-</programlisting>
+ ;</programlisting>
 
- In the example above, whenever <filename>network</filename> is
- built with <code>&lt;link&gt;shared</code>,
- <code>&lt;define&gt;NEWORK_LIB_SHARED</code> will be in its
- properties, too. Also, whenever its release variant is built,
- <code>&lt;define&gt;EXTRA_FAST</code> will appear in its properties.
+ In the example above, whenever <filename>network</filename> is built with
+ <code>&lt;link&gt;shared</code>, <code>&lt;define&gt;NEWORK_LIB_SHARED
+ </code> will be in its properties, too. Also, whenever its release variant
+ is built, <code>&lt;define&gt;EXTRA_FAST</code> will appear in its
+ properties.
     </para>
 
     <para>
- Sometimes the ways a target is built are so different that
- describing them using conditional requirements would be
- hard. For example, imagine that a library actually uses
- different source files depending on the toolset used to build
- it. We can express this situation using <firstterm>target
+ Sometimes the ways a target is built are so different that describing them
+ using conditional requirements would be hard. For example, imagine that a
+ library actually uses different source files depending on the toolset used
+ to build it. We can express this situation using <firstterm>target
       alternatives</firstterm>:
-<programlisting>
+ <programlisting>
 lib demangler : dummy_demangler.cpp ; # alternative 1
 lib demangler : demangler_gcc.cpp : &lt;toolset&gt;gcc ; # alternative 2
-lib demangler : demangler_msvc.cpp : &lt;toolset&gt;msvc ; # alternative 3
-</programlisting>
+lib demangler : demangler_msvc.cpp : &lt;toolset&gt;msvc ; # alternative 3</programlisting>
       When building <filename>demangler</filename>, Boost.Build will compare
       requirements for each alternative with build properties to find the best
       match. For example, when building with <code>&lt;toolset&gt;gcc</code>
@@ -619,7 +605,7 @@
       <varname>file</varname> property. Target alternatives can be used to
       associate multiple library files with a single conceptual target. For
       example:
-<programlisting>
+ <programlisting>
 # util/lib2/Jamfile
 lib lib2
     :
@@ -629,67 +615,61 @@
 lib lib2
     :
     : &lt;file&gt;lib2_debug.a &lt;variant&gt;debug
- ;
-</programlisting>
+ ;</programlisting>
 
       This example defines two alternatives for <filename>lib2</filename>, and
       for each one names a prebuilt file. Naturally, there are no sources.
       Instead, the <varname>&lt;file&gt;</varname> feature is used to specify
       the file name.
     </para>
- <para>
- Once a prebuilt target has been declared, it can be used just like any other target:
 
-<programlisting>
-exe app : app.cpp ../util/lib2//lib2 ;
-</programlisting>
+ <para>
+ Once a prebuilt target has been declared, it can be used just like any
+ other target:
 
- As with any target, the alternative selected depends on the
- properties propagated from <filename>lib2</filename>'s dependents.
- If we build the the release and debug versions of <filename>app</filename> will be linked
- with <filename>lib2_release.a</filename> and <filename>lib2_debug.a</filename>, respectively.
+ <programlisting>
+exe app : app.cpp ../util/lib2//lib2 ;</programlisting>
 
+ As with any target, the alternative selected depends on the properties
+ propagated from <filename>lib2</filename>'s dependants. If we build the
+ release and debug versions of <filename>app</filename> will be linked
+ with <filename>lib2_release.a</filename> and <filename>lib2_debug.a
+ </filename>, respectively.
     </para>
 
     <para>
- System libraries&#x2014;those that are automatically found by
- the toolset by searching through some set of predetermined
- paths&#x2014;should be declared almost like regular ones:
+ System libraries&#x2014;those that are automatically found by the toolset
+ by searching through some set of predetermined paths&#x2014;should be
+ declared almost like regular ones:
 
-<programlisting>
-lib pythonlib : : &lt;name&gt;python22 ;
-</programlisting>
+ <programlisting>
+lib pythonlib : : &lt;name&gt;python22 ;</programlisting>
 
- We again don't specify any sources, but give a
- <varname>name</varname> that should be passed to the
- compiler. If the gcc toolset were used to link an executable
- target to <filename>pythonlib</filename>, <option>-lpython22</option>
- would appear in the command line (other compilers may use
- different options).
+ We again don't specify any sources, but give a <varname>name</varname>
+ that should be passed to the compiler. If the gcc toolset were used to
+ link an executable target to <filename>pythonlib</filename>,
+ <option>-lpython22</option> would appear in the command line (other
+ compilers may use different options).
     </para>
 
     <para>
       We can also specify where the toolset should look for the library:
 
-<programlisting>
-lib pythonlib : : &lt;name&gt;python22 &lt;search&gt;/opt/lib ;
-</programlisting>
+ <programlisting>
+lib pythonlib : : &lt;name&gt;python22 &lt;search&gt;/opt/lib ;</programlisting>
 
       And, of course, target alternatives can be used in the usual way:
 
-<programlisting>
+ <programlisting>
 lib pythonlib : : &lt;name&gt;python22 &lt;variant&gt;release ;
-lib pythonlib : : &lt;name&gt;python22_d &lt;variant&gt;debug ;
-</programlisting>
-
+lib pythonlib : : &lt;name&gt;python22_d &lt;variant&gt;debug ;</programlisting>
     </para>
 
- <para>A more advanced use of prebuilt targets is described in <xref
- linkend="bbv2.recipies.site-config"/>.
+ <para>
+ A more advanced use of prebuilt targets is described in <xref linkend=
+ "bbv2.recipies.site-config"/>.
     </para>
-
   </section>
-
 </chapter>
 
 <!--

Modified: branches/proto/v4/tools/build/v2/tools/acc.jam
==============================================================================
--- branches/proto/v4/tools/build/v2/tools/acc.jam (original)
+++ branches/proto/v4/tools/build/v2/tools/acc.jam 2008-06-05 01:50:03 EDT (Thu, 05 Jun 2008)
@@ -86,9 +86,10 @@
     $(CONFIG_COMMAND) -AA $(LINKFLAGS) -o "$(<[1])" -L$(LIBPATH) -L$(STDLIBPATH) "$(>)" "$(NEEDLIBS)" "$(NEEDLIBS)" -l$(FINDLIBS) $(OPTIONS)
 }
 
+SPACE = " " ;
 actions acc.link.dll bind NEEDLIBS
 {
- $(CONFIG_COMMAND) -AA -b $(LINKFLAGS) -o "$(<[1])" -L$(LIBPATH) -L$(STDLIBPATH) "$(>)" "$(NEEDLIBS)" "$(NEEDLIBS)" -l$(FINDLIBS) $(OPTIONS)
+ $(CONFIG_COMMAND) -AA -b $(LINKFLAGS) -o "$(<[1])" -Wl,+h$(SPACE)-Wl,$(<[-1]:D=) -L$(LIBPATH) -L$(STDLIBPATH) "$(>)" "$(NEEDLIBS)" "$(NEEDLIBS)" -l$(FINDLIBS) $(OPTIONS)
 }
 
 actions acc.compile.c

Modified: branches/proto/v4/tools/build/v2/tools/msvc.jam
==============================================================================
--- branches/proto/v4/tools/build/v2/tools/msvc.jam (original)
+++ branches/proto/v4/tools/build/v2/tools/msvc.jam 2008-06-05 01:50:03 EDT (Thu, 05 Jun 2008)
@@ -88,23 +88,49 @@
 #
 # Note: for free VC7.1 tools, we don't correctly find vcvars32.bar when user
 # explicitly provides a path.
+#
 rule init (
- version ? # the msvc version which is being configured. When omitted
- # the tools invoked when no explicit version is given will be configured.
- : command *
- # the command to invoke the compiler. If not specified:
- # - if version is given, default location for that version will be searched
+ # The msvc version being configured. When omitted the tools invoked when no
+ # explicit version is given will be configured.
+ version ?
+
+ # The command used to invoke the compiler. If not specified:
+ # - if version is given, default location for that version will be
+ # searched
     #
- # - if version is not given, default locations for 7.1, 7.0 and 6.* will
- # be searched
+ # - if version is not given, default locations for MSVC 9.0, 8.0, 7.1, 7.0
+ # and 6.* will be searched
     #
- # - if compiler is not found in default locations, PATH will be searched.
- : options *
- # options can include <setup>, <compiler>, <assembler>, <linker> and <resource-compiler>
+ # - if compiler is not found in the default locations, PATH will be
+ # searched.
+ : command *
+
+ # Options can include:
+ #
+ # <assembler>
+ # <compiler>
+ # <idl-compiler>
+ # <linker>
+ # <mc-compiler>
+ # <resource-compiler>
+ # Exact tool names to be used by this msvc toolset configuration.
     #
     # <compiler-filter>
- # Command to pipe the output of running the compiler. For example
- # to pass the output to STLfilt.
+ # Command through which to pipe the output of running the compiler.
+ # For example to pass the output to STLfilt.
+ #
+ # <setup>
+ # Global setup command to invoke before running any of the msvc tools.
+ # It will be passed additional option parameters depending on the actual
+ # target platform.
+ #
+ # <setup-amd64>
+ # <setup-i386>
+ # <setup-ia64>
+ # Platform specific setup command to invoke before running any of the
+ # msvc tools used when builing a target for a specific platform, e.g.
+ # when building a 32 or 64 bit executable.
+ : options *
 )
 {
     if $(command)
@@ -118,6 +144,7 @@
 
 # 'configure' is a newer version of 'init'. The parameter 'command' is passed as
 # a part of the 'options' list.
+#
 rule configure ( version ? : options * )
 {
     switch $(version)
@@ -143,25 +170,39 @@
 }
 
 
-# Supported CPU architectures
-cpu-arch-i386 =
+# Supported CPU architectures.
+.cpu-arch-i386 =
     <architecture>/<address-model>
     <architecture>/<address-model>32
     <architecture>x86/<address-model>
     <architecture>x86/<address-model>32 ;
 
-cpu-arch-amd64 =
+.cpu-arch-amd64 =
     <architecture>/<address-model>64
     <architecture>x86/<address-model>64 ;
 
-cpu-arch-ia64 =
+.cpu-arch-ia64 =
     <architecture>ia64/<address-model>
     <architecture>ia64/<address-model>64 ;
 
 
+# Locates the requested setup script under the given folder and returns its full
+# path or nothing in case the script can not be found. In case multiple scripts
+# are found only the first one is returned.
+#
+local rule locate-default-setup ( command : parent : setup-name )
+{
+ local result = [ GLOB $(command) $(parent) : $(setup-name) ] ;
+ if $(result[1])
+ {
+ return $(result[1]) ;
+ }
+}
+
+
 local rule configure-really ( version ? : options * )
 {
- # If no version supplied use the default configuration. Note that condition
+ # Note that if no version supplied uses the default configuration condition
     # remains versionless.
     local v = $(version) ;
     if ! $(v)
@@ -185,37 +226,37 @@
     # Check whether selected configuration is used already
     if $(version) in [ $(.versions).used ]
     {
- # Allow multiple 'toolset.usage' calls for the same configuration
- # if the identical sets of options are used
+ # Allow multiple 'toolset.using' calls for the same configuration if the
+ # identical sets of options are used.
         if $(options) && ( $(options) != [ $(.versions).get $(version) : options ] )
         {
- errors.error "msvc: the toolset version '$(version)' is configured already" ;
+ errors.error "msvc: the toolset version '$(version)' already configured." ;
         }
     }
     else
     {
- # Register a new configuration
+ # Register a new configuration.
         $(.versions).register $(version) ;
 
- # Add user-supplied to auto-detected options
+ # Add user-supplied to auto-detected options.
         options = [ $(.versions).get $(version) : options ] $(options) ;
 
         # Mark the configuration as 'used'.
         $(.versions).use $(version) ;
 
- # Generate condition and save it
- local condition = [ common.check-init-parameters msvc : version $(v) ] ;
+ # Generate conditions and save them.
+ local conditions = [ common.check-init-parameters msvc : version $(v) ] ;
 
- $(.versions).set $(version) : condition : $(condition) ;
+ $(.versions).set $(version) : conditions : $(conditions) ;
 
         local command = [ feature.get-values <command> : $(options) ] ;
 
         # If version is specified, we try to search first in default paths, and
         # only then in PATH.
- command = [ common.get-invocation-command msvc : cl.exe : $(command)
- : [ default-paths $(version) ] : $(version) ] ;
+ command = [ common.get-invocation-command msvc : cl.exe : $(command) :
+ [ default-paths $(version) ] : $(version) ] ;
 
- common.handle-options msvc : $(condition) : $(command) : $(options) ;
+ common.handle-options msvc : $(conditions) : $(command) : $(options) ;
 
         if ! $(version)
         {
@@ -251,81 +292,135 @@
 
         local below-8.0 = [ MATCH ^([67]\\.) : $(version) ] ;
 
- local cpu = i386 ;
+ local cpu = i386 amd64 ia64 ;
+ if $(below-8.0)
+ {
+ cpu = i386 ;
+ }
 
- local setup ;
- local setup-option ;
+ local setup-amd64 ;
+ local setup-i386 ;
+ local setup-ia64 ;
 
         if $(command)
         {
+ # TODO: Note that if we specify a non-existant toolset version then
+ # this rule may find and use a corresponding compiler executable
+ # belonging to an incorrect toolset version. For example, if you
+ # have only MSVC 7.1 installed and specify you want Boost Build to
+ # use MSVC 9.0, then you want Boost Build to report an error but
+ # this may cause it to silently use the MSVC 7.1 compiler even
+ # though it thinks its using the msvc 9.0 toolset.
             command = [ common.get-absolute-tool-path $(command[-1]) ] ;
 
             local parent = [ path.make $(command) ] ;
             parent = [ path.parent $(parent) ] ;
             parent = [ path.native $(parent) ] ;
 
- # Setup will be used if the script name has been specified. If setup
- # is not specified, a default script will be used instead.
- setup = [ feature.get-values <setup> : $(options) ] ;
+ # Setup will be used if the command name has been specified. If
+ # setup is not specified explicitly then a default setup script will
+ # be used instead. Setup scripts may be global or arhitecture/
+ # /platform/cpu specific. Setup options are used only in case of
+ # global setup scripts.
+
+ # Default setup scripts provided with different VC distributions:
+ #
+ # VC 7.1 had only the vcvars32.bat script specific to 32 bit i386
+ # builds. It was located in the bin folder for the regular version
+ # and in the root folder for the free VC 7.1 tools.
+ #
+ # Later 8.0 & 9.0 versions introduce separate platform specific
+ # vcvars*.bat scripts (e.g. 32 bit, 64 bit AMD or 64 bit Itanium)
+ # located in or under the bin folder. Most also include a global
+ # vcvarsall.bat helper script located in the root folder which runs
+ # one of the aforementioned vcvars*.bat scripts based on the options
+ # passed to it. So far only the version coming with some PlatformSDK
+ # distributions does not include this top level script but to
+ # support those we need to fall back to using the worker scripts
+ # directly in case the top level script can not be found.
+
+ local global-setup = [ feature.get-values <setup> : $(options) ] ;
+ global-setup = $(global-setup[1]) ;
+ if ! $(below-8.0)
+ {
+ global-setup ?= [ locate-default-setup $(command) : $(parent) : vcvarsall.bat ] ;
+ }
 
- if ! $(setup)
+ local default-setup-amd64 = vcvarsx86_amd64.bat ;
+ local default-setup-i386 = vcvars32.bat ;
+ local default-setup-ia64 = vcvarsx86_ia64.bat ;
+
+ # http://msdn2.microsoft.com/en-us/library/x4d2c09s(VS.80).aspx and
+ # http://msdn2.microsoft.com/en-us/library/x4d2c09s(vs.90).aspx
+ # mention an x86_IPF option, that seems to be a documentation bug
+ # and x86_ia64 is the correct option.
+ local default-global-setup-options-amd64 = x86_amd64 ;
+ local default-global-setup-options-i386 = x86 ;
+ local default-global-setup-options-ia64 = x86_ia64 ;
+
+ # When using 64-bit Windows, and targeting 64-bit, it is possible to
+ # use a native 64-bit compiler, selected by the "amd64" & "ia64"
+ # parameters to vcvarsall.bat. There are two variables we can use --
+ # PROCESSOR_ARCHITECTURE and PROCESSOR_IDENTIFIER. The first is
+ # 'x86' when running 32-bit Windows, no matter which processor is
+ # used, and 'AMD64' on 64-bit windows on x86 (either AMD64 or EM64T)
+ # Windows.
+ #
+ if [ MATCH ^(AMD64) : [ os.environ PROCESSOR_ARCHITECTURE ] ]
             {
- if $(below-8.0)
- {
- setup ?= vcvars32.bat ;
- }
- else
- {
- setup ?= vcvarsall.bat ;
- }
+ default-global-setup-options-amd64 = amd64 ;
+ }
+ # TODO: The same 'native compiler usage' should be implemented for
+ # the Itanium platform by using the "ia64" parameter. For this
+ # though we need someone with access to this platform who can find
+ # out how to correctly detect this case.
+ else if $(somehow-detect-the-itanium-platform)
+ {
+ default-global-setup-options-ia64 = ia64 ;
+ }
 
- # The vccars32.bat is actually in "bin" directory except for
- # free VC7.1 tools.
- setup = [ GLOB $(command) $(parent) : $(setup) ] ;
+ local setup-prefix = "call " ;
+ local setup-suffix = " >nul"$(nl) ;
+ if ! [ os.name ] in NT
+ {
+ setup-prefix = "cmd.exe /S /C call " ;
+ setup-suffix = " >nul \"&&\" " ;
             }
 
- if $(setup)
+ for local c in $(cpu)
             {
- # Note Cygwin to Windows translation.
- setup = "\""$(setup[1]:W)"\"" ;
+ local setup-options ;
+
+ setup-$(c) = [ feature.get-values <setup-$(c)> : $(options) ] ;
 
- if ! $(below-8.0)
+ if ! $(setup-$(c))-is-defined
                 {
- cpu = i386 amd64 ia64 ;
- # Whereas http://msdn2.microsoft.com/en-us/library/x4d2c09s(VS.80).aspx or
- # http://msdn2.microsoft.com/en-us/library/x4d2c09s(vs.90).aspx
- # say about x86_IPF, that seem to be doc bug,
- # and x86_ia64 is right one.
- setup-option = x86 x86_amd64 x86_ia64 ;
-
- # When using 64-bit Windows, and targeting 64-bit, it's
- # possible to use native 64-bit compiler, which is selected
- # by the "amd64" parameter to vcvarsall.bat. There are two
- # variables we can use -- PROCESSOR_ARCHITECTURE and
- # PROCESSOR_IDENTIFIER. The first is 'x86' when running
- # 32-bit windows, no matter what processor is, and 'AMD64'
- # on 64-bit windows on x86 (either AMD64 or EM64T) windows.
- if [ MATCH ^(AMD64) : [ os.environ PROCESSOR_ARCHITECTURE ] ]
+ if $(global-setup)-is-defined
+ {
+ setup-$(c) = $(global-setup) ;
+
+ # If needed we can easily add using configuration flags
+ # here for overriding which options get passed to the
+ # global setup command for which target platform:
+ # setup-options = [ feature.get-values <setup-options-$(c)> : $(options) ] ;
+
+ setup-options ?= default-global-setup-options-$(c) ;
+ }
+ else
                     {
- setup-option = x86 amd64 x86_ia64 ;
+ setup-$(c) = [ locate-default-setup $(command) : $(parent) : $(default-setup-$(c)) ] ;
                     }
                 }
- }
- }
 
- local prefix = "call " ;
- local suffix = " >nul
-" ;
- if ! [ os.name ] in NT
- {
- prefix = "cmd.exe /S /C call " ;
- suffix = " >nul \"&&\" " ;
- }
+ # Cygwin to Windows path translation.
+ setup-$(c) = "\""$(setup-$(c):W)"\"" ;
 
- command = $(prefix)$(setup)" "$(setup-option:E="")$(suffix) ;
-
- # Setup script is not required in some configurations.
- command ?= "" ;
+ # Append setup options to the setup name and add the final setup
+ # prefix & suffix.
+ setup-options ?= "" ;
+ setup-$(c) = $(setup-prefix)$(setup-$(c):J=" ")" "$(setup-options:J=" ")$(setup-suffix) ;
+ }
+ }
 
         # Get tool names (if any) and finish setup.
 
@@ -351,45 +446,45 @@
 
         local cc-filter = [ feature.get-values <compiler-filter> : $(options) ] ;
 
- for local i in 1 2 3
+ for local c in $(cpu)
         {
- local c = $(cpu[$(i)]) ;
+ # Setup script is not required in some configurations.
+ setup-$(c) ?= "" ;
 
- if $(c)
- {
- local cond = $(condition)/$(cpu-arch-$(c)) ;
+ local cpu-conditions = $(conditions)/$(.cpu-arch-$(c)) ;
 
- if $(.debug-configuration)
+ if $(.debug-configuration)
+ {
+ for local cpu-condition in $(cpu-conditions)
                 {
- ECHO "msvc: condition: '$(cond)', "
- "command: '$(command[$(i)])'" ;
+ ECHO "msvc: condition: '$(cpu-condition)', setup: '$(setup-$(c))'" ;
                 }
+ }
 
- toolset.flags msvc.compile .CC $(cond) : $(command[$(i)])$(compiler) /Zm800 -nologo ;
- toolset.flags msvc.compile .RC $(cond) : $(command[$(i)])$(resource-compiler) ;
- toolset.flags msvc.compile .ASM $(cond) : $(command[$(i)])$(assembler) ;
- toolset.flags msvc.link .LD $(cond) : $(command[$(i)])$(linker) /NOLOGO /INCREMENTAL:NO ;
- toolset.flags msvc.archive .LD $(cond) : $(command[$(i)])$(linker) /lib /NOLOGO ;
- toolset.flags msvc.compile .IDL $(cond) : $(command[$(i)])$(idl-compiler) ;
- toolset.flags msvc.compile .MC $(cond) : $(command[$(i)])$(mc-compiler) ;
+ toolset.flags msvc.compile .CC $(cpu-conditions) : $(setup-$(c))$(compiler) /Zm800 -nologo ;
+ toolset.flags msvc.compile .RC $(cpu-conditions) : $(setup-$(c))$(resource-compiler) ;
+ toolset.flags msvc.compile .ASM $(cpu-conditions) : $(setup-$(c))$(assembler) ;
+ toolset.flags msvc.link .LD $(cpu-conditions) : $(setup-$(c))$(linker) /NOLOGO /INCREMENTAL:NO ;
+ toolset.flags msvc.archive .LD $(cpu-conditions) : $(setup-$(c))$(linker) /lib /NOLOGO ;
+ toolset.flags msvc.compile .IDL $(cpu-conditions) : $(setup-$(c))$(idl-compiler) ;
+ toolset.flags msvc.compile .MC $(cpu-conditions) : $(setup-$(c))$(mc-compiler) ;
 
- if ! [ os.name ] in NT
- {
- toolset.flags msvc.link .MT $(cond) : $(command[$(i)])$(manifest-tool) -nologo ;
- }
- else
- {
- toolset.flags msvc.link .MT $(cond) : $(manifest-tool) -nologo ;
- }
+ if ! [ os.name ] in NT
+ {
+ toolset.flags msvc.link .MT $(cpu-conditions) : $(setup-$(c))$(manifest-tool) -nologo ;
+ }
+ else
+ {
+ toolset.flags msvc.link .MT $(cpu-conditions) : $(manifest-tool) -nologo ;
+ }
 
- if $(cc-filter)
- {
- toolset.flags msvc .CC.FILTER $(cond) : "|" $(cc-filter) ;
- }
+ if $(cc-filter)
+ {
+ toolset.flags msvc .CC.FILTER $(cpu-conditions) : "|" $(cc-filter) ;
             }
         }
         # Set version-specific flags.
- configure-version-specific msvc : $(version) : $(condition) ;
+ configure-version-specific msvc : $(version) : $(conditions) ;
     }
 }
 
@@ -416,10 +511,11 @@
 
 # Sets up flag definitions dependent on the compiler version used.
 # - 'version' is the version of compiler in N.M format.
-# - 'condition' is the property set to be used as condition for flag.
+# - 'conditions' is the property set to be used as flag conditions.
 # - 'toolset' is the toolset for which flag settings are to be defined.
 # This makes the rule reusable for other msvc-option-compatible compilers.
-rule configure-version-specific ( toolset : version : condition )
+#
+rule configure-version-specific ( toolset : version : conditions )
 {
     toolset.push-checking-for-flags-module unchecked ;
     # Starting with versions 7.0, the msvc compiler have the /Zc:forScope and
@@ -429,19 +525,19 @@
     # 7.* explicitly, or if the installation path contain 7.* (checked above).
     if ! [ MATCH ^(6\\.) : $(version) ]
     {
- toolset.flags $(toolset).compile CFLAGS $(condition) : /Zc:forScope /Zc:wchar_t ;
- toolset.flags $(toolset).compile.c++ C++FLAGS $(condition) : /wd4675 ;
- # disable the function is deprecated warning
- # Some version of msvc have a bug, that cause deprecation
- # warning to be emitted even with /W0
- toolset.flags $(toolset).compile CFLAGS $(condition)/<warnings>off : /wd4996 ;
+ toolset.flags $(toolset).compile CFLAGS $(conditions) : /Zc:forScope /Zc:wchar_t ;
+ toolset.flags $(toolset).compile.c++ C++FLAGS $(conditions) : /wd4675 ;
+
+ # Explicitly disable the 'function is deprecated' warning. Some msvc
+ # versions have a bug, causing them to emit the deprecation warning even
+ # with /W0.
+ toolset.flags $(toolset).compile CFLAGS $(conditions)/<warnings>off : /wd4996 ;
 
         if [ MATCH ^([78]\\.) : $(version) ]
         {
- # 64-bit compatibility warning
- # deprecated since 9.0, see
- # http://msdn.microsoft.com/en-us/library/yt4xw8fh.aspx
- toolset.flags $(toolset).compile CFLAGS $(condition)/<warnings>all : /Wp64 ;
+ # 64-bit compatibility warning deprecated since 9.0, see
+ # http://msdn.microsoft.com/en-us/library/yt4xw8fh.aspx
+ toolset.flags $(toolset).compile CFLAGS $(conditions)/<warnings>all : /Wp64 ;
         }
     }
 
@@ -452,41 +548,42 @@
     if [ MATCH ^([67]) : $(version) ]
     {
         # 8.0 deprecates some of the options.
- toolset.flags $(toolset).compile CFLAGS $(condition)/<optimization>speed $(condition)/<optimization>space : /Ogiy /Gs ;
- toolset.flags $(toolset).compile CFLAGS $(condition)/<optimization>speed : /Ot ;
- toolset.flags $(toolset).compile CFLAGS $(condition)/<optimization>space : /Os ;
-
- toolset.flags $(toolset).compile CFLAGS $(condition)/$(cpu-arch-i386)/<instruction-set> : /GB ;
- toolset.flags $(toolset).compile CFLAGS $(condition)/$(cpu-arch-i386)/<instruction-set>i386 : /G3 ;
- toolset.flags $(toolset).compile CFLAGS $(condition)/$(cpu-arch-i386)/<instruction-set>i486 : /G4 ;
- toolset.flags $(toolset).compile CFLAGS $(condition)/$(cpu-arch-i386)/<instruction-set>$(cpu-type-g5) : /G5 ;
- toolset.flags $(toolset).compile CFLAGS $(condition)/$(cpu-arch-i386)/<instruction-set>$(cpu-type-g6) : /G6 ;
- toolset.flags $(toolset).compile CFLAGS $(condition)/$(cpu-arch-i386)/<instruction-set>$(cpu-type-g7) : /G7 ;
+ toolset.flags $(toolset).compile CFLAGS $(conditions)/<optimization>speed $(conditions)/<optimization>space : /Ogiy /Gs ;
+ toolset.flags $(toolset).compile CFLAGS $(conditions)/<optimization>speed : /Ot ;
+ toolset.flags $(toolset).compile CFLAGS $(conditions)/<optimization>space : /Os ;
+
+ toolset.flags $(toolset).compile CFLAGS $(conditions)/$(.cpu-arch-i386)/<instruction-set> : /GB ;
+ toolset.flags $(toolset).compile CFLAGS $(conditions)/$(.cpu-arch-i386)/<instruction-set>i386 : /G3 ;
+ toolset.flags $(toolset).compile CFLAGS $(conditions)/$(.cpu-arch-i386)/<instruction-set>i486 : /G4 ;
+ toolset.flags $(toolset).compile CFLAGS $(conditions)/$(.cpu-arch-i386)/<instruction-set>$(cpu-type-g5) : /G5 ;
+ toolset.flags $(toolset).compile CFLAGS $(conditions)/$(.cpu-arch-i386)/<instruction-set>$(cpu-type-g6) : /G6 ;
+ toolset.flags $(toolset).compile CFLAGS $(conditions)/$(.cpu-arch-i386)/<instruction-set>$(cpu-type-g7) : /G7 ;
 
         # Improve floating-point accuracy. Otherwise, some of C++ Boost's "math"
         # tests will fail.
- toolset.flags $(toolset).compile CFLAGS $(condition) : /Op ;
+ toolset.flags $(toolset).compile CFLAGS $(conditions) : /Op ;
 
         # 7.1 and below have single-threaded static RTL.
- toolset.flags $(toolset).compile CFLAGS $(condition)/<runtime-debugging>off/<runtime-link>static/<threading>single : /ML ;
- toolset.flags $(toolset).compile CFLAGS $(condition)/<runtime-debugging>on/<runtime-link>static/<threading>single : /MLd ;
+ toolset.flags $(toolset).compile CFLAGS $(conditions)/<runtime-debugging>off/<runtime-link>static/<threading>single : /ML ;
+ toolset.flags $(toolset).compile CFLAGS $(conditions)/<runtime-debugging>on/<runtime-link>static/<threading>single : /MLd ;
     }
     else
     {
         # 8.0 and above adds some more options.
- toolset.flags $(toolset).compile CFLAGS $(condition)/$(cpu-arch-amd64)/<instruction-set> : /favor:blend ;
- toolset.flags $(toolset).compile CFLAGS $(condition)/$(cpu-arch-amd64)/<instruction-set>$(cpu-type-em64t) : /favor:EM64T ;
- toolset.flags $(toolset).compile CFLAGS $(condition)/$(cpu-arch-amd64)/<instruction-set>$(cpu-type-amd64) : /favor:AMD64 ;
+ toolset.flags $(toolset).compile CFLAGS $(conditions)/$(.cpu-arch-amd64)/<instruction-set> : /favor:blend ;
+ toolset.flags $(toolset).compile CFLAGS $(conditions)/$(.cpu-arch-amd64)/<instruction-set>$(cpu-type-em64t) : /favor:EM64T ;
+ toolset.flags $(toolset).compile CFLAGS $(conditions)/$(.cpu-arch-amd64)/<instruction-set>$(cpu-type-amd64) : /favor:AMD64 ;
 
         # 8.0 and above only has multi-threaded static RTL.
- toolset.flags $(toolset).compile CFLAGS $(condition)/<runtime-debugging>off/<runtime-link>static/<threading>single : /MT ;
- toolset.flags $(toolset).compile CFLAGS $(condition)/<runtime-debugging>on/<runtime-link>static/<threading>single : /MTd ;
+ toolset.flags $(toolset).compile CFLAGS $(conditions)/<runtime-debugging>off/<runtime-link>static/<threading>single : /MT ;
+ toolset.flags $(toolset).compile CFLAGS $(conditions)/<runtime-debugging>on/<runtime-link>static/<threading>single : /MTd ;
     }
     toolset.pop-checking-for-flags-module ;
 }
 
 
 # Returns the default installation path for the given version.
+#
 local rule default-path ( version )
 {
     # Use auto-detected path if possible
@@ -526,6 +623,7 @@
 
 # Returns either the default installation path (if 'version' is not empty) or
 # list of all known default paths (if no version is given)
+#
 rule default-paths ( version ? )
 {
     local possible-paths ;
@@ -548,8 +646,8 @@
 
 # Declare generators.
 
-# Is it possible to combine these? Make the generators non-composing so that
-# they don't convert each source into a separate rsp file.
+# TODO: Is it possible to combine these? Make the generators non-composing so
+# that they do not convert each source into a separate .rsp file.
 generators.register-linker msvc.link : OBJ SEARCHED_LIB STATIC_LIB IMPORT_LIB : EXE : <toolset>msvc ;
 generators.register-linker msvc.link.dll : OBJ SEARCHED_LIB STATIC_LIB IMPORT_LIB : SHARED_LIB IMPORT_LIB : <toolset>msvc ;
 
@@ -578,7 +676,7 @@
 
     rule run-pch ( project name ? : property-set : sources * )
     {
- # searching header and source file in the sources
+ # Searching header and source file in the sources.
         local pch-header ;
         local pch-source ;
         for local s in $(sources)
@@ -649,8 +747,8 @@
 flags msvc.compile CFLAGS <optimization>speed : /O2 ;
 flags msvc.compile CFLAGS <optimization>space : /O1 ;
 
-flags msvc.compile CFLAGS $(cpu-arch-ia64)/<instruction-set>$(cpu-type-itanium) : /G1 ;
-flags msvc.compile CFLAGS $(cpu-arch-ia64)/<instruction-set>$(cpu-type-itanium2) : /G2 ;
+flags msvc.compile CFLAGS $(.cpu-arch-ia64)/<instruction-set>$(cpu-type-itanium) : /G1 ;
+flags msvc.compile CFLAGS $(.cpu-arch-ia64)/<instruction-set>$(cpu-type-itanium2) : /G2 ;
 
 flags msvc.compile CFLAGS <debug-symbols>on/<debug-store>object : /Z7 ;
 flags msvc.compile CFLAGS <debug-symbols>on/<debug-store>database : /Zi ;
@@ -841,6 +939,7 @@
     DEPENDS $(<) : [ on $(<) return $(DEF_FILE) ] ;
 }
 
+
 # Declare action for creating static libraries. If library exists, remove it
 # before adding files. See
 # http://article.gmane.org/gmane.comp.lib.boost.build/4241 for rationale.
@@ -960,6 +1059,7 @@
 
 # Validates given path, registers found configuration and prints debug
 # information about it.
+#
 local rule register-configuration ( version : path ? )
 {
     if $(path)

Modified: branches/proto/v4/tools/build/v2/tools/python.jam
==============================================================================
--- branches/proto/v4/tools/build/v2/tools/python.jam (original)
+++ branches/proto/v4/tools/build/v2/tools/python.jam 2008-06-05 01:50:03 EDT (Thu, 05 Jun 2008)
@@ -34,6 +34,7 @@
 import feature ;
 import set ;
 import builtin ;
+import version ;
 
 
 # Make this module a project.
@@ -133,7 +134,7 @@
 # Try to identify Cygwin symlinks. Invoking such a file directly as an NT
 # executable from a native Windows build of bjam would be fatal to the bjam
 # process. One /can/ invoke them through sh.exe or bash.exe, if you can prove
-# that those aren't also symlinks ;-)
+# that those aren't also symlinks. ;-)
 #
 # If a symlink is found returns non-empty; we try to extract the target of the
 # symlink from the file and return that.
@@ -145,7 +146,7 @@
 
     # Look for a file with the given path having the S attribute set, as cygwin
     # symlinks do. /-C means "do not use thousands separators in file sizes."
- local dir-listing = [ shell-cmd "DIR /-C /A:S "$(path) ] ;
+ local dir-listing = [ shell-cmd "DIR /-C /A:S \""$(path)"\"" ] ;
 
     if $(dir-listing)
     {
@@ -207,12 +208,12 @@
     {
         dirs = . [ os.executable-path ] ;
     }
- local base = [ default-extension $(cmd:D=) : .exe .bat ] ;
+ local base = [ default-extension $(cmd:D=) : .exe .cmd .bat ] ;
     local paths = [ GLOB $(dirs) : $(base) ] ;
     if $(paths)
     {
- # Make sure we didn't find a Cygwin symlink. Invoking such a
- # file as an NT executable will be fatal to the bjam process.
+ # Make sure we have not run into a Cygwin symlink. Invoking such a file
+ # as an NT executable would be fatal for the bjam process.
         return [ is-cygwin-symlink $(paths[1]) ] ;
     }
 }
@@ -453,7 +454,7 @@
         debug-message If you intend to target a Cygwin build of Python, please ;
         debug-message replace the path to the link with the path to a real executable ;
         debug-message (guessing: \"$(skip-symlink)\") "in" your 'using python' line ;
- debug-message "in" user-config.jam or site-config.jam. Don't forget to escape ;
+ debug-message "in" user-config.jam or site-config.jam. Do not forget to escape ;
         debug-message backslashes ;
         debug-message -------------------------------------------------------------------- ;
     }
@@ -474,6 +475,14 @@
         }
 
         # Invoke Python and ask it for all those values.
+ if [ version.check-jam-version 3 1 17 ] || ( [ os.name ] != NT )
+ {
+ # Prior to version 3.1.17 Boost Jam's SHELL command did not support
+ # quoted commands correctly on Windows. This means that on that
+ # platform we do not support using a Python command interpreter
+ # executable whose path contains a space character.
+ python-cmd = \"$(python-cmd)\" ;
+ }
         local full-cmd =
             $(python-cmd)" -c \"from sys import *; print '"$(format:J=\\n)"' % ("$(exprs:J=,)")\"" ;
 

Modified: branches/proto/v4/tools/jam/src/build.bat
==============================================================================
--- branches/proto/v4/tools/jam/src/build.bat (original)
+++ branches/proto/v4/tools/jam/src/build.bat 2008-06-05 01:50:03 EDT (Thu, 05 Jun 2008)
@@ -20,7 +20,8 @@
 ECHO ### You can specify the toolset as the argument, i.e.:
 ECHO ### .\build.bat msvc
 ECHO ###
-ECHO ### Toolsets supported by this script are: borland, como, gcc, gcc-nocygwin, intel-win32, metrowerks, mingw, msvc, vc7, vc8
+ECHO ### Toolsets supported by this script are: borland, como, gcc, gcc-nocygwin,
+ECHO ### intel-win32, metrowerks, mingw, msvc, vc7, vc8, vc9
 ECHO ###
 set _error_=
 endlocal

Modified: branches/proto/v4/tools/jam/src/builtins.c
==============================================================================
--- branches/proto/v4/tools/jam/src/builtins.c (original)
+++ branches/proto/v4/tools/jam/src/builtins.c 2008-06-05 01:50:03 EDT (Thu, 05 Jun 2008)
@@ -494,6 +494,7 @@
 {
         list_print( lol_get( frame->args, 0 ) );
         printf( "\n" );
+ fflush( stdout );
         return L0;
 }
 
@@ -1845,9 +1846,80 @@
 #endif
 
 #ifdef HAVE_POPEN
+
 #if defined(_MSC_VER) || defined(__BORLANDC__)
- #define popen _popen
+ #define popen windows_popen_wrapper
     #define pclose _pclose
+
+ /*
+ * This wrapper is a workaround for a funny _popen() feature on Windows
+ * where it eats external quotes in some cases. The bug seems to be related
+ * to the quote stripping functionality used by the Windows cmd.exe
+ * interpreter when its /S is not specified.
+ *
+ * Cleaned up quote from the cmd.exe help screen as displayed on Windows XP
+ * SP3:
+ *
+ * 1. If all of the following conditions are met, then quote characters on
+ * the command line are preserved:
+ *
+ * - no /S switch
+ * - exactly two quote characters
+ * - no special characters between the two quote characters, where
+ * special is one of: &<>()@^|
+ * - there are one or more whitespace characters between the two quote
+ * characters
+ * - the string between the two quote characters is the name of an
+ * executable file.
+ *
+ * 2. Otherwise, old behavior is to see if the first character is a quote
+ * character and if so, strip the leading character and remove the last
+ * quote character on the command line, preserving any text after the
+ * last quote character.
+ *
+ * This causes some commands containing quotes not to be executed correctly.
+ * For example:
+ *
+ * "\Long folder name\aaa.exe" --name="Jurko" --no-surname
+ *
+ * would get its outermost quotes stripped and would be executed as:
+ *
+ * \Long folder name\aaa.exe" --name="Jurko --no-surname
+ *
+ * which would report an error about '\Long' not being a valid command.
+ *
+ * cmd.exe help seems to indicate it would be enough to add an extra space
+ * character in front of the command to avoid this but this does not work,
+ * most likely due to the shell first stripping all leading whitespace
+ * characters from the command.
+ *
+ * Solution implemented here is to quote the whole command in case it
+ * contains any quote characters. Note thought this will not work correctly
+ * should Windows ever 'fix' this feature.
+ * (03.06.2008.) (Jurko)
+ */
+ static FILE * windows_popen_wrapper( char * command, char * mode )
+ {
+ int extra_command_quotes_needed = ( strchr( command, '"' ) != 0 );
+ string quoted_command;
+ FILE * result;
+
+ if ( extra_command_quotes_needed )
+ {
+ string_new( &quoted_command );
+ string_append( &quoted_command, "\"" );
+ string_append( &quoted_command, command );
+ string_append( &quoted_command, "\"" );
+ command = quoted_command.value;
+ }
+
+ result = _popen( command, "r" );
+
+ if ( extra_command_quotes_needed )
+ string_free( &quoted_command );
+
+ return result;
+ }
 #endif
 
 LIST *builtin_shell( PARSE *parse, FRAME *frame )
@@ -1880,14 +1952,17 @@
         }
     }
 
- string_new( &s );
+ /* The following fflush() call seems to be indicated as a workaround for
+ popen() bug on POSIX implementations realted to synhronizing input stream
+ positions for the called and the calling process. */
+ fflush( NULL );
 
- fflush(NULL);
-
- p = popen(command->string, "r");
+ p = popen( command->string, "r" );
     if ( p == NULL )
         return L0;
 
+ string_new( &s );
+
     while ( (ret = fread(buffer, sizeof(char), sizeof(buffer)-1, p)) > 0 )
     {
         buffer[ret] = 0;
@@ -1897,7 +1972,7 @@
         }
     }
 
- exit_status = pclose(p);
+ exit_status = pclose( p );
 
     /* The command output is returned first. */
     result = list_new( L0, newstr(s.value) );
@@ -1906,7 +1981,7 @@
     /* The command exit result next. */
     if ( exit_status_opt )
     {
- sprintf (buffer, "%d", exit_status);
+ sprintf( buffer, "%d", exit_status );
         result = list_new( result, newstr( buffer ) );
     }
 

Modified: branches/proto/v4/tools/jam/test/action_status.jam
==============================================================================
--- branches/proto/v4/tools/jam/test/action_status.jam (original)
+++ branches/proto/v4/tools/jam/test/action_status.jam 2008-06-05 01:50:03 EDT (Thu, 05 Jun 2008)
@@ -6,12 +6,12 @@
 {
     ECHO --- Testing \"actions status results\"... ;
 
- assert "" 0 : (==) : [ SHELL "$(ARGV[1]) -f action_status.jam -sBJAM_SUBTEST=1" : exit-status : no-output ] ;
+ assert "" 0 : (==) : [ SHELL "\"$(ARGV[1])\" -f action_status.jam -sBJAM_SUBTEST=1" : exit-status : no-output ] ;
     if $(NT)
     {
- assert "" 0 : (==) : [ SHELL "$(ARGV[1]) -f action_status.jam -sBJAM_SUBTEST=1 \"-sACTION=;\"" : exit-status : no-output ] ;
+ assert "" 0 : (==) : [ SHELL "\"$(ARGV[1])\" -f action_status.jam -sBJAM_SUBTEST=1 \"-sACTION=;\"" : exit-status : no-output ] ;
     }
- assert "" 0 : (!=) : [ SHELL "$(ARGV[1]) -f action_status.jam -sBJAM_SUBTEST=1 -sACTION=invalid" : exit-status : no-output ] ;
+ assert "" 0 : (!=) : [ SHELL "\"$(ARGV[1])\" -f action_status.jam -sBJAM_SUBTEST=1 -sACTION=invalid" : exit-status : no-output ] ;
 }
 else
 {

Modified: branches/proto/v4/tools/jam/test/actions_quietly.jam
==============================================================================
--- branches/proto/v4/tools/jam/test/actions_quietly.jam (original)
+++ branches/proto/v4/tools/jam/test/actions_quietly.jam 2008-06-05 01:50:03 EDT (Thu, 05 Jun 2008)
@@ -27,12 +27,12 @@
 [subtest_b] 1
 [subtest_b] 2
 ...updated 2 targets...
-" : (==) : [ SHELL "$(ARGV[1]) -f actions_quietly.jam -sBJAM_SUBTEST=1 -d2" ] ;
+" : (==) : [ SHELL "\"$(ARGV[1])\" -f actions_quietly.jam -sBJAM_SUBTEST=1 -d2" ] ;
 
     assert "...found 4 targets...
 ...updating 2 targets...
 ...updated 2 targets...
-" : (==) : [ SHELL "$(ARGV[1]) -f actions_quietly.jam -sBJAM_SUBTEST=1" ] ;
+" : (==) : [ SHELL "\"$(ARGV[1])\" -f actions_quietly.jam -sBJAM_SUBTEST=1" ] ;
 }
 else
 {

Modified: branches/proto/v4/tools/jam/test/builtin_shell.jam
==============================================================================
--- branches/proto/v4/tools/jam/test/builtin_shell.jam (original)
+++ branches/proto/v4/tools/jam/test/builtin_shell.jam 2008-06-05 01:50:03 EDT (Thu, 05 Jun 2008)
@@ -2,6 +2,20 @@
 #~ Distributed under the Boost Software License, Version 1.0.
 #~ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
 
+# TODO: Here we should test for the Windows popen() command unquoting bug but
+# that test will have to wait until a better testing framework is implemented.
+# To reproduce the bug try executing any command with its first parameter quoted
+# and containing spaces and having at least one other quote in the command
+# string.
+#
+# For example:
+#
+# "\Long folder name\aaa.exe" --name="Jurko" --no-surname
+#
+# would get its outermost quotes stripped and would be executed as:
+#
+# \Long folder name\aaa.exe" --name="Jurko --no-surname
+
 ECHO --- Testing SHELL builtin... ;
 
 local c = "date" ;

Modified: branches/proto/v4/tools/jam/test/option_d2.jam
==============================================================================
--- branches/proto/v4/tools/jam/test/option_d2.jam (original)
+++ branches/proto/v4/tools/jam/test/option_d2.jam 2008-06-05 01:50:03 EDT (Thu, 05 Jun 2008)
@@ -27,7 +27,7 @@
 [subtest_b] 1
 [subtest_b] 2
 ...updated 2 targets...
-" : (==) : [ SHELL "$(ARGV[1]) -f option_d2.jam -sBJAM_SUBTEST=1 -d2" ] ;
+" : (==) : [ SHELL "\"$(ARGV[1])\" -f option_d2.jam -sBJAM_SUBTEST=1 -d2" ] ;
 }
 else
 {

Modified: branches/proto/v4/tools/jam/test/option_l.jam
==============================================================================
--- branches/proto/v4/tools/jam/test/option_l.jam (original)
+++ branches/proto/v4/tools/jam/test/option_l.jam 2008-06-05 01:50:03 EDT (Thu, 05 Jun 2008)
@@ -18,7 +18,7 @@
 
 ...failed .a. sleeper...
 ...failed updating 1 target...
-" : (==) : [ SHELL "$(ARGV[1]) -f option_l.jam -sBJAM_SUBTEST=1 -l2" ] ;
+" : (==) : [ SHELL "\"$(ARGV[1])\" -f option_l.jam -sBJAM_SUBTEST=1 -l2" ] ;
 }
 else
 {

Modified: branches/proto/v4/tools/jam/test/option_n.jam
==============================================================================
--- branches/proto/v4/tools/jam/test/option_n.jam (original)
+++ branches/proto/v4/tools/jam/test/option_n.jam 2008-06-05 01:50:03 EDT (Thu, 05 Jun 2008)
@@ -21,7 +21,7 @@
 echo [subtest_b] 2
     
 ...updated 2 targets...
-" : (==) : [ SHELL "$(ARGV[1]) -f option_n.jam -sBJAM_SUBTEST=1 -n" ] ;
+" : (==) : [ SHELL "\"$(ARGV[1])\" -f option_n.jam -sBJAM_SUBTEST=1 -n" ] ;
 }
 else
 {

Modified: branches/proto/v4/tools/jam/test/parallel_actions.jam
==============================================================================
--- branches/proto/v4/tools/jam/test/parallel_actions.jam (original)
+++ branches/proto/v4/tools/jam/test/parallel_actions.jam 2008-06-05 01:50:03 EDT (Thu, 05 Jun 2008)
@@ -41,7 +41,7 @@
 [.b] 1
 [.b] 2
 ...updated 8 targets...
-" : (==) : [ SHELL "$(ARGV[1]) -f parallel_actions.jam -sBJAM_SUBTEST=1 -j4" ] ;
+" : (==) : [ SHELL "\"$(ARGV[1])\" -f parallel_actions.jam -sBJAM_SUBTEST=1 -j4" ] ;
 }
 else
 {

Modified: branches/proto/v4/tools/jam/test/parallel_multifile_actions.jam
==============================================================================
--- branches/proto/v4/tools/jam/test/parallel_multifile_actions.jam (original)
+++ branches/proto/v4/tools/jam/test/parallel_multifile_actions.jam 2008-06-05 01:50:03 EDT (Thu, 05 Jun 2008)
@@ -16,7 +16,7 @@
 .use.2 u2.user
 004
 ...updated 4 targets...
-" : (==) : [ SHELL "$(ARGV[1]) -f parallel_multifile_actions.jam -sBJAM_SUBTEST=1 -j2" ] ;
+" : (==) : [ SHELL "\"$(ARGV[1])\" -f parallel_multifile_actions.jam -sBJAM_SUBTEST=1 -j2" ] ;
 }
 else
 {


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