|
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 This header file contains the following definitions/declarations: (:pagelist link="backlink" layer="synopsis":) </string>
+ <string>(:include include:) !!!See also: (:pagelist link="backlink" except_tags="noalso":) </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 This header file contains the following definitions/declarations: (:pagelist link="backlink" layer="synopsis":) </string>
+ <string>(:include include:) !!!See also: (:pagelist link="backlink" except_tags="noalso":) </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 This header file contains the following definitions/declarations: (:pagelist link="backlink" layer="synopsis":) </string>
+ <string>(:include include:) !!!See also: (:pagelist link="backlink" except_tags="noalso":) </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<</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 This header file contains the following declaration: [@namespace boost { template <class Tag, class T> 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>:); }@] </string>
+ <string>(:include include:) !!!See also: (:pagelist link="backlink" except_tags="noalso":) </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:) !!!See also: (:pagelist link="backlink" except_tags="noalso":) </string>
+ <string>!!!boost/exception.hpp This header file includes all other header files of Boost Exception: (:pagelist tags="header":) </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>:) ##(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-18</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:) ##(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-6</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:) #Documentation ##Class @@(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-7</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)@@ ##Transporting of Arbitrary Data to the Catch Site ###@@(: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>:) ##(:link </string>
+ <string>:)@@ ###@@(: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>:) ##(:link </string>
+ <string>|operator<<:)()@@ ###@@(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-9</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)()@@ ###@@(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-10</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)()@@ ###@@(: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>:) #Documentation ##Class @@(:link </string>
+ <string>:)@@ ##Transporting of Exceptions between Threads ###@@(: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>:)@@ ##Transporting of Arbitrary Data to the Catch Site ###@@(:link </string>
+ <string>:)@@ ###@@(: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>:)@@ ###@@(:link </string>
+ <string>:)()@@ ###@@(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-14</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)()@@ ###@@(: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<</exception</string>
+ <string>copy_exception</string>
</title>
<file_name>
<string></string>
@@ -959,106 +1025,7 @@
</shared_ptr>
</weak_ptr>
<variant>2</variant>
- <string>|operator<<:)()@@ ###@@(: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>:)()@@ ###@@(: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>:)()@@ ###@@(:link </string>
- <variant>1</variant>
- <weak_ptr>
- <expired>0</expired>
- <shared_ptr>
- <id>-10</id>
- </shared_ptr>
- </weak_ptr>
- <variant>2</variant>
- <string>:)@@ ##Transporting of Exceptions between Threads ###@@(:link </string>
+ <string>:)()@@ ###@@(:link </string>
<variant>1</variant>
<weak_ptr>
<expired>0</expired>
@@ -1067,25 +1034,25 @@
</shared_ptr>
</weak_ptr>
<variant>2</variant>
- <string>:)@@ ###@@(:link </string>
+ <string>:)()@@ ###@@(: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>:)()@@ ###@@(:link </string>
+ <string>:)@@ ##@@(: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>:)()@@ ###@@(:link </string>
+ <string>:)()@@ ##Headers ###@@(:link </string>
<variant>1</variant>
<weak_ptr>
<expired>0</expired>
@@ -1094,12 +1061,12 @@
</shared_ptr>
</weak_ptr>
<variant>2</variant>
- <string>:)()@@ ###@@(:link </string>
+ <string>:)@@ ###@@(: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>:)()@@ ###@@(:link </string>
- <variant>1</variant>
- <weak_ptr>
- <expired>0</expired>
- <shared_ptr>
- <id>-16</id>
- </shared_ptr>
- </weak_ptr>
- <variant>2</variant>
- <string>:)@@ ##@@(:link </string>
- <variant>1</variant>
- <weak_ptr>
- <expired>0</expired>
- <shared_ptr>
- <id>-19</id>
- </shared_ptr>
- </weak_ptr>
- <variant>2</variant>
- <string>:)()@@ ##Headers ###@@(:link </string>
+ <string>:)@@ ###@@(: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>:)@@ ###@@(:link </string>
- <variant>1</variant>
- <weak_ptr>
- <expired>0</expired>
- <shared_ptr>
- <id>-6</id>
- </shared_ptr>
- </weak_ptr>
- <variant>2</variant>
- <string>:)@@ ###@@(: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:) !!!See also: (:pagelist link="backlink" except_tags="noalso":) </string>
+ <string>!!!boost/exception/info_tuple.hpp This header file contains the following definitions/declarations: (:pagelist link="backlink" layer="synopsis":) </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:) !!!See also: (:pagelist link="backlink" except_tags="noalso":) </string>
+ <string>!!!boost/exception/error_info.hpp This header file contains the following declaration: [@namespace boost { template <class Tag, class T> class (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-21</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:); }@] </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:) !!!See also: (:pagelist link="backlink" except_tags="noalso":) </string>
+ <string>!!!boost/exception_ptr.hpp This header file contains the following definitions/declarations: (:pagelist link="backlink" layer="synopsis":) </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 This header file includes all other header files of Boost Exception: (:pagelist tags="header":) </string>
+ <string>!!!boost/exception/throw_exception.hpp This header file contains the following definitions/declarations: (:pagelist link="backlink" layer="synopsis":) </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 This header file contains the following definitions/declarations: (:pagelist link="backlink" layer="synopsis":) </string>
+ <string>!!!boost/exception/enable_current_exception.hpp This header file contains the following definitions/declarations: (:pagelist link="backlink" layer="synopsis":) </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 This header file contains the following definitions/declarations: (:pagelist link="backlink" layer="synopsis":) </string>
+ <string>!!!boost/exception/enable_error_info.hpp This header file contains the following definitions/declarations: (:pagelist link="backlink" layer="synopsis":) </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 <</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>1</expired>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>>@]</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 <</string>
- <variant>1</variant>
- <weak_ptr>
- <expired>1</expired>
- </weak_ptr>
- <variant>2</variant>
- <string>>@]</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 <class Tag,class T> class (:link </string>
+ <string>[@ class (: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>:) { public: typedef T value_type; error_info( value_type const & ); private: ---unspecified--- };@] </string>
+ <string>:) { public: (:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-35</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> decl:) protected: (:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-36</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> decl:) (:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-37</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> decl:) private: ---unspecified--- };@] </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 <class E, class Tag1, class T1> E const & operator<<( E const & 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>:)<struct tag_throw_function,char const *> throw_function; typedef (:link </string>
+ <string>:)<Tag1,T1> const & v ); template <class E, class Tag1, class T1, ..., class TagN, class TN> E const & operator<<( E const & x, (:link http://www.boost.org/libs/tuple/doc/tuple_users_guide.html|tuple:)< (: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>:)<struct tag_throw_file,char const *> throw_file; typedef (:link </string>
+ <string>:)<Tag1,T1>, ..., (: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>:)<struct tag_throw_line,int> throw_line; #define (:link </string>
+ <string>:)<TagN,TN> > const & v );@] </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 <class ErrorInfo,class E> (:link http://www.boost.org/libs/smart_ptr/shared_ptr.htm|shared_ptr:)<typename ErrorInfo::value_type const> (: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>:)\ ::boost::throw_function(BOOST_CURRENT_FUNCTION) <<\ ::boost::throw_file(__FILE__) <<\ ::boost::throw_line((int)__LINE__)@] </string>
+ <string>:)( E const & 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 <class T> ---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>:);@] </string>
+ <string>:)( T const & x );@] </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 <class T> (: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 & e );@] </string>
+ <string>:) const & 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 (:link </string>
+ <string>[@ template <class Tag,class T> class (: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>:) { public: (:include </string>
- <variant>1</variant>
- <weak_ptr>
- <expired>0</expired>
- <shared_ptr>
- <id>-35</id>
- </shared_ptr>
- </weak_ptr>
- <variant>2</variant>
- <string> decl:) protected: (:include </string>
- <variant>1</variant>
- <weak_ptr>
- <expired>0</expired>
- <shared_ptr>
- <id>-36</id>
- </shared_ptr>
- </weak_ptr>
- <variant>2</variant>
- <string> decl:) (:include </string>
- <variant>1</variant>
- <weak_ptr>
- <expired>0</expired>
- <shared_ptr>
- <id>-37</id>
- </shared_ptr>
- </weak_ptr>
- <variant>2</variant>
- <string> decl:) private: ---unspecified--- };@] </string>
+ <string>:) { public: typedef T value_type; error_info( value_type const & ); private: ---unspecified--- };@] </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 <class E, class Tag1, class T1> E const & operator<<( E const & 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>:)<Tag1,T1> const & v ); template <class E, class Tag1, class T1, ..., class TagN, class TN> E const & operator<<( E const & x, (:link http://www.boost.org/libs/tuple/doc/tuple_users_guide.html|tuple:)< (:link </string>
+ <string>:)<struct tag_throw_function,char const *> throw_function; 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>:)<Tag1,T1>, ..., (:link </string>
+ <string>:)<struct tag_throw_file,char const *> throw_file; 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>:)<TagN,TN> > const & v );@] </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 <class ErrorInfo,class E> (:link http://www.boost.org/libs/smart_ptr/shared_ptr.htm|shared_ptr:)<typename ErrorInfo::value_type const> (:link </string>
+ <string>:)<struct tag_throw_line,int> throw_line; #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 & x );</string>
+ <string>:)\ ::boost::throw_function(BOOST_CURRENT_FUNCTION) <<\ ::boost::throw_file(__FILE__) <<\ ::boost::throw_line((int)__LINE__)@] </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 <class T> ---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 & x );@] </string>
+ <string>:);@] </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 <class T> (: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 & ep );</string>
+ <string>:)( T const & e );@] </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 (:include synopsis:) !!!!Requirements: @@T@@ must have accessible copy constructor and must not be a reference. !!!!Description: 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 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>:)<Tag,T>@@ 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<<:)()@@ 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>:)@@. !!!!Note: The header @@<(:link </string>
+ <string>:)@@ anyway. Here is an example: [@#include <(: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>:)>@@ provides a declaration of the @@(:link </string>
+ <string>:)> #include <stdexcept> 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: [@#include <(:link </string>
+ <string>:)<struct tag_std_range_min,size_t> std_range_min; 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>:)> typedef boost::(:link </string>
+ <string>:)<struct tag_std_range_max,size_t> std_range_max; 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>:)<struct tag_errno,int> errno_info;@] Of course, to actually add an @@errno_info@@ object to exceptions using @@(:link </string>
+ <string>:)<struct tag_std_range_index,size_t> std_range_index; template <class T> class my_container { public: size_t size() const; T const & operator[]( size_t i ) const { if( i > size() ) 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<<:)()@@, or to retrieve it using @@(:link </string>
+ <string>:)(std::range_error("Index out of range")) << std_range_min(0) << std_range_max(size()) << std_range_index(i); //.... } }; @] @@(: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 <(:link </string>
+ <string>|Enable_error_info:)<T>@@ returns an object of ''unspecified type'' 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>:)>@@. </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 (:include synopsis:) 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<<:)()@@ when throwing a @@boost::(:link </string>
+ <string>|operator<<:)()@@ to store additional information in the exception object. The exception can be intercepted as @@T &@@, 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>:) &@@, 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. </string>
+ <string>|more information can be added to the exception at a later time:). </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 (:include synopsis:) The @@(:link </string>
+ <string>!!Logging of boost::exception Objects 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>:)@@'s operations do not throw. 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: [@#include <(: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. The default constructor of @@(:link </string>
+ <string>:)> #include <iostream> 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. !!!!Note: @@(:link </string>
+ <string>:). void g() { try { f(); } catch( 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>:) & e ) { std::cerr << 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>:::)(); } }@] 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>:)()@@. </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() (:include synopsis:) !!!!Effects: 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>(); }@@ </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<<:)()@@. The returned string is constructed by converting each data object to string and then concatenating these strings together. 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>:)<Tag,T>@@ 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. Otherwise, the system attempts overload resolution for @@s << x@@, where @@s@@ is a @@std::ostringstream@@ and @@x@@ is of type @@T@@. If this is successful, the @@operator<<@@ overload is used to convert objects of type @@T@@ to string. 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. </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 (:include synopsis:) 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. 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<<:)()@@. 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. (:include members:) </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<<() (:include synopsis:) !!!!Requirements: @@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>:)@@. !!!!Effects: * 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>:)<Tag1,T1>@@, that data is overwritten. * The @@boost::(:link http://www.boost.org/libs/tuple/doc/tuple_users_guide.html|tuple:)@@ overload is equivalent to @@x << v.(:link http://www.boost.org/libs/tuple/doc/tuple_users_guide.html#accessing_elements|get:)<0>() << ... << v.(:link http://www.boost.org/libs/tuple/doc/tuple_users_guide.html#accessing_elements|get:)<N>()@@. !!!!Returns: @@x@@. (:include throws:) </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() (:include synopsis:) !!!!Requirements: 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. !!!!Returns: 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<<:)()@@ to store values in exception objects. !!!!Throws: Nothing. </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() (:include synopsis:) !!!!Requirements: @@T@@ must be a user-defined type with accessible no-throw copy constructor. !!!!Returns: 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>:)@@. !!!!Throws: Nothing. </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() (:include synopsis:) !!!!Precondition: @@ep@@ shall not be null. !!!!Throws: The exception to which @@ep@@ refers. </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 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: [@#include <(:link </string>
- <variant>1</variant>
- <weak_ptr>
- <expired>0</expired>
- <shared_ptr>
- <id>-28</id>
- </shared_ptr>
- </weak_ptr>
- <variant>2</variant>
- <string>:)> #include <stdexcept> 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>:)<struct tag_std_range_min,size_t> std_range_min; 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>:)<struct tag_std_range_max,size_t> std_range_max; 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>:)<struct tag_std_range_index,size_t> std_range_index; template <class T> class my_container { public: size_t size() const; T const & operator[]( size_t i ) const { if( i > size() ) 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("Index out of range")) << std_range_min(0) << std_range_max(size()) << std_range_index(i); //.... } }; @] @@(: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:)<T>@@ returns an object of ''unspecified type'' 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<<:)()@@ to store additional information in the exception object. The exception can be intercepted as @@T &@@, 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>:) &@@, 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:). </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 Class @@boost::(:link </string>
+ <string>!!!error_info (:include synopsis:) !!!!Requirements: @@T@@ must have accessible copy constructor and must not be a reference. !!!!Description: 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>:)<Tag,T>@@ 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: [@#include <(:link </string>
+ <string>|operator<<:)()@@ 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>:)> #include <iostream> void f(); //throws unknown types that derive from boost::(:link </string>
+ <string>:)@@. !!!!Note: The header @@<(: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>:). void g() { try { f(); } catch( boost::(:link </string>
+ <string>:)>@@ 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>:) & e ) { std::cerr << e.(:link </string>
+ <string>:)@@ template, which is sufficient for the purpose of @@typedef@@ing an instance for specific @@Tag@@ and @@T@@, like this: [@#include <(: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>:::)(); } }@] The @@(:link </string>
+ <string>:)> 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>:)<struct tag_errno,int> errno_info;@] 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<<:)()@@, 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<<:)()@@. The returned string is constructed by converting each data object to string and then concatenating these strings together. When the @@(:link </string>
+ <string>:)()@@, you must first @@#include <(: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>:)<Tag,T>@@ 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. Otherwise, the system attempts overload resolution for @@s << x@@, where @@s@@ is a @@std::ostringstream@@ and @@x@@ is of type @@T@@. If this is successful, the @@operator<<@@ overload is used to convert objects of type @@T@@ to string. 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. </string>
+ <string>:)>@@. </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 (:include synopsis:) 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. 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 (:include synopsis:) 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<<:)()@@. To retrieve data from a @@boost::(:link </string>
+ <string>|operator<<:)()@@ 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. (:include members:) </string>
+ <string>:)@@s in a single throw expression. </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<<() (:include synopsis:) !!!!Requirements: @@E@@ must be @@boost::(:link </string>
+ <string>!!!exception_ptr (:include synopsis:) 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>:)@@. !!!!Effects: * 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>:)<Tag1,T1>@@, that data is overwritten. * The @@boost::(:link http://www.boost.org/libs/tuple/doc/tuple_users_guide.html|tuple:)@@ overload is equivalent to @@x << v.(:link http://www.boost.org/libs/tuple/doc/tuple_users_guide.html#accessing_elements|get:)<0>() << ... << v.(:link http://www.boost.org/libs/tuple/doc/tuple_users_guide.html#accessing_elements|get:)<N>()@@. !!!!Returns: @@x@@. (:include throws:) </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() (:include synopsis:) !!!!Requirements: The type of the @@x@@ object must derive from @@boost::(:link </string>
+ <string>:)@@'s operations do not throw. 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. 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. !!!!Returns: 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. !!!!Note: @@(: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<<:)()@@ to store values in exception objects. !!!!Throws: Nothing. </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() (:include synopsis:) !!!!Requirements: @@T@@ must be a user-defined type with accessible no-throw copy constructor. !!!!Returns: 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>:)()@@. </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() (:include synopsis:) !!!!Effects: 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>:)@@. !!!!Throws: Nothing. </string>
+ <string>(); }@@ </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() (:include synopsis:) !!!!Precondition: @@ep@@ shall not be null. !!!!Throws: The exception to which @@ep@@ refers. </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: @@std::bad_alloc@@, or any exception emitted by @@T1..TN@@ copy constructor. </string>
</container>
</pair>
<pair>
@@ -6085,18 +6087,7 @@
</shared_ptr>
</weak_ptr>
<container>
- <size>3</size>
- <variant>2</variant>
- <string>!!!!Throws: @@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>:)()@@. </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: @@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>:)()@@. </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: @@std::bad_alloc@@, or any exception emitted by @@T1..TN@@ copy constructor. </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>:) (:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-37</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:) (: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>:) (:include </string>
- <variant>1</variant>
- <weak_ptr>
- <expired>0</expired>
- <shared_ptr>
- <id>-37</id>
- </shared_ptr>
- </weak_ptr>
- <variant>2</variant>
- <string>:) (: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 <(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-31</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)>@@ [@namespace boost { (:include decl:) }@] </string>
</container>
</pair>
<pair>
@@ -6936,7 +6947,27 @@
</shared_ptr>
</weak_ptr>
<container>
- <size>0</size>
+ <size>5</size>
+ <variant>2</variant>
+ <string>@@#include <(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-15</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)>@@\\ @@#include <(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-29</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)> [@namespace boost { (:include decl:) }@] </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 <(:link </string>
- <variant>1</variant>
- <weak_ptr>
- <expired>0</expired>
- <shared_ptr>
- <id>-29</id>
- </shared_ptr>
- </weak_ptr>
- <variant>2</variant>
- <string>:)>@@ [@namespace boost { (:include decl:) }@] </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 <(:link </string>
<variant>1</variant>
@@ -7222,23 +7242,14 @@
</shared_ptr>
</weak_ptr>
<variant>2</variant>
- <string>:)>@@\\ @@#include <(:link </string>
- <variant>1</variant>
- <weak_ptr>
- <expired>0</expired>
- <shared_ptr>
- <id>-7</id>
- </shared_ptr>
- </weak_ptr>
- <variant>2</variant>
- <string>:)> [@namespace boost { (:include decl:) }@] </string>
+ <string>:)>@@ [@namespace boost { (:include decl:) }@] </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 <(:link </string>
- <variant>1</variant>
- <weak_ptr>
- <expired>0</expired>
- <shared_ptr>
- <id>-29</id>
- </shared_ptr>
- </weak_ptr>
- <variant>2</variant>
- <string>:)>@@ [@namespace boost { (:include decl:) }@] </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<</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<</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<const
+<a name="id500747"></a><p class="title"><b>Table 1.1. Time taken to copy 1000 elements using `copy<const
T*, T*>` (times in micro-seconds)</b></p>
<div class="table-contents"><table class="table" summary="Time taken to copy 1000 elements using `copy<const
T*, T*>` (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"><</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">></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"><</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">></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"><</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">></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"><</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">></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"><</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">></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"><</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">></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"><</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">></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"><</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">></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"><</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">></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"><</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">></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"><</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">></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"><</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">></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"><</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">></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"><</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">></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"><</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">></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"><</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">></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"><</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">></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"><</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">></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ñ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><include></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><include>
+ </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 <include>.
;
-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><include>.</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—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><include>.</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—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—if the library is moved to a different
- directory, only <filename>Jamroot</filename> must be modified.
- Note that project ids are global—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—if the
+ library is moved to a different directory, only <filename>Jamroot
+ </filename> must be modified. Note that project ids are global—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><library></varname> property. For example, if <filename>/boost/filesystem//fs</filename>
- should be linked to all applications in your project, you can add
- <code><library>/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><library></varname> property.
+ For example, if <filename>/boost/filesystem//fs</filename> should be
+ linked to all applications in your project, you can add
+ <code><library>/boost/filesystem//fs</code> to the project's
+ requirements, like this:
+ </para>
<programlisting>
project
: requirements <source>/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 : <link>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 : <link>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/<link>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/<link>static ;
exe e10 : e10.cpp /other_project//bar/<link>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/<link>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—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—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"><link>shared:<define>NEWORK_LIB_SHARED</emphasis>
<variant>release:<define>EXTRA_FAST
- ;
-</programlisting>
+ ;</programlisting>
- In the example above, whenever <filename>network</filename> is
- built with <code><link>shared</code>,
- <code><define>NEWORK_LIB_SHARED</code> will be in its
- properties, too. Also, whenever its release variant is built,
- <code><define>EXTRA_FAST</code> will appear in its properties.
+ In the example above, whenever <filename>network</filename> is built with
+ <code><link>shared</code>, <code><define>NEWORK_LIB_SHARED
+ </code> will be in its properties, too. Also, whenever its release variant
+ is built, <code><define>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 : <toolset>gcc ; # alternative 2
-lib demangler : demangler_msvc.cpp : <toolset>msvc ; # alternative 3
-</programlisting>
+lib demangler : demangler_msvc.cpp : <toolset>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><toolset>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
:
: <file>lib2_debug.a <variant>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><file></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—those that are automatically found by
- the toolset by searching through some set of predetermined
- paths—should be declared almost like regular ones:
+ System libraries—those that are automatically found by the toolset
+ by searching through some set of predetermined paths—should be
+ declared almost like regular ones:
-<programlisting>
-lib pythonlib : : <name>python22 ;
-</programlisting>
+ <programlisting>
+lib pythonlib : : <name>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 : : <name>python22 <search>/opt/lib ;
-</programlisting>
+ <programlisting>
+lib pythonlib : : <name>python22 <search>/opt/lib ;</programlisting>
And, of course, target alternatives can be used in the usual way:
-<programlisting>
+ <programlisting>
lib pythonlib : : <name>python22 <variant>release ;
-lib pythonlib : : <name>python22_d <variant>debug ;
-</programlisting>
-
+lib pythonlib : : <name>python22_d <variant>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( "ed_command );
+ string_append( "ed_command, "\"" );
+ string_append( "ed_command, command );
+ string_append( "ed_command, "\"" );
+ command = quoted_command.value;
+ }
+
+ result = _popen( command, "r" );
+
+ if ( extra_command_quotes_needed )
+ string_free( "ed_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