Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r48905 - in branches/release: boost boost/exception boost/exception/detail libs/exception/doc libs/exception/doc/source libs/exception/example libs/exception/test
From: emil_at_[hidden]
Date: 2008-09-19 16:29:33


Author: emildotchevski
Date: 2008-09-19 16:29:26 EDT (Fri, 19 Sep 2008)
New Revision: 48905
URL: http://svn.boost.org/trac/boost/changeset/48905

Log:
Boost Exception major refactoring: works with or without RTTI, vastly improved boost::throw_exception integration.
Added:
   branches/release/boost/exception/detail/error_info_impl.hpp (contents, props changed)
   branches/release/boost/exception/detail/type_info.hpp (contents, props changed)
   branches/release/boost/exception/get_error_info.hpp (contents, props changed)
   branches/release/libs/exception/doc/BOOST_THROW_EXCEPTION.html (contents, props changed)
   branches/release/libs/exception/doc/configuration_macros.html (contents, props changed)
   branches/release/libs/exception/doc/exception_diagnostic_information_hpp.html (contents, props changed)
   branches/release/libs/exception/doc/exception_enable_current_exception_hpp.html (contents, props changed)
   branches/release/libs/exception/doc/exception_get_error_info_hpp.html (contents, props changed)
   branches/release/libs/exception/doc/exception_operator_shl.html (contents, props changed)
   branches/release/libs/exception/doc/tuple_operator_shl.html (contents, props changed)
   branches/release/libs/exception/test/1-throw_exception_test.cpp (contents, props changed)
   branches/release/libs/exception/test/2-throw_exception_no_exceptions_test.cpp (contents, props changed)
   branches/release/libs/exception/test/3-throw_exception_no_integration_test.cpp (contents, props changed)
   branches/release/libs/exception/test/4-throw_exception_no_both_test.cpp (contents, props changed)
   branches/release/libs/exception/test/get_error_info_hpp_test.cpp (contents, props changed)
   branches/release/libs/exception/test/refcount_ptr_test.cpp (contents, props changed)
Removed:
   branches/release/libs/exception/doc/BOOST_ERROR_INFO.html
   branches/release/libs/exception/doc/boost_exception_diagnostic_information_hpp.html
   branches/release/libs/exception/doc/exception_diagnostic_information.html
   branches/release/libs/exception/doc/exception_enable_exception_cloning_hpp.html
   branches/release/libs/exception/doc/operator_shl_exception.html
   branches/release/libs/exception/doc/operator_shl_tuple.html
   branches/release/libs/exception/test/boost_error_info_test.cpp
   branches/release/libs/exception/test/enable_current_exception_hpp_test.cpp
   branches/release/libs/exception/test/enable_error_info_hpp_test.cpp
Text files modified:
   branches/release/boost/exception.hpp | 4
   branches/release/boost/exception/detail/object_hex_dump.hpp | 4
   branches/release/boost/exception/diagnostic_information.hpp | 47
   branches/release/boost/exception/enable_current_exception.hpp | 150 -
   branches/release/boost/exception/enable_error_info.hpp | 100
   branches/release/boost/exception/error_info.hpp | 12
   branches/release/boost/exception/exception.hpp | 397 ++
   branches/release/boost/exception/info.hpp | 199 -
   branches/release/boost/exception_ptr.hpp | 295 +
   branches/release/boost/throw_exception.hpp | 16
   branches/release/libs/exception/doc/boost-exception.html | 193
   branches/release/libs/exception/doc/copy_exception.html | 10
   branches/release/libs/exception/doc/current_exception.html | 1
   branches/release/libs/exception/doc/diagnostic_information.html | 22
   branches/release/libs/exception/doc/enable_current_exception.html | 8
   branches/release/libs/exception/doc/enable_error_info.html | 6
   branches/release/libs/exception/doc/error_info.html | 14
   branches/release/libs/exception/doc/exception.html | 46
   branches/release/libs/exception/doc/exception_constructors.html | 2
   branches/release/libs/exception/doc/exception_enable_error_info_hpp.html | 3
   branches/release/libs/exception/doc/exception_error_info_group_hpp.html | 4
   branches/release/libs/exception/doc/exception_error_info_hpp.html | 20
   branches/release/libs/exception/doc/exception_error_info_value_hpp.html | 1
   branches/release/libs/exception/doc/exception_exception_hpp.html | 19
   branches/release/libs/exception/doc/exception_hpp.html | 10
   branches/release/libs/exception/doc/exception_ptr.html | 5
   branches/release/libs/exception/doc/get_error_info.html | 13
   branches/release/libs/exception/doc/name_idx.html | 16
   branches/release/libs/exception/doc/rethrow_exception.html | 1
   branches/release/libs/exception/doc/source/boost-exception.reno | 4500 +++++++++++++++++++++------------------
   branches/release/libs/exception/doc/throw_exception.html | 14
   branches/release/libs/exception/doc/throw_exception_hpp.html | 31
   branches/release/libs/exception/doc/tutorial_diagnostic_information.html | 14
   branches/release/libs/exception/doc/tutorial_enable_error_info.html | 2
   branches/release/libs/exception/doc/tutorial_exception_ptr.html | 3
   branches/release/libs/exception/doc/tutorial_transporting_data.html | 2
   branches/release/libs/exception/example/cloning_1.cpp | 1
   branches/release/libs/exception/example/example_io.cpp | 18
   branches/release/libs/exception/example/logging.cpp | 2
   branches/release/libs/exception/test/Jamfile.v2 | 9
   branches/release/libs/exception/test/cloning_test.cpp | 430 +++
   branches/release/libs/exception/test/diagnostic_information_hpp_test.cpp | 1
   branches/release/libs/exception/test/diagnostic_information_test.cpp | 63
   branches/release/libs/exception/test/enable_error_info_test.cpp | 22
   branches/release/libs/exception/test/errno_test.cpp | 1
   branches/release/libs/exception/test/error_info_hpp_test.cpp | 1
   branches/release/libs/exception/test/error_info_test.cpp | 78
   branches/release/libs/exception/test/exception_hpp_test.cpp | 1
   branches/release/libs/exception/test/exception_ptr_hpp_test.cpp | 1
   branches/release/libs/exception/test/helper1.cpp | 2
   branches/release/libs/exception/test/info_hpp_test.cpp | 1
   branches/release/libs/exception/test/info_tuple_hpp_test.cpp | 1
   branches/release/libs/exception/test/throw_exception_test.cpp | 85
   branches/release/libs/exception/test/to_string_hpp_test.cpp | 1
   branches/release/libs/exception/test/to_string_stub_hpp_test.cpp | 1
   branches/release/libs/exception/test/unknown_exception_test.cpp | 1
   56 files changed, 3913 insertions(+), 2991 deletions(-)

Modified: branches/release/boost/exception.hpp
==============================================================================
--- branches/release/boost/exception.hpp (original)
+++ branches/release/boost/exception.hpp 2008-09-19 16:29:26 EDT (Fri, 19 Sep 2008)
@@ -7,13 +7,11 @@
 #define UUID_1D94A7C6054E11DB9804B622A1EF5492
 
 #include <boost/exception/diagnostic_information.hpp>
-#include <boost/exception/enable_current_exception.hpp>
-#include <boost/exception/enable_error_info.hpp>
 #include <boost/exception/error_info.hpp>
 #include <boost/exception/exception.hpp>
+#include <boost/exception/get_error_info.hpp>
 #include <boost/exception/info.hpp>
 #include <boost/exception/info_tuple.hpp>
 #include <boost/exception_ptr.hpp>
-#include <boost/throw_exception.hpp>
 
 #endif

Added: branches/release/boost/exception/detail/error_info_impl.hpp
==============================================================================
--- (empty file)
+++ branches/release/boost/exception/detail/error_info_impl.hpp 2008-09-19 16:29:26 EDT (Fri, 19 Sep 2008)
@@ -0,0 +1,61 @@
+//Copyright (c) 2006-2008 Emil Dotchevski and Reverge Studios, Inc.
+
+//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)
+
+#ifndef UUID_CE6983AC753411DDA764247956D89593
+#define UUID_CE6983AC753411DDA764247956D89593
+
+#include <string>
+
+namespace
+boost
+ {
+ namespace
+ exception_detail
+ {
+ class
+ error_info_base
+ {
+ public:
+
+ virtual char const * tag_typeid_name() const = 0;
+ virtual std::string value_as_string() const = 0;
+
+ protected:
+
+ virtual
+ ~error_info_base() throw()
+ {
+ }
+ };
+ }
+
+ template <class Tag,class T>
+ class
+ error_info:
+ public exception_detail::error_info_base
+ {
+ public:
+
+ typedef T value_type;
+
+ error_info( value_type const & value );
+ ~error_info() throw();
+
+ value_type const &
+ value() const
+ {
+ return value_;
+ }
+
+ private:
+
+ char const * tag_typeid_name() const;
+ std::string value_as_string() const;
+
+ value_type const value_;
+ };
+ }
+
+#endif

Modified: branches/release/boost/exception/detail/object_hex_dump.hpp
==============================================================================
--- branches/release/boost/exception/detail/object_hex_dump.hpp (original)
+++ branches/release/boost/exception/detail/object_hex_dump.hpp 2008-09-19 16:29:26 EDT (Fri, 19 Sep 2008)
@@ -6,8 +6,8 @@
 #ifndef UUID_6F463AC838DF11DDA3E6909F56D89593
 #define UUID_6F463AC838DF11DDA3E6909F56D89593
 
+#include <boost/exception/detail/type_info.hpp>
 #include <iomanip>
-#include <typeinfo>
 #include <ios>
 #include <string>
 #include <sstream>
@@ -24,7 +24,7 @@
         object_hex_dump( T const & x, size_t max_size=16 )
             {
             std::ostringstream s;
- s << "type: " << typeid(x).name() << ", size: " << sizeof(T) << ", dump: ";
+ s << "type: " << type_name<T>() << ", size: " << sizeof(T) << ", dump: ";
             size_t n=sizeof(T)>max_size?max_size:sizeof(T);
             s.fill('0');
             s.width(2);

Added: branches/release/boost/exception/detail/type_info.hpp
==============================================================================
--- (empty file)
+++ branches/release/boost/exception/detail/type_info.hpp 2008-09-19 16:29:26 EDT (Fri, 19 Sep 2008)
@@ -0,0 +1,130 @@
+//Copyright (c) 2006-2008 Emil Dotchevski and Reverge Studios, Inc.
+
+//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)
+
+#ifndef UUID_C3E1741C754311DDB2834CCA55D89593
+#define UUID_C3E1741C754311DDB2834CCA55D89593
+
+#include <boost/detail/sp_typeinfo.hpp>
+#include <boost/current_function.hpp>
+
+namespace
+boost
+ {
+ template <class T>
+ inline
+ char const *
+ tag_type_name()
+ {
+#ifdef BOOST_NO_TYPEID
+ return BOOST_CURRENT_FUNCTION;
+#else
+ return typeid(T*).name();
+#endif
+ }
+
+ template <class T>
+ inline
+ char const *
+ type_name()
+ {
+#ifdef BOOST_NO_TYPEID
+ return BOOST_CURRENT_FUNCTION;
+#else
+ return typeid(T).name();
+#endif
+ }
+
+ namespace
+ exception_detail
+ {
+#ifdef BOOST_NO_TYPEID
+ struct
+ type_info_
+ {
+ detail::sp_typeinfo type_;
+ char const * name_;
+
+ explicit
+ type_info_( detail::sp_typeinfo type, char const * name ):
+ type_(type),
+ name_(name)
+ {
+ }
+
+ friend
+ bool
+ operator==( type_info_ const & a, type_info_ const & b )
+ {
+ return a.type_==b.type_;
+ }
+
+ friend
+ bool
+ operator<( type_info_ const & a, type_info_ const & b )
+ {
+ return a.type_<b.type_;
+ }
+
+ char const *
+ name() const
+ {
+ return name_;
+ }
+ };
+#else
+ struct
+ type_info_
+ {
+ detail::sp_typeinfo const * type_;
+
+ explicit
+ type_info_( detail::sp_typeinfo const & type ):
+ type_(&type)
+ {
+ }
+
+ type_info_( detail::sp_typeinfo const & type, char const * ):
+ type_(&type)
+ {
+ }
+
+ friend
+ bool
+ operator==( type_info_ const & a, type_info_ const & b )
+ {
+ return (*a.type_)==(*b.type_);
+ }
+
+ friend
+ bool
+ operator<( type_info_ const & a, type_info_ const & b )
+ {
+ return 0!=(a.type_->before(*b.type_));
+ }
+
+ char const *
+ name() const
+ {
+ return type_->name();
+ }
+ };
+#endif
+
+ inline
+ bool
+ operator!=( type_info_ const & a, type_info_ const & b )
+ {
+ return !(a==b);
+ }
+ }
+ }
+
+#define BOOST_EXCEPTION_STATIC_TYPEID(T) ::boost::exception_detail::type_info_(BOOST_SP_TYPEID(T),::boost::tag_type_name<T>())
+
+#ifndef BOOST_NO_RTTI
+#define BOOST_EXCEPTION_DYNAMIC_TYPEID(x) ::boost::exception_detail::type_info_(typeid(x))
+#endif
+
+#endif

Modified: branches/release/boost/exception/diagnostic_information.hpp
==============================================================================
--- branches/release/boost/exception/diagnostic_information.hpp (original)
+++ branches/release/boost/exception/diagnostic_information.hpp 2008-09-19 16:29:26 EDT (Fri, 19 Sep 2008)
@@ -6,21 +6,58 @@
 #ifndef UUID_0552D49838DD11DD90146B8956D89593
 #define UUID_0552D49838DD11DD90146B8956D89593
 
-#include <boost/exception/exception.hpp>
+#include <boost/exception/get_error_info.hpp>
 #include <exception>
+#include <sstream>
 #include <string>
 
 namespace
 boost
     {
+ namespace
+ exception_detail
+ {
+ inline
+ char const *
+ get_diagnostic_information( exception const & x )
+ {
+ if( error_info_container * c=x.data_.get() )
+ try
+ {
+ return c->diagnostic_information();
+ }
+ catch(...)
+ {
+ }
+ return 0;
+ }
+ }
+
     inline
     std::string
- diagnostic_information( std::exception const & x )
+ diagnostic_information( exception const & x )
         {
- if( exception const * be = dynamic_cast<exception const *>(&x) )
- return be->diagnostic_information();
+ std::ostringstream tmp;
+ if( boost::shared_ptr<char const * const> f=get_error_info<throw_file>(x) )
+ {
+ tmp << *f;
+ if( boost::shared_ptr<int const> l=get_error_info<throw_line>(x) )
+ tmp << '(' << *l << "): ";
+ }
+ tmp << "Throw in function ";
+ if( boost::shared_ptr<char const * const> fn=get_error_info<throw_function>(x) )
+ tmp << *fn;
         else
- return std::string("[ what: ") + x.what() + ", type: " + typeid(x).name() + " ]";
+ tmp << "(unknown)";
+#ifndef BOOST_NO_RTTI
+ tmp << "\nDynamic exception type: " << BOOST_EXCEPTION_DYNAMIC_TYPEID(x).name();
+ if( std::exception const * e=dynamic_cast<std::exception const *>(&x) )
+ tmp << "\nstd::exception::what: " << e->what();
+#endif
+ if( char const * s=exception_detail::get_diagnostic_information(x) )
+ if( *s )
+ tmp << '\n' << s;
+ return tmp.str();
         }
     }
 

Modified: branches/release/boost/exception/enable_current_exception.hpp
==============================================================================
--- branches/release/boost/exception/enable_current_exception.hpp (original)
+++ branches/release/boost/exception/enable_current_exception.hpp 2008-09-19 16:29:26 EDT (Fri, 19 Sep 2008)
@@ -3,154 +3,4 @@
 //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)
 
-#ifndef UUID_78CC85B2914F11DC8F47B48E55D89593
-#define UUID_78CC85B2914F11DC8F47B48E55D89593
-
 #include <boost/exception/exception.hpp>
-#include <boost/exception/detail/cloning_base.hpp>
-#include <boost/detail/atomic_count.hpp>
-#include <boost/assert.hpp>
-#include <new>
-
-namespace
-boost
- {
- namespace
- exception_detail
- {
- class
- clone_base:
- public counted_base
- {
- public:
-
- virtual void rethrow() const=0;
- };
-
- struct
- bad_alloc_impl:
- public clone_base,
- public std::bad_alloc
- {
- void
- add_ref() const
- {
- }
-
- void
- release() const
- {
- }
-
- void
- rethrow() const
- {
- throw *this;
- }
- };
-
- template <class T>
- clone_base * make_clone( T const & );
-
- template <class T>
- class
- clone_impl:
- public T,
- public cloning_base
- {
- public:
-
- explicit
- clone_impl( T const & x ):
- T(x)
- {
- if( boost::exception * be1=dynamic_cast<boost::exception *>(this) )
- if( boost::exception const * be2=dynamic_cast<boost::exception const *>(&x) )
- *be1 = *be2;
- }
-
- private:
-
- clone_base const *
- clone() const
- {
- return make_clone<T>(*this);
- }
- };
-
- template <class T>
- class
- exception_clone:
- public T,
- public clone_base
- {
- public:
-
- explicit
- exception_clone( T const & x ):
- T(x),
- count_(0)
- {
- if( boost::exception * be1=dynamic_cast<boost::exception *>(this) )
- if( boost::exception const * be2=dynamic_cast<boost::exception const *>(&x) )
- *be1 = *be2;
- }
-
- private:
-
- detail::atomic_count mutable count_;
-
- void
- add_ref() const
- {
- ++count_;
- }
-
- void
- release() const
- {
- if( !--count_ )
- delete this;
- }
-
- void
- rethrow() const
- {
- throw clone_impl<T>(*this);
- }
- };
-
- template <class T>
- inline
- clone_base *
- make_clone( T const & x )
- {
- try
- {
- return new exception_clone<T>(x);
- }
- catch(
- std::bad_alloc & )
- {
- static bad_alloc_impl bad_alloc;
- return &bad_alloc;
- }
- catch(
- ... )
- {
- BOOST_ASSERT(0);
- return 0;
- }
- }
- }
-
- template <class T>
- inline
- exception_detail::clone_impl<T>
- enable_current_exception( T const & x )
- {
- return exception_detail::clone_impl<T>(x);
- }
- }
-
-#endif

Modified: branches/release/boost/exception/enable_error_info.hpp
==============================================================================
--- branches/release/boost/exception/enable_error_info.hpp (original)
+++ branches/release/boost/exception/enable_error_info.hpp 2008-09-19 16:29:26 EDT (Fri, 19 Sep 2008)
@@ -3,104 +3,4 @@
 //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)
 
-#ifndef UUID_0C5D492E909711DCB658AD4556D89593
-#define UUID_0C5D492E909711DCB658AD4556D89593
-
 #include <boost/exception/exception.hpp>
-#include <boost/detail/workaround.hpp>
-#include <boost/config.hpp>
-#include <stddef.h>
-
-namespace
-boost
- {
- namespace
- exception_detail
- {
- template <class T>
- struct
- error_info_injector:
- public T,
- public exception
- {
- explicit
- error_info_injector( T const & x ):
- T(x)
- {
- }
-
- ~error_info_injector() throw()
- {
- }
-
- char const *
- diagnostic_information() const throw()
- {
- return boost::exception::_diagnostic_information(T::what());
- }
- };
-
- struct large_size { char c[256]; };
- large_size dispatch( exception * );
-
- struct small_size { };
- small_size dispatch( void * );
-
- template <class,size_t>
- struct enable_error_info_helper;
-
- template <class T>
- struct
- enable_error_info_helper<T,sizeof(large_size)>
- {
- typedef T type;
- };
-
- template <class T>
- struct
- enable_error_info_helper<T,sizeof(small_size)>
- {
- typedef error_info_injector<T> type;
- };
-
-#if BOOST_WORKAROUND(__BORLANDC__,BOOST_TESTED_AT(0x582))
- template <class T>
- struct
- sizeof_dispatch
- {
- BOOST_STATIC_CONSTANT(int, value = sizeof(dispatch((T*)0)) );
- };
-
- template <class T>
- struct
- enable_error_info_return_type
- {
- typedef typename enable_error_info_helper<T,sizeof_dispatch<T>::value>::type type;
- };
-#else
- template <class T>
- struct
- enable_error_info_return_type
- {
- typedef typename enable_error_info_helper<T,sizeof(dispatch((T*)0))>::type type;
- };
-#endif
- }
-
- template <class T>
- inline
-#if !BOOST_WORKAROUND(__BORLANDC__,BOOST_TESTED_AT(0x582))
- typename
-#endif
- exception_detail::enable_error_info_return_type<T>::type
- enable_error_info( T const & x )
- {
- return
-#if !BOOST_WORKAROUND(__BORLANDC__,BOOST_TESTED_AT(0x582))
- typename
-#endif
- exception_detail::enable_error_info_return_type<T>::type(x);
- }
- }
-
-#endif

Modified: branches/release/boost/exception/error_info.hpp
==============================================================================
--- branches/release/boost/exception/error_info.hpp (original)
+++ branches/release/boost/exception/error_info.hpp 2008-09-19 16:29:26 EDT (Fri, 19 Sep 2008)
@@ -3,14 +3,4 @@
 //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)
 
-#ifndef UUID_0E57632CCA3011DCB876FD9955D89593
-#define UUID_0E57632CCA3011DCB876FD9955D89593
-
-namespace
-boost
- {
- template <class Tag,class T>
- class error_info;
- }
-
-#endif
+namespace boost { template <class Tag,class T> class error_info; }

Modified: branches/release/boost/exception/exception.hpp
==============================================================================
--- branches/release/boost/exception/exception.hpp (original)
+++ branches/release/boost/exception/exception.hpp 2008-09-19 16:29:26 EDT (Fri, 19 Sep 2008)
@@ -6,115 +6,390 @@
 #ifndef UUID_274DA366004E11DCB1DDFE2E56D89593
 #define UUID_274DA366004E11DCB1DDFE2E56D89593
 
-#include <boost/config.hpp>
-#include <boost/detail/workaround.hpp>
-#include <boost/exception/detail/counted_base.hpp>
-#include <boost/intrusive_ptr.hpp>
-#include <typeinfo>
-
 namespace
 boost
     {
- template <class T>
- class shared_ptr;
-
     namespace
     exception_detail
         {
- class error_info_base;
-
- struct
- error_info_container:
- public exception_detail::counted_base
+ template <class T>
+ class
+ refcount_ptr
             {
- virtual char const * diagnostic_information( char const *, std::type_info const & ) const = 0;
- virtual shared_ptr<error_info_base const> get( std::type_info const & ) const = 0;
- virtual void set( shared_ptr<error_info_base const> const & ) = 0;
+ public:
+
+ refcount_ptr():
+ px_(0)
+ {
+ }
+
+ ~refcount_ptr()
+ {
+ release();
+ }
+
+ refcount_ptr( refcount_ptr const & x ):
+ px_(x.px_)
+ {
+ add_ref();
+ }
+
+ refcount_ptr &
+ operator=( refcount_ptr const & x )
+ {
+ adopt(x.px_);
+ return *this;
+ }
+
+ void
+ adopt( T * px )
+ {
+ release();
+ px_=px;
+ add_ref();
+ }
+
+ T *
+ get() const
+ {
+ return px_;
+ }
+
+ private:
+
+ T * px_;
+
+ void
+ add_ref()
+ {
+ if( px_ )
+ px_->add_ref();
+ }
+
+ void
+ release()
+ {
+ if( px_ )
+ px_->release();
+ }
             };
         }
 
+ ////////////////////////////////////////////////////////////////////////
+
     template <class Tag,class T>
     class error_info;
 
- template <class E,class Tag,class T>
- E const & operator<<( E const &, error_info<Tag,T> const & );
+ typedef error_info<struct tag_throw_function,char const *> throw_function;
+ typedef error_info<struct tag_throw_file,char const *> throw_file;
+ typedef error_info<struct tag_throw_line,int> throw_line;
 
- template <class ErrorInfo,class E>
- shared_ptr<typename ErrorInfo::value_type const> get_error_info( E const & );
+ template <>
+ class
+ error_info<tag_throw_function,char const *>
+ {
+ public:
+ typedef char const * value_type;
+ value_type v_;
+ explicit
+ error_info( value_type v ):
+ v_(v)
+ {
+ }
+ };
 
+ template <>
     class
- exception
+ error_info<tag_throw_file,char const *>
         {
         public:
+ typedef char const * value_type;
+ value_type v_;
+ explicit
+ error_info( value_type v ):
+ v_(v)
+ {
+ }
+ };
 
- virtual
- char const *
- diagnostic_information() const throw()
+ template <>
+ class
+ error_info<tag_throw_line,int>
+ {
+ public:
+ typedef int value_type;
+ value_type v_;
+ explicit
+ error_info( value_type v ):
+ v_(v)
             {
- return _diagnostic_information(0);
             }
+ };
+
+ template <class E,class Tag,class T>
+ E const & operator<<( E const &, error_info<Tag,T> const & );
+
+ class exception;
 
+ template <class>
+ class shared_ptr;
+
+ namespace
+ exception_detail
+ {
+ class error_info_base;
+ struct type_info_;
+
+ struct
+ error_info_container
+ {
+ virtual char const * diagnostic_information() const = 0;
+ virtual shared_ptr<error_info_base const> get( type_info_ const & ) const = 0;
+ virtual void set( shared_ptr<error_info_base const> const &, type_info_ const & ) = 0;
+ virtual void add_ref() const = 0;
+ virtual void release() const = 0;
+
+ protected:
+
+ virtual
+ ~error_info_container() throw()
+ {
+ }
+ };
+
+ template <class>
+ struct get_info;
+
+ template <>
+ struct get_info<throw_function>;
+
+ template <>
+ struct get_info<throw_file>;
+
+ template <>
+ struct get_info<throw_line>;
+
+ char const * get_diagnostic_information( exception const & );
+ }
+
+ class
+ exception
+ {
         protected:
 
- exception()
+ exception():
+ throw_function_(0),
+ throw_file_(0),
+ throw_line_(-1)
             {
             }
 
- exception( exception const & e ):
- data_(e.data_)
+#ifdef __HP_aCC
+ //On HP aCC, this protected copy constructor prevents throwing boost::exception.
+ //On all other platforms, the same effect is achieved by the pure virtual destructor.
+ exception( exception const & x ) throw():
+ data_(x.data_),
+ throw_function_(x.throw_function_),
+ throw_file_(x.throw_file_),
+ throw_line_(x.throw_line_)
             {
             }
+#endif
+
+ virtual ~exception() throw()
+#ifndef __HP_aCC
+ = 0 //Workaround for HP aCC, =0 incorrectly leads to link errors.
+#endif
+ ;
+
+ private:
 
- char const *
- _diagnostic_information( char const * std_what ) const throw()
+ template <class E>
+ friend
+ E const &
+ operator<<( E const & x, throw_function const & y )
             {
- if( data_ )
- try
- {
- char const * w = data_->diagnostic_information(std_what,typeid(*this));
- BOOST_ASSERT(0!=w);
- return w;
- }
- catch(...)
- {
- }
- return std_what ? std_what : typeid(*this).name();
+ x.throw_function_=y.v_;
+ return x;
             }
 
-#if BOOST_WORKAROUND( BOOST_MSVC, BOOST_TESTED_AT(1500) )
- //Force class exception to be abstract.
- //Otherwise, MSVC bug allows throw exception(), even though the copy constructor is protected.
- virtual ~exception() throw()=0;
-#else
-#if BOOST_WORKAROUND( __GNUC__, BOOST_TESTED_AT(4) )
- virtual //Disable bogus GCC warning.
-#endif
- ~exception() throw()
+ template <class E>
+ friend
+ E const &
+ operator<<( E const & x, throw_file const & y )
             {
+ x.throw_file_=y.v_;
+ return x;
             }
-#endif
 
- private:
+ template <class E>
+ friend
+ E const &
+ operator<<( E const & x, throw_line const & y )
+ {
+ x.throw_line_=y.v_;
+ return x;
+ }
 
- shared_ptr<exception_detail::error_info_base const> get( std::type_info const & ) const;
- void set( shared_ptr<exception_detail::error_info_base const> const & ) const;
+ friend char const * exception_detail::get_diagnostic_information( exception const & );
 
         template <class E,class Tag,class T>
         friend E const & operator<<( E const &, error_info<Tag,T> const & );
 
- template <class ErrorInfo,class E>
- friend shared_ptr<typename ErrorInfo::value_type const> get_error_info( E const & );
-
- intrusive_ptr<exception_detail::error_info_container> mutable data_;
+ template <class>
+ friend struct exception_detail::get_info;
+ friend struct exception_detail::get_info<throw_function>;
+ friend struct exception_detail::get_info<throw_file>;
+ friend struct exception_detail::get_info<throw_line>;
+
+ mutable exception_detail::refcount_ptr<exception_detail::error_info_container> data_;
+ mutable char const * throw_function_;
+ mutable char const * throw_file_;
+ mutable int throw_line_;
         };
 
-#if BOOST_WORKAROUND( BOOST_MSVC, BOOST_TESTED_AT(1500) ) //See above.
     inline
     exception::
     ~exception() throw()
         {
         }
-#endif
+
+ ////////////////////////////////////////////////////////////////////////
+
+ namespace
+ exception_detail
+ {
+ template <class T>
+ struct
+ error_info_injector:
+ public T,
+ public exception
+ {
+ explicit
+ error_info_injector( T const & x ):
+ T(x)
+ {
+ }
+
+ ~error_info_injector() throw()
+ {
+ }
+ };
+
+ struct large_size { char c[256]; };
+ large_size dispatch( exception * );
+
+ struct small_size { };
+ small_size dispatch( void * );
+
+ template <class,int>
+ struct enable_error_info_helper;
+
+ template <class T>
+ struct
+ enable_error_info_helper<T,sizeof(large_size)>
+ {
+ typedef T type;
+ };
+
+ template <class T>
+ struct
+ enable_error_info_helper<T,sizeof(small_size)>
+ {
+ typedef error_info_injector<T> type;
+ };
+
+ template <class T>
+ struct
+ enable_error_info_return_type
+ {
+ typedef typename enable_error_info_helper<T,sizeof(dispatch((T*)0))>::type type;
+ };
+ }
+
+ template <class T>
+ inline
+ typename
+ exception_detail::enable_error_info_return_type<T>::type
+ enable_error_info( T const & x )
+ {
+ return typename exception_detail::enable_error_info_return_type<T>::type(x);
+ }
+
+ ////////////////////////////////////////////////////////////////////////
+
+ namespace
+ exception_detail
+ {
+ class
+ clone_base
+ {
+ public:
+
+ virtual clone_base const * clone() const = 0;
+ virtual void rethrow() const = 0;
+
+ virtual
+ ~clone_base() throw()
+ {
+ }
+ };
+
+ inline
+ void
+ copy_boost_exception( exception * a, exception const * b )
+ {
+ *a = *b;
+ }
+
+ inline
+ void
+ copy_boost_exception( void *, void const * )
+ {
+ }
+
+ template <class T>
+ class
+ clone_impl:
+ public T,
+ public clone_base
+ {
+ public:
+
+ explicit
+ clone_impl( T const & x ):
+ T(x)
+ {
+ copy_boost_exception(this,&x);
+ }
+
+ ~clone_impl() throw()
+ {
+ }
+
+ private:
+
+ clone_base const *
+ clone() const
+ {
+ return new clone_impl(*this);
+ }
+
+ void
+ rethrow() const
+ {
+ throw*this;
+ }
+ };
+ }
+
+ template <class T>
+ inline
+ exception_detail::clone_impl<T>
+ enable_current_exception( T const & x )
+ {
+ return exception_detail::clone_impl<T>(x);
+ }
     }
 
 #endif

Added: branches/release/boost/exception/get_error_info.hpp
==============================================================================
--- (empty file)
+++ branches/release/boost/exception/get_error_info.hpp 2008-09-19 16:29:26 EDT (Fri, 19 Sep 2008)
@@ -0,0 +1,145 @@
+//Copyright (c) 2006-2008 Emil Dotchevski and Reverge Studios, Inc.
+
+//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)
+
+#ifndef UUID_1A590226753311DD9E4CCF6156D89593
+#define UUID_1A590226753311DD9E4CCF6156D89593
+
+#include <boost/exception/exception.hpp>
+#include <boost/exception/detail/error_info_impl.hpp>
+#include <boost/exception/detail/type_info.hpp>
+#include <boost/shared_ptr.hpp>
+#include <string.h>
+
+namespace
+boost
+ {
+ namespace
+ exception_detail
+ {
+ struct
+ strwrap
+ {
+ char const * str;
+ strwrap( char const * s ):
+ str(init(s))
+ {
+ }
+ ~strwrap()
+ {
+ delete[] str;
+ }
+
+ private:
+
+ strwrap( strwrap const & );
+ strwrap & operator=( strwrap const & );
+
+ static
+ char const *
+ init( char const * s )
+ {
+ size_t n=1+strlen(s);
+ char * str = new char[n];
+ (void) memcpy(str,s,n);
+ return str;
+ }
+ };
+
+ template <>
+ struct
+ get_info<throw_function>
+ {
+ static
+ shared_ptr<char const * const>
+ get( exception const & x )
+ {
+ if( x.throw_function_ )
+ {
+ shared_ptr<strwrap> s(new strwrap(x.throw_function_));
+ return shared_ptr<char const *>(s,&s->str);
+ }
+ else
+ return shared_ptr<char const * const>();
+ }
+ };
+
+ template <>
+ struct
+ get_info<throw_file>
+ {
+ static
+ shared_ptr<char const * const>
+ get( exception const & x )
+ {
+ if( x.throw_file_ )
+ {
+ shared_ptr<strwrap> s(new strwrap(x.throw_file_));
+ return shared_ptr<char const *>(s,&s->str);
+ }
+ else
+ return shared_ptr<char const * const>();
+ }
+ };
+
+ template <>
+ struct
+ get_info<throw_line>
+ {
+ static
+ shared_ptr<int const>
+ get( exception const & x )
+ {
+ if( x.throw_line_!=-1 )
+ return boost::shared_ptr<int>(new int(x.throw_line_));
+ else
+ return shared_ptr<int const>();
+ }
+ };
+
+ template <class ErrorInfo>
+ struct
+ get_info
+ {
+ static
+ shared_ptr<typename ErrorInfo::value_type const>
+ get( exception const & x )
+ {
+ if( exception_detail::error_info_container * c=x.data_.get() )
+ if( shared_ptr<exception_detail::error_info_base const> eib = c->get(BOOST_EXCEPTION_STATIC_TYPEID(ErrorInfo)) )
+ {
+#ifndef BOOST_NO_RTTI
+ BOOST_ASSERT( 0!=dynamic_cast<ErrorInfo const *>(eib.get()) );
+#endif
+ ErrorInfo const * w = static_cast<ErrorInfo const *>(eib.get());
+ return shared_ptr<typename ErrorInfo::value_type const>(eib,&w->value());
+ }
+ return shared_ptr<typename ErrorInfo::value_type const>();
+ }
+ };
+ }
+
+#ifdef BOOST_NO_RTTI
+ template <class ErrorInfo>
+ inline
+ shared_ptr<typename ErrorInfo::value_type const>
+ get_error_info( boost::exception const & x )
+ {
+ return exception_detail::get_info<ErrorInfo>::get(x);
+ }
+#else
+ template <class ErrorInfo,class E>
+ inline
+ shared_ptr<typename ErrorInfo::value_type const>
+ get_error_info( E const & some_exception )
+ {
+ if( exception const * x = dynamic_cast<exception const *>(&some_exception) )
+ return exception_detail::get_info<ErrorInfo>::get(*x);
+ else
+ return shared_ptr<typename ErrorInfo::value_type const>();
+ }
+#endif
+ }
+
+#endif

Modified: branches/release/boost/exception/info.hpp
==============================================================================
--- branches/release/boost/exception/info.hpp (original)
+++ branches/release/boost/exception/info.hpp 2008-09-19 16:29:26 EDT (Fri, 19 Sep 2008)
@@ -6,108 +6,46 @@
 #ifndef UUID_8D22C4CA9CC811DCAA9133D256D89593
 #define UUID_8D22C4CA9CC811DCAA9133D256D89593
 
-#include <boost/type.hpp>
 #include <boost/exception/exception.hpp>
-#include <boost/exception/error_info.hpp>
 #include <boost/exception/to_string_stub.hpp>
-#include <boost/current_function.hpp>
+#include <boost/exception/detail/error_info_impl.hpp>
 #include <boost/shared_ptr.hpp>
 #include <map>
 
-#define BOOST_ERROR_INFO\
- ::boost::throw_function(BOOST_CURRENT_FUNCTION) <<\
- ::boost::throw_file(__FILE__) <<\
- ::boost::throw_line((int)__LINE__)
-
 namespace
 boost
     {
- typedef error_info<struct tag_throw_function,char const *> throw_function;
- typedef error_info<struct tag_throw_file,char const *> throw_file;
- typedef error_info<struct tag_throw_line,int> throw_line;
-
- namespace
- exception_detail
+ template <class Tag,class T>
+ inline
+ error_info<Tag,T>::
+ error_info( value_type const & value ):
+ value_(value)
         {
- class
- error_info_base
- {
- public:
-
- virtual std::type_info const & tag_typeid() const = 0;
- virtual std::string value_as_string() const = 0;
-
- protected:
-
-#if BOOST_WORKAROUND( __GNUC__, BOOST_TESTED_AT(4) )
-virtual //Disable bogus GCC warning.
-#endif
- ~error_info_base()
- {
- }
- };
         }
 
     template <class Tag,class T>
- class
- error_info:
- public exception_detail::error_info_base
+ inline
+ error_info<Tag,T>::
+ ~error_info() throw()
         {
- public:
-
- typedef T value_type;
-
- error_info( value_type const & value ):
- value_(value)
- {
- }
-
- value_type const &
- value() const
- {
- return value_;
- }
-
- private:
-
- std::type_info const &
- tag_typeid() const
- {
- return typeid(type<Tag>);
- }
-
- std::string
- value_as_string() const
- {
- return to_string_stub(value_);
- }
-
- value_type const value_;
- };
+ }
 
- template <class E,class Tag,class T>
+ template <class Tag,class T>
     inline
- E const &
- operator<<( E const & x, error_info<Tag,T> const & v )
+ char const *
+ error_info<Tag,T>::
+ tag_typeid_name() const
         {
- shared_ptr< error_info<Tag,T> > p( new error_info<Tag,T>(v) );
- x.set(p);
- return x;
+ return tag_type_name<Tag>();
         }
 
- template <class ErrorInfo,class E>
+ template <class Tag,class T>
     inline
- shared_ptr<typename ErrorInfo::value_type const>
- get_error_info( E const & some_exception )
+ std::string
+ error_info<Tag,T>::
+ value_as_string() const
         {
- if( exception const * x = dynamic_cast<exception const *>(&some_exception) )
- if( shared_ptr<exception_detail::error_info_base const> eib = x->get(typeid(ErrorInfo)) )
- {
- BOOST_ASSERT( 0!=dynamic_cast<ErrorInfo const *>(eib.get()) );
- ErrorInfo const * w = static_cast<ErrorInfo const *>(eib.get());
- return shared_ptr<typename ErrorInfo::value_type const>(eib,&w->value());
- }
- return shared_ptr<typename ErrorInfo::value_type const>();
+ return to_string_stub(value_);
         }
 
     namespace
@@ -128,81 +66,57 @@
                 {
                 }
 
+ void
+ set( shared_ptr<error_info_base const> const & x, type_info_ const & typeid_ )
+ {
+ BOOST_ASSERT(x);
+ info_[typeid_] = x;
+ diagnostic_info_str_.clear();
+ }
+
             shared_ptr<error_info_base const>
- get( std::type_info const & ti ) const
+ get( type_info_ const & ti ) const
                 {
- error_info_map::const_iterator i=info_.find(typeinfo(ti));
+ error_info_map::const_iterator i=info_.find(ti);
                 if( info_.end()!=i )
                     {
                     shared_ptr<error_info_base const> const & p = i->second;
- BOOST_ASSERT( typeid(*p)==ti );
+#ifndef BOOST_NO_RTTI
+ BOOST_ASSERT( BOOST_EXCEPTION_DYNAMIC_TYPEID(*p)==ti );
+#endif
                     return p;
                     }
                 return shared_ptr<error_info_base const>();
                 }
 
- void
- set( shared_ptr<error_info_base const> const & x )
- {
- BOOST_ASSERT(x);
- info_[typeinfo(typeid(*x))] = x;
- what_.clear();
- }
-
             char const *
- diagnostic_information( char const * std_what, std::type_info const & exception_type ) const
+ diagnostic_information() const
                 {
- if( what_.empty() )
+ if( diagnostic_info_str_.empty() )
                     {
                     std::string tmp;
- if( std_what )
- {
- tmp += std_what;
- tmp += '\n';
- }
- tmp += "Dynamic exception type: ";
- tmp += exception_type.name();
- tmp += '\n';
                     for( error_info_map::const_iterator i=info_.begin(),end=info_.end(); i!=end; ++i )
                         {
                         shared_ptr<error_info_base const> const & x = i->second;
                         tmp += '[';
- tmp += x->tag_typeid().name();
+ tmp += x->tag_typeid_name();
                         tmp += "] = ";
                         tmp += x->value_as_string();
                         tmp += '\n';
                         }
- what_.swap(tmp);
+ diagnostic_info_str_.swap(tmp);
                     }
- return what_.c_str();
+ return diagnostic_info_str_.c_str();
                 }
 
             private:
 
- friend class exception;
+ friend class boost::exception;
 
- struct
- typeinfo
- {
- std::type_info const * type;
-
- explicit
- typeinfo( std::type_info const & t ):
- type(&t)
- {
- }
-
- bool
- operator<( typeinfo const & b ) const
- {
- return 0!=(type->before(*b.type));
- }
- };
-
- typedef std::map< typeinfo, shared_ptr<error_info_base const> > error_info_map;
+ typedef std::map< type_info_, shared_ptr<error_info_base const> > error_info_map;
             error_info_map info_;
- std::string mutable what_;
- int mutable count_;
+ mutable std::string diagnostic_info_str_;
+ mutable int count_;
 
             void
             add_ref() const
@@ -219,25 +133,18 @@
             };
         }
 
+ template <class E,class Tag,class T>
     inline
- void
- exception::
- set( shared_ptr<exception_detail::error_info_base const> const & x ) const
- {
- if( !data_ )
- data_ = intrusive_ptr<exception_detail::error_info_container>(new exception_detail::error_info_container_impl);
- data_->set(x);
- }
-
- inline
- shared_ptr<exception_detail::error_info_base const>
- exception::
- get( std::type_info const & ti ) const
- {
- if( data_ )
- return data_->get(ti);
- else
- return shared_ptr<exception_detail::error_info_base const>();
+ E const &
+ operator<<( E const & x, error_info<Tag,T> const & v )
+ {
+ typedef error_info<Tag,T> error_info_tag_t;
+ shared_ptr<error_info_tag_t> p( new error_info_tag_t(v) );
+ exception_detail::error_info_container * c;
+ if( !(c=x.data_.get()) )
+ x.data_.adopt(c=new exception_detail::error_info_container_impl);
+ c->set(p,BOOST_EXCEPTION_STATIC_TYPEID(error_info_tag_t));
+ return x;
         }
     }
 

Modified: branches/release/boost/exception_ptr.hpp
==============================================================================
--- branches/release/boost/exception_ptr.hpp (original)
+++ branches/release/boost/exception_ptr.hpp 2008-09-19 16:29:26 EDT (Fri, 19 Sep 2008)
@@ -6,19 +6,80 @@
 #ifndef UUID_FA5836A2CADA11DC8CD47C8555D89593
 #define UUID_FA5836A2CADA11DC8CD47C8555D89593
 
-#include <boost/exception/enable_current_exception.hpp>
 #include <boost/exception/exception.hpp>
-#include <boost/exception/detail/cloning_base.hpp>
+#include <boost/exception/detail/type_info.hpp>
+#include <boost/shared_ptr.hpp>
 #include <stdexcept>
 #include <new>
 
 namespace
 boost
     {
+ class exception_ptr;
+ exception_ptr current_exception();
+ void rethrow_exception( exception_ptr const & );
+
+ class
+ exception_ptr
+ {
+ typedef bool exception_ptr::*unspecified_bool_type;
+ friend exception_ptr current_exception();
+ friend void rethrow_exception( exception_ptr const & );
+
+ shared_ptr<exception_detail::clone_base const> c_;
+ bool bad_alloc_;
+
+ struct
+ bad_alloc_tag
+ {
+ };
+
+ explicit
+ exception_ptr( bad_alloc_tag ):
+ bad_alloc_(true)
+ {
+ }
+
+ explicit
+ exception_ptr( shared_ptr<exception_detail::clone_base const> const & c ):
+ c_(c),
+ bad_alloc_(false)
+ {
+ BOOST_ASSERT(c);
+ }
+
+ public:
+
+ exception_ptr():
+ bad_alloc_(false)
+ {
+ }
+
+ operator unspecified_bool_type() const
+ {
+ return (bad_alloc_ || c_) ? &exception_ptr::bad_alloc_ : 0;
+ }
+
+ friend
+ bool
+ operator==( exception_ptr const & a, exception_ptr const & b )
+ {
+ return a.c_==b.c_ && a.bad_alloc_==b.bad_alloc_;
+ }
+
+ friend
+ bool
+ operator!=( exception_ptr const & a, exception_ptr const & b )
+ {
+ return !(a==b);
+ }
+ };
+
     class
     unknown_exception:
         public exception,
- public std::exception
+ public std::exception,
+ public exception_detail::clone_base
         {
         public:
 
@@ -35,9 +96,21 @@
         ~unknown_exception() throw()
             {
             }
- };
 
- typedef intrusive_ptr<exception_detail::clone_base const> exception_ptr;
+ private:
+
+ clone_base const *
+ clone() const
+ {
+ return new unknown_exception(*this);
+ }
+
+ void
+ rethrow() const
+ {
+ throw*this;
+ }
+ };
 
     namespace
     exception_detail
@@ -46,7 +119,8 @@
         class
         current_exception_std_exception_wrapper:
             public T,
- public boost::exception
+ public boost::exception,
+ public clone_base
             {
             public:
 
@@ -65,41 +139,150 @@
             ~current_exception_std_exception_wrapper() throw()
                 {
                 }
+
+ private:
+
+ clone_base const *
+ clone() const
+ {
+ return new current_exception_std_exception_wrapper(*this);
+ }
+
+ void
+ rethrow() const
+ {
+ throw *this;
+ }
             };
 
+#ifdef BOOST_NO_RTTI
+ template <class T>
+ exception const *
+ get_boost_exception( T const * )
+ {
+ try
+ {
+ throw;
+ }
+ catch(
+ exception & x )
+ {
+ return &x;
+ }
+ catch(...)
+ {
+ return 0;
+ }
+ }
+#else
+ template <class T>
+ exception const *
+ get_boost_exception( T const * x )
+ {
+ return dynamic_cast<exception const *>(x);
+ }
+#endif
+
         template <class T>
         inline
- exception_ptr
+ shared_ptr<clone_base const>
         current_exception_std_exception( T const & e1 )
             {
- if( boost::exception const * e2 = dynamic_cast<boost::exception const *>(&e1) )
- return exception_ptr(exception_detail::make_clone(current_exception_std_exception_wrapper<T>(e1,*e2)));
+ if( boost::exception const * e2 = get_boost_exception(&e1) )
+ return shared_ptr<clone_base const>(new current_exception_std_exception_wrapper<T>(e1,*e2));
             else
- return exception_ptr(exception_detail::make_clone(current_exception_std_exception_wrapper<T>(e1)));
+ return shared_ptr<clone_base const>(new current_exception_std_exception_wrapper<T>(e1));
             }
 
         inline
- exception_ptr
+ shared_ptr<clone_base const>
         current_exception_unknown_exception()
             {
- return exception_ptr(exception_detail::make_clone(unknown_exception()));
+ return shared_ptr<clone_base const>(new unknown_exception());
             }
 
         inline
- exception_ptr
+ shared_ptr<clone_base const>
+ current_exception_unknown_boost_exception( boost::exception const & e )
+ {
+ return shared_ptr<clone_base const>(new unknown_exception(e));
+ }
+
+ inline
+ shared_ptr<clone_base const>
         current_exception_unknown_std_exception( std::exception const & e )
             {
- if( boost::exception const * be = dynamic_cast<boost::exception const *>(&e) )
- return exception_ptr(exception_detail::make_clone(unknown_exception(*be)));
+ if( boost::exception const * be = get_boost_exception(&e) )
+ return current_exception_unknown_boost_exception(*be);
             else
                 return current_exception_unknown_exception();
             }
 
         inline
- exception_ptr
- current_exception_unknown_boost_exception( boost::exception const & e )
+ shared_ptr<clone_base const>
+ current_exception_impl()
             {
- return exception_ptr(exception_detail::make_clone(unknown_exception(e)));
+ try
+ {
+ throw;
+ }
+ catch(
+ exception_detail::clone_base & e )
+ {
+ return shared_ptr<exception_detail::clone_base const>(e.clone());
+ }
+ catch(
+ std::invalid_argument & e )
+ {
+ return exception_detail::current_exception_std_exception(e);
+ }
+ catch(
+ std::out_of_range & e )
+ {
+ return exception_detail::current_exception_std_exception(e);
+ }
+ catch(
+ std::logic_error & e )
+ {
+ return exception_detail::current_exception_std_exception(e);
+ }
+ catch(
+ std::bad_alloc & e )
+ {
+ return exception_detail::current_exception_std_exception(e);
+ }
+#ifndef BOOST_NO_TYPEID
+ catch(
+ std::bad_cast & e )
+ {
+ return exception_detail::current_exception_std_exception(e);
+ }
+ catch(
+ std::bad_typeid & e )
+ {
+ return exception_detail::current_exception_std_exception(e);
+ }
+#endif
+ catch(
+ std::bad_exception & e )
+ {
+ return exception_detail::current_exception_std_exception(e);
+ }
+ catch(
+ std::exception & e )
+ {
+ return exception_detail::current_exception_unknown_std_exception(e);
+ }
+ catch(
+ boost::exception & e )
+ {
+ return exception_detail::current_exception_unknown_boost_exception(e);
+ }
+ catch(
+ ... )
+ {
+ return exception_detail::current_exception_unknown_exception();
+ }
             }
         }
 
@@ -109,65 +292,30 @@
         {
         try
             {
- throw;
+ return exception_ptr(exception_detail::current_exception_impl());
             }
         catch(
- exception_detail::cloning_base & e )
+ std::bad_alloc & )
             {
- exception_detail::clone_base const * c = e.clone();
- BOOST_ASSERT(c!=0);
- return exception_ptr(c);
- }
- catch(
- std::invalid_argument & e )
- {
- return exception_detail::current_exception_std_exception(e);
- }
- catch(
- std::out_of_range & e )
- {
- return exception_detail::current_exception_std_exception(e);
- }
- catch(
- std::logic_error & e )
- {
- return exception_detail::current_exception_std_exception(e);
- }
- catch(
- std::bad_alloc & e )
- {
- return exception_detail::current_exception_std_exception(e);
- }
- catch(
- std::bad_cast & e )
- {
- return exception_detail::current_exception_std_exception(e);
- }
- catch(
- std::bad_typeid & e )
- {
- return exception_detail::current_exception_std_exception(e);
- }
- catch(
- std::bad_exception & e )
- {
- return exception_detail::current_exception_std_exception(e);
- }
- catch(
- std::exception & e )
- {
- return exception_detail::current_exception_unknown_std_exception(e);
- }
- catch(
- boost::exception & e )
- {
- return exception_detail::current_exception_unknown_boost_exception(e);
             }
         catch(
         ... )
             {
- return exception_detail::current_exception_unknown_exception();
+ try
+ {
+ return exception_ptr(exception_detail::current_exception_std_exception(std::bad_exception()));
+ }
+ catch(
+ std::bad_alloc & )
+ {
+ }
+ catch(
+ ... )
+ {
+ BOOST_ASSERT(0);
+ }
             }
+ return exception_ptr(exception_ptr::bad_alloc_tag());
         }
 
     template <class T>
@@ -179,7 +327,8 @@
             {
             throw enable_current_exception(e);
             }
- catch( ... )
+ catch(
+ ... )
             {
             return current_exception();
             }
@@ -189,7 +338,11 @@
     void
     rethrow_exception( exception_ptr const & p )
         {
- p->rethrow();
+ BOOST_ASSERT(p);
+ if( p.bad_alloc_ )
+ throw enable_current_exception(std::bad_alloc());
+ else
+ p.c_->rethrow();
         }
     }
 

Modified: branches/release/boost/throw_exception.hpp
==============================================================================
--- branches/release/boost/throw_exception.hpp (original)
+++ branches/release/boost/throw_exception.hpp 2008-09-19 16:29:26 EDT (Fri, 19 Sep 2008)
@@ -24,11 +24,7 @@
 #include <boost/detail/workaround.hpp>
 #include <exception>
 
-#if !defined( BOOST_EXCEPTION_DISABLE ) && defined( BOOST_NO_TYPEID )
-# define BOOST_EXCEPTION_DISABLE
-#endif
-
-#if !defined( BOOST_EXCEPTION_DISABLE ) && defined( __BORLANDC__ ) && BOOST_WORKAROUND( __BORLANDC__, < 0x590 )
+#if !defined( BOOST_EXCEPTION_DISABLE ) && defined( __BORLANDC__ ) && BOOST_WORKAROUND( __BORLANDC__, <= 0x593 )
 # define BOOST_EXCEPTION_DISABLE
 #endif
 
@@ -37,8 +33,14 @@
 #endif
 
 #if !defined( BOOST_NO_EXCEPTIONS ) && !defined( BOOST_EXCEPTION_DISABLE )
-# include <boost/exception/enable_current_exception.hpp>
-# include <boost/exception/enable_error_info.hpp>
+# include <boost/exception/exception.hpp>
+# include <boost/current_function.hpp>
+# define BOOST_THROW_EXCEPTION(x) ::boost::throw_exception(::boost::enable_error_info(x) <<\
+ ::boost::throw_function(BOOST_CURRENT_FUNCTION) <<\
+ ::boost::throw_file(__FILE__) <<\
+ ::boost::throw_line((int)__LINE__))
+#else
+# define BOOST_THROW_EXCEPTION(x) ::boost::throw_exception(x)
 #endif
 
 namespace boost

Deleted: branches/release/libs/exception/doc/BOOST_ERROR_INFO.html
==============================================================================
--- branches/release/libs/exception/doc/BOOST_ERROR_INFO.html 2008-09-19 16:29:26 EDT (Fri, 19 Sep 2008)
+++ (empty file)
@@ -1,61 +0,0 @@
-<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
-'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
-<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
-<head>
- <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
- <title>BOOST_ERROR_INFO</title>
- <link href='reno.css' type='text/css' rel='stylesheet'/>
-</head>
-<body>
-<div class="body-0">
-<div class="body-1">
-<div class="body-2">
-<div>
-<div id="boost_logo">
-Boost
-</div>
-<h1>Boost Exception</h1>
-</div>
-<!-- Copyright (c) 2006-2008 Emil Dotchevski and Reverge Studios, Inc. -->
-<!-- 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) -->
-<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>BOOST_ERROR_INFO</h3>
-</div>
-<div class="RenoIncludeDIV"><p><span class="RenoEscape">&#35;<!--<wiki>`&#35;</wiki>--></span>include &lt;<span class="RenoLink">boost/exception/info.hpp</span>&gt;</p>
-<pre>namespace
-boost
- {
-<span class="RenoIncludeSPAN"> typedef <span class="RenoLink">error_info</span>&lt;struct tag_throw_function,char const *&gt; throw_function;
- typedef <span class="RenoLink">error_info</span>&lt;struct tag_throw_file,char const *&gt; throw_file;
- typedef <span class="RenoLink">error_info</span>&lt;struct tag_throw_line,int&gt; throw_line;
-
- #define <span class="RenoLink">BOOST_ERROR_INFO</span>\
- ::boost::throw_function(BOOST_CURRENT_FUNCTION) &lt;&lt;\
- ::boost::throw_file(__FILE__) &lt;&lt;\
- ::boost::throw_line((int)__LINE__)</span>
- }</pre>
-</div><p>This macro is designed to be used with <span class="RenoLink">operator<<</span> when throwing a boost::<span class="RenoLink">exception</span>, to store information about the location of the throw statement. It can be chained with other <span class="RenoLink">error_infos</span> in a single throw expression.</p>
-</div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
-<h3>See Also:</h3>
-<div class="RenoPageList"><a href="boost-exception.html">Boost Exception<br/>
-</a><a href="exception_error_info_hpp.html">boost/exception/info.hpp<br/>
-</a></div>
-</div>
-<!-- Copyright (c) 2006-2008 Emil Dotchevski and Reverge Studios, Inc. -->
-<!-- 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) -->
-<div id="footer">
-<p>&nbsp;</p>
-<hr/>
-<p>
-<a class="logo" href="http://jigsaw.w3.org/css-validator/validator?uri=http://revergestudios.com/boost-exception/reno.css"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
-<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
-<small>Copyright (c) 2006-2008 by Emil Dotchevski and Reverge Studios, Inc.<br/>
-Distributed under the Boost Software License, Version 1.0.</small>
-</p>
-</div>
-</div>
-</div>
-</div>
-</body>
-</html>

Added: branches/release/libs/exception/doc/BOOST_THROW_EXCEPTION.html
==============================================================================
--- (empty file)
+++ branches/release/libs/exception/doc/BOOST_THROW_EXCEPTION.html 2008-09-19 16:29:26 EDT (Fri, 19 Sep 2008)
@@ -0,0 +1,57 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>BOOST_THROW_EXCEPTION</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="boost_logo">
+Boost
+</div>
+<h1>Boost Exception</h1>
+</div>
+<!-- Copyright (c) 2006-2008 Emil Dotchevski and Reverge Studios, Inc. -->
+<!-- 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>BOOST_THROW_EXCEPTION</h3>
+</div>
+<div class="RenoIncludeDIV"><p><span class="RenoEscape">&#35;<!--<wiki>`&#35;</wiki>--></span>include &lt;<span class="RenoLink">boost/throw_exception.hpp</span>&gt;</p>
+<div class="RenoIncludeDIV"><pre>#if !defined( BOOST_NO_EXCEPTIONS ) &amp;&amp; !defined( BOOST_EXCEPTION_DISABLE )
+ #include &lt;<span class="RenoLink">boost/exception/exception.hpp</span>&gt;
+ #include &lt;boost/current_function.hpp&gt;
+ #define <span class="RenoLink">BOOST_THROW_EXCEPTION</span>(x)\
+ ::boost::<span class="RenoLink">throw_exception</span>( ::boost::<span class="RenoLink">enable_error_info</span>(x) &lt;&lt;\
+ ::boost::<span class="RenoLink">throw_function</span>(BOOST_CURRENT_FUNCTION) &lt;&lt;\
+ ::boost::<span class="RenoLink">throw_file</span>(__FILE__) &lt;&lt;\
+ ::boost::<span class="RenoLink">throw_line</span>((int)__LINE__) )
+#else
+ #define <span class="RenoLink">BOOST_THROW_EXCEPTION</span>(x) ::boost::<span class="RenoLink">throw_exception</span>(x)
+#endif</pre>
+</div></div><p>This macro takes an exception object, records BOOST_CURRENT_FUNCTION, __FILE__ and __LINE__ in it, and forwards it to <span class="RenoLink">throw_exception</span>. To recover this information at the catch site, use <span class="RenoLink">get_error_info</span>; the information is also included in the message returned by <span class="RenoLink">diagnostic_information</span>.</p>
+</div><div class="RenoPageList"><a href="boost-exception.html">Boost Exception<br/>
+</a><a href="throw_exception_hpp.html">boost/throw_exception.hpp<br/>
+</a></div>
+<!-- Copyright (c) 2006-2008 Emil Dotchevski and Reverge Studios, Inc. -->
+<!-- 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) -->
+<div id="footer">
+<p>&nbsp;</p>
+<hr/>
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/validator?uri=http://revergestudios.com/boost-exception/reno.css"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2006-2008 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>

Modified: branches/release/libs/exception/doc/boost-exception.html
==============================================================================
--- branches/release/libs/exception/doc/boost-exception.html (original)
+++ branches/release/libs/exception/doc/boost-exception.html 2008-09-19 16:29:26 EDT (Fri, 19 Sep 2008)
@@ -33,11 +33,10 @@
 </li>
 <li>Documentation<div><ol><li>Class <span class="RenoLink">exception</span></li>
 <li>Transporting of Arbitrary Data to the Catch Site<div><ol><li><span class="RenoLink">error_info</span></li>
-<li><span class="RenoLink">operator<</exception</span></li>
-<li><span class="RenoLink">operator<</tuple</span></li>
+<li><span class="RenoLink">exception/operator<<</span></li>
+<li><span class="RenoLink">tuple/operator<<</span></li>
 <li><span class="RenoLink">get_error_info</span></li>
 <li><span class="RenoLink">enable_error_info</span></li>
-<li><span class="RenoLink">BOOST_ERROR_INFO</span></li>
 </ol></div>
 </li>
 <li><span class="RenoLink">N2179</span> Transporting of Exceptions between Threads<div><ol><li><span class="RenoLink">exception_ptr</span></li>
@@ -49,13 +48,15 @@
 </ol></div>
 </li>
 <li><span class="RenoLink">diagnostic_information</span></li>
-<li><span class="RenoLink">throw_exception</span></li>
+<li><span class="RenoLink">throw_exception</span>, <span class="RenoLink">BOOST_THROW_EXCEPTION</span></li>
+<li><span class="RenoLink">Configuration Macros</span></li>
 <li>Headers<div><ol><li><span class="RenoLink">boost/exception.hpp</span></li>
-<li><span class="RenoLink">boost/exception/diagnostic_information.hpp</span></li>
-<li><span class="RenoLink">boost/exception/enable_current_exception.hpp</span></li>
+<li><span class="RenoLink">boost/exception/diagnostic_information.hpp</span></li>
+<li><span class="RenoLink">boost/exception/enable_current_exception.hpp</span></li>
 <li><span class="RenoLink">boost/exception/enable_error_info.hpp</span></li>
 <li><span class="RenoLink">boost/exception/error_info.hpp</span></li>
 <li><span class="RenoLink">boost/exception/exception.hpp</span></li>
+<li><span class="RenoLink">boost/exception/get_error_info.hpp</span></li>
 <li><span class="RenoLink">boost/exception/info.hpp</span></li>
 <li><span class="RenoLink">boost/exception/info_tuple.hpp</span></li>
 <li><span class="RenoLink">boost/exception_ptr.hpp</span></li>
@@ -74,16 +75,19 @@
 <span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">class
     <span class="RenoLink">exception</span>
         {
- public:
-
- <span class="RenoIncludeSPAN"> virtual char const * <span class="RenoLink">diagnostic_information</span>() const throw();</span>
-
         protected:
     
     <span class="RenoIncludeSPAN"> <span class="RenoLink">exception</span>();
         <span class="RenoLink">exception</span>( <span class="RenoLink">exception</span> const &amp; x );</span>
     <span class="RenoIncludeSPAN"> <span class="RenoLink">~exception</span>();</span>
- };</span></span>
+ };</span>
+
+ <span class="RenoIncludeSPAN">template &lt;class Tag,class T&gt;
+ class <span class="RenoLink">error_info</span>;</span>
+
+ typedef <span class="RenoLink">error_info</span>&lt;struct tag_throw_function,char const *&gt; throw_function;
+ typedef <span class="RenoLink">error_info</span>&lt;struct tag_throw_file,char const *&gt; throw_file;
+ typedef <span class="RenoLink">error_info</span>&lt;struct tag_throw_line,int&gt; throw_line;</span>
 
 <span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">template &lt;class Tag,class T&gt;
     class
@@ -96,23 +100,11 @@
         error_info( value_type const &amp; );
         };</span>
     
- <span class="RenoIncludeSPAN">template &lt;class ErrorInfo,class E&gt;
- <span class="RenoLink">shared_ptr</span>&lt;typename ErrorInfo::value_type const&gt; <span class="RenoLink">get_error_info</span>( E const &amp; x );</span>
-
- <span class="RenoIncludeSPAN">typedef <span class="RenoLink">error_info</span>&lt;struct tag_throw_function,char const *&gt; throw_function;
- typedef <span class="RenoLink">error_info</span>&lt;struct tag_throw_file,char const *&gt; throw_file;
- typedef <span class="RenoLink">error_info</span>&lt;struct tag_throw_line,int&gt; throw_line;
-
- #define <span class="RenoLink">BOOST_ERROR_INFO</span>\
- ::boost::throw_function(BOOST_CURRENT_FUNCTION) &lt;&lt;\
- ::boost::throw_file(__FILE__) &lt;&lt;\
- ::boost::throw_line((int)__LINE__)</span>
-
     <span class="RenoIncludeSPAN">template &lt;class E, class Tag, class T&gt;
- E const &amp; <span class="RenoLink">operator<<</span>( E const &amp; x, <span class="RenoLink">error_info</span>&lt;Tag,T&gt; const &amp; v );</span></span>
+ E const &amp; <span class="RenoLink">operator<<</span>( E const &amp; x, <span class="RenoLink">error_info</span>&lt;Tag,T&gt; const &amp; v );</span></span>
 
 <span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">template &lt;class E, class Tag1, class T1, ..., class TagN, class TN&gt;
- E const &amp; <span class="RenoLink">operator<<</span>( E const &amp; x,
+ E const &amp; <span class="RenoLink">operator<<</span>( E const &amp; x,
         <span class="RenoLink">tuple</span>&lt;
             <span class="RenoLink">error_info</span>&lt;Tag1,T1&gt;,
             ...,
@@ -121,7 +113,7 @@
 <span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">template &lt;class T&gt;
     ---unspecified--- <span class="RenoLink">enable_error_info</span>( T const &amp; x );</span></span>
 
-<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">std::string <span class="RenoLink">diagnostic_information</span>( std::exception const &amp; x );</span></span>
+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">std::string <span class="RenoLink">diagnostic_information</span>( boost::<span class="RenoLink">exception</span> const &amp; x );</span></span>
 
 <span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">class
     <span class="RenoLink">unknown_exception</span>:
@@ -142,18 +134,30 @@
 
 <span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">template &lt;class T&gt;
     ---unspecified--- <span class="RenoLink">enable_current_exception</span>( T const &amp; e );</span></span>
+ }</pre>
+<p><span class="RenoEscape">&#35;<!--<wiki>`&#35;</wiki>--></span>include &lt;<span class="RenoLink">boost/throw_exception.hpp</span>&gt;</p>
+<pre><span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">#if !defined( BOOST_NO_EXCEPTIONS ) &amp;&amp; !defined( BOOST_EXCEPTION_DISABLE )
+ #include &lt;<span class="RenoLink">boost/exception/exception.hpp</span>&gt;
+ #include &lt;boost/current_function.hpp&gt;
+ #define <span class="RenoLink">BOOST_THROW_EXCEPTION</span>(x)\
+ ::boost::<span class="RenoLink">throw_exception</span>( ::boost::<span class="RenoLink">enable_error_info</span>(x) &lt;&lt;\
+ ::boost::<span class="RenoLink">throw_function</span>(BOOST_CURRENT_FUNCTION) &lt;&lt;\
+ ::boost::<span class="RenoLink">throw_file</span>(__FILE__) &lt;&lt;\
+ ::boost::<span class="RenoLink">throw_line</span>((int)__LINE__) )
+#else
+ #define <span class="RenoLink">BOOST_THROW_EXCEPTION</span>(x) ::boost::<span class="RenoLink">throw_exception</span>(x)
+#endif</span>
 
-<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">#ifdef BOOST_NO_EXCEPTIONS
-
+namespace
+boost
+ {
+<span class="RenoIncludeSPAN">#ifdef BOOST_NO_EXCEPTIONS
     void <span class="RenoLink">throw_exception</span>( std::exception const &amp; e ); // user defined
-
- #else
-
+#else
     template &lt;class E&gt;
     void <span class="RenoLink">throw_exception</span>( E const &amp; e );
-
- #endif</span></span>
- }</pre>
+#endif</span>
+ }</span></pre>
 <h2>Class exception</h2>
 <div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>exception</h3>
 </div>
@@ -164,10 +168,6 @@
 <span class="RenoIncludeSPAN"> class
     <span class="RenoLink">exception</span>
         {
- public:
-
- <span class="RenoIncludeSPAN"> virtual char const * <span class="RenoLink">diagnostic_information</span>() const throw();</span>
-
         protected:
     
     <span class="RenoIncludeSPAN"> <span class="RenoLink">exception</span>();
@@ -176,37 +176,9 @@
         };</span>
     }</pre>
 </div><p>Class boost::<span class="RenoLink">exception</span> is designed to be used as a universal base for user-defined exception types.</p>
-<p>An object of any type deriving from boost::<span class="RenoLink">exception</span> can store data of arbitrary types, using the <span class="RenoLink">error_info</span> wrapper and <span class="RenoLink">operator<<</span>.</p>
+<p>An object of any type deriving from boost::<span class="RenoLink">exception</span> can store data of arbitrary types, using the <span class="RenoLink">error_info</span> wrapper and <span class="RenoLink">operator<<</span>.</p>
 <p>To retrieve data from a boost::<span class="RenoLink">exception</span> object, use the <span class="RenoLink">get_error_info</span> function template.</p>
-<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>exception::exception</h3>
-</div>
-<div class="RenoIncludeDIV"><pre><span class="RenoLink">exception</span>();
-<span class="RenoLink">exception</span>( <span class="RenoLink">exception</span> const &amp; x );</pre>
-</div><h4>Effects:</h4>
-<div><ul><li> Default constructor: initializes an empty boost::<span class="RenoLink">exception</span> object.</li>
-<li> Copy constructor: initializes a boost::<span class="RenoLink">exception</span> object which shares with x all data added through <span class="RenoLink">operator<<</span>, including data that is added at a future time.</li>
-</ul></div>
-<h4>Throws:</h4>
-<p>Nothing.</p>
-</div><div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>exception::~exception</h3>
-</div>
-<div class="RenoIncludeDIV"><pre><span class="RenoLink">~exception</span>();</pre>
-</div><h4>Effects:</h4>
-<p>Frees all resources associated with a boost::<span class="RenoLink">exception</span> object.</p>
-<h4>Throws:</h4>
-<p>Nothing.</p>
-</div><div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>exception::diagnostic_information</h3>
-</div>
-<div class="RenoIncludeDIV"><pre>virtual char const * <span class="RenoLink">diagnostic_information</span>() const throw();</pre>
-</div><h4>Returns:</h4>
-<p>A string representation of all data stored in the boost::<span class="RenoLink">exception</span> object by the <span class="RenoLink">operator<<</span> function. See "<span class="RenoLink">Diagnostic Information</span>" for details.</p>
-<h4>Throws:</h4>
-<p>Nothing.</p>
-<h4>Notes:</h4>
-<div><ul><li>The return value remains valid until the exception object from which it was obtained is destroyed or modified.</li>
-<li>The header <span class="RenoLink">boost/exception/diagnostic_information.hpp</span> provides a namespace-scope function <span class="RenoLink">diagnostic_information</span> which takes a std::exception. It calls <span class="RenoLink">exception::diagnostic_information</span> if its argument can be converted to boost::<span class="RenoLink">exception</span>; otherwise it returns a string that combines the value of std::exception::what and the exception's dynamic type.</li>
-</ul></div>
-</div></div><h2>Transporting of Arbitrary Data to the Catch Site</h2>
+</div><h2>Transporting of Arbitrary Data to the Catch Site</h2>
 <div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>error_info</h3>
 </div>
 <div class="RenoIncludeDIV"><p><span class="RenoEscape">&#35;<!--<wiki>`&#35;</wiki>--></span>include &lt;<span class="RenoLink">boost/exception/info.hpp</span>&gt;</p>
@@ -227,21 +199,21 @@
 </div><h4>Requirements:</h4>
 <p>T must have accessible copy constructor and must not be a reference (there is no requirement that T's copy constructor does not throw.)</p>
 <h4>Description:</h4>
-<p>This class template is used to associate a Tag type with a value type T. Objects of type <span class="RenoLink">error_info</span>&lt;Tag,T&gt; can be passed to <span class="RenoLink">operator<<</span> to be stored in objects of type boost::<span class="RenoLink">exception</span>.</p>
+<p>This class template is used to associate a Tag type with a value type T. Objects of type <span class="RenoLink">error_info</span>&lt;Tag,T&gt; can be passed to <span class="RenoLink">operator<<</span> to be stored in objects of type boost::<span class="RenoLink">exception</span>.</p>
 <h4>Note:</h4>
 <p>The header &lt;<span class="RenoLink">boost/exception/error_info.hpp</span>&gt; provides a declaration of the <span class="RenoLink">error_info</span> template, which is sufficient for the purpose of typedefing an instance for specific Tag and T, like this:</p>
 <pre>#include &lt;<span class="RenoLink">boost/exception/error_info.hpp</span>&gt;
 
 typedef boost::<span class="RenoLink">error_info</span>&lt;struct tag_errno,int&gt; errno_info;</pre>
-<p>Of course, to actually add an <span class="RenoLink">error_info</span> object to <span class="RenoLink">exceptions</span> using <span class="RenoLink">operator<<</span>, or to retrieve it using <span class="RenoLink">get_error_info</span>, you must first #include &lt;<span class="RenoLink">boost/exception/info.hpp</span>&gt;.</p>
-</div><div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>operator&lt;&lt;/exception</h3>
+<p>Of course, to actually add an <span class="RenoLink">error_info</span> object to <span class="RenoLink">exceptions</span> using <span class="RenoLink">operator<<</span>, or to retrieve it using <span class="RenoLink">get_error_info</span>, you must first #include &lt;<span class="RenoLink">boost/exception/info.hpp</span>&gt;.</p>
+</div><div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>exception/operator&lt;&lt;</h3>
 </div>
 <div class="RenoIncludeDIV"><p><span class="RenoEscape">&#35;<!--<wiki>`&#35;</wiki>--></span>include &lt;<span class="RenoLink">boost/exception/info.hpp</span>&gt;<span class="RenoBR">&nbsp;</span><br/></p>
 <pre>namespace
 boost
     {
 <span class="RenoIncludeSPAN"> template &lt;class E, class Tag, class T&gt;
- E const &amp; <span class="RenoLink">operator<<</span>( E const &amp; x, <span class="RenoLink">error_info</span>&lt;Tag,T&gt; const &amp; v );</span>
+ E const &amp; <span class="RenoLink">operator<<</span>( E const &amp; x, <span class="RenoLink">error_info</span>&lt;Tag,T&gt; const &amp; v );</span>
     }</pre>
 </div><h4>Requirements:</h4>
 <p>E must be boost::<span class="RenoLink">exception</span>, or a type that derives (indirectly) from boost::<span class="RenoLink">exception</span>.</p>
@@ -251,14 +223,14 @@
 <p>x.</p>
 <div class="RenoIncludeDIV"><h4>Throws:</h4>
 <p>std::bad_alloc, or any exception emitted by the T copy constructor.</p>
-</div></div><div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>operator&lt;&lt;/tuple</h3>
+</div></div><div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>tuple/operator&lt;&lt;</h3>
 </div>
 <div class="RenoIncludeDIV"><p><span class="RenoEscape">&#35;<!--<wiki>`&#35;</wiki>--></span>include &lt;<span class="RenoLink">boost/exception/info_tuple.hpp</span>&gt;</p>
 <pre>namespace
 boost
     {
 <span class="RenoIncludeSPAN"> template &lt;class E, class Tag1, class T1, ..., class TagN, class TN&gt;
- E const &amp; <span class="RenoLink">operator<<</span>( E const &amp; x,
+ E const &amp; <span class="RenoLink">operator<<</span>( E const &amp; x,
         <span class="RenoLink">tuple</span>&lt;
             <span class="RenoLink">error_info</span>&lt;Tag1,T1&gt;,
             ...,
@@ -274,7 +246,7 @@
 <p>std::bad_alloc, or any exception emitted by T1..TN copy constructor.</p>
 </div></div><div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>get_error_info</h3>
 </div>
-<div class="RenoIncludeDIV"><p><span class="RenoEscape">&#35;<!--<wiki>`&#35;</wiki>--></span>include &lt;<span class="RenoLink">boost/exception/info.hpp</span>&gt;</p>
+<div class="RenoIncludeDIV"><p><span class="RenoEscape">&#35;<!--<wiki>`&#35;</wiki>--></span>include &lt;<span class="RenoLink">boost/exception/get_error_info.hpp</span>&gt;</p>
 <pre>namespace
 boost
     {
@@ -284,13 +256,16 @@
 </div><h4>Requirements:</h4>
 <div><ul><li> ErrorInfo must be an instance of the <span class="RenoLink">error_info</span> template.</li>
 <li> E must be polymorphic.</li>
+<li> The <span class="RenoLink">get_error_info</span> function must not be called outside of a catch block.</li>
 </ul></div>
 <h4>Returns:</h4>
 <div><ul><li> If dynamic_cast&lt;boost::<span class="RenoLink">exception</span> const *&gt;(&amp;x) is 0, or if x does not store an object of type ErrorInfo, the returned value is an empty shared_ptr.</li>
-<li> Otherwise, the returned shared_ptr points to the stored value (use <span class="RenoLink">operator<<</span> to store values in exception objects.) The shared_ptr is valid even after x has been destroyed.</li>
+<li> Otherwise, the returned shared_ptr points to the stored value (use <span class="RenoLink">operator<<</span> to store values in exception objects.) The shared_ptr is valid even after x has been destroyed.</li>
 </ul></div>
 <h4>Throws:</h4>
 <p>Nothing.</p>
+<h4>Note:</h4>
+<p>The interface of <span class="RenoLink">get_error_info</span> may be affected by the build <span class="RenoLink">configuration macros</span>.</p>
 </div><div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>enable_error_info</h3>
 </div>
 <div class="RenoIncludeDIV"><p><span class="RenoEscape">&#35;<!--<wiki>`&#35;</wiki>--></span>include &lt;<span class="RenoLink">boost/exception/enable_error_info.hpp</span>&gt;</p>
@@ -301,29 +276,13 @@
     ---unspecified--- <span class="RenoLink">enable_error_info</span>( T const &amp; x );</span>
     }</pre>
 </div><h4>Requirements:</h4>
-<p>T must be a user-defined type with accessible no-throw copy constructor as per (15.5.1).</p>
+<p>T must be a class with an accessible no-throw copy constructor as per (15.5.1).</p>
 <h4>Returns:</h4>
 <div><ul><li> If T derives from boost::<span class="RenoLink">exception</span>, the returned object is of type T and is a copy of x.</li>
 <li> Otherwise, the returned object is of an unspecified type that derives publicly from both T and boost::<span class="RenoLink">exception</span>. The T sub-object is initialized from x by the T copy constructor.</li>
 </ul></div>
 <h4>Throws:</h4>
 <p>Nothing.</p>
-</div><div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>BOOST_ERROR_INFO</h3>
-</div>
-<div class="RenoIncludeDIV"><p><span class="RenoEscape">&#35;<!--<wiki>`&#35;</wiki>--></span>include &lt;<span class="RenoLink">boost/exception/info.hpp</span>&gt;</p>
-<pre>namespace
-boost
- {
-<span class="RenoIncludeSPAN"> typedef <span class="RenoLink">error_info</span>&lt;struct tag_throw_function,char const *&gt; throw_function;
- typedef <span class="RenoLink">error_info</span>&lt;struct tag_throw_file,char const *&gt; throw_file;
- typedef <span class="RenoLink">error_info</span>&lt;struct tag_throw_line,int&gt; throw_line;
-
- #define <span class="RenoLink">BOOST_ERROR_INFO</span>\
- ::boost::throw_function(BOOST_CURRENT_FUNCTION) &lt;&lt;\
- ::boost::throw_file(__FILE__) &lt;&lt;\
- ::boost::throw_line((int)__LINE__)</span>
- }</pre>
-</div><p>This macro is designed to be used with <span class="RenoLink">operator<<</span> when throwing a boost::<span class="RenoLink">exception</span>, to store information about the location of the throw statement. It can be chained with other <span class="RenoLink">error_infos</span> in a single throw expression.</p>
 </div><h2>Transporting of Exceptions between Threads</h2>
 <div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>exception_ptr</h3>
 </div>
@@ -336,9 +295,14 @@
 </div><p>The <span class="RenoLink">exception_ptr</span> type can be used to refer to a copy of an exception object. It is Default Constructible, Copy Constructible, Assignable and Equality Comparable; <span class="RenoLink">exception_ptr</span>'s operations do not throw.</p>
 <p>Two instances of <span class="RenoLink">exception_ptr</span> are equivalent and compare equal if and only if they refer to the same exception.</p>
 <p>The default constructor of <span class="RenoLink">exception_ptr</span> produces the null value of the type. The null value is equivalent only to itself.</p>
+<h4>Thread safety</h4>
+<div><ul><li> It is legal for multiple threads to hold <span class="RenoLink">exception_ptr</span> references to the same exception object.</li>
+<li> It is illegal for multiple threads to modify the same <span class="RenoLink">exception_ptr</span> object concurrently.</li>
+<li> While calling <span class="RenoLink">current_exception</span> makes a copy of the current exception object, it is still possible for the two copies to share internal state. Therefore, in general it is not safe to call <span class="RenoLink">rethrow_exception</span> concurrently to throw the same exception object into multiple threads.</li>
+</ul></div>
 </div><div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>enable_current_exception</h3>
 </div>
-<div class="RenoIncludeDIV"><p><span class="RenoEscape">&#35;<!--<wiki>`&#35;</wiki>--></span>include &lt;<span class="RenoLink">boost/exception/enable_current_exception.hpp</span>&gt;</p>
+<div class="RenoIncludeDIV"><p><span class="RenoEscape">&#35;<!--<wiki>`&#35;</wiki>--></span>include &lt;<span class="RenoLink">boost/exception/enable_current_exception.hpp</span>&gt;</p>
 <pre>namespace
 boost
     {
@@ -346,7 +310,7 @@
     ---unspecified--- <span class="RenoLink">enable_current_exception</span>( T const &amp; e );</span>
     }</pre>
 </div><h4>Requirements:</h4>
-<p>T must be of user-defined type with an accessible no-throw copy constructor.</p>
+<p>T must be a class with an accessible no-throw copy constructor.</p>
 <h4>Returns:</h4>
 <p>An object of <i>unspecified</i> type which derives publicly from T. That is, the returned object can be intercepted by a catch(T &amp;).</p>
 <h4>Description:</h4>
@@ -392,7 +356,15 @@
     <span class="RenoLink">exception_ptr</span> <span class="RenoLink">copy_exception</span>( T const &amp; e );</span>
     }</pre>
 </div><h4>Effects:</h4>
-<p>As if try { throw e; } catch( ... ) { return <span class="RenoLink">current_exception</span>(); }</p>
+<p>As if</p>
+<pre>try
+ {
+ throw <span class="RenoLink">enable_current_exception</span>(e);
+ }
+catch(...)
+ {
+ return <span class="RenoLink">current_exception</span>();
+ }</pre>
 </div><div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>rethrow_exception</h3>
 </div>
 <div class="RenoIncludeDIV"><p><span class="RenoEscape">&#35;<!--<wiki>`&#35;</wiki>--></span>include &lt;<span class="RenoLink">boost/exception_ptr.hpp</span>&gt;</p>
@@ -423,14 +395,23 @@
 </div><h2>Printing Diagnostic Information</h2>
 <div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>diagnostic_information</h3>
 </div>
-<div class="RenoIncludeDIV"><p><span class="RenoEscape">&#35;<!--<wiki>`&#35;</wiki>--></span>include &lt;<span class="RenoLink">boost/exception/diagnostic_information.hpp</span>&gt;</p>
+<div class="RenoIncludeDIV"><p><span class="RenoEscape">&#35;<!--<wiki>`&#35;</wiki>--></span>include &lt;<span class="RenoLink">boost/exception/diagnostic_information.hpp</span>&gt;<span class="RenoBR">&nbsp;</span><br/></p>
 <pre>namespace
 boost
     {
-<span class="RenoIncludeSPAN"> std::string <span class="RenoLink">diagnostic_information</span>( std::exception const &amp; x );</span>
+<span class="RenoIncludeSPAN"> std::string <span class="RenoLink">diagnostic_information</span>( boost::<span class="RenoLink">exception</span> const &amp; x );</span>
     }</pre>
 </div><h4>Returns:</h4>
-<p>If dynamic_cast&lt;boost::<span class="RenoLink">exception</span> const *&gt;(&amp;x) is not null, the returned string is initialized by a call to <span class="RenoLink">exception::diagnostic_information</span>; otherwise, the returned string combines the output of x.what() and typeid(x).name().</p>
+<p>This function iterates over all data objects stored in the boost::<span class="RenoLink">exception</span> through <span class="RenoLink">operator<<</span>. The returned string is constructed by converting each data object to string and then concatenating these strings together.</p>
+<p>When the <span class="RenoLink">error_info</span>&lt;Tag,T&gt; template is instantiated, the system attempts overload resolution for an unqualified call to to_string(x), where x is of type T. If this is successful, the to_string overload is expected to return std::string and is used to convert objects of type T to string.</p>
+<p>Otherwise, the system attempts overload resolution for s &lt;&lt; x, where s is a std::ostringstream and x is of type T. If this is successful, the operator&lt;&lt; overload is used to convert objects of type T to string.</p>
+<p>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.</p>
+<h4>Notes:</h4>
+<div><ul><li>The format of the returned string is unspecified.</li>
+<li>The returned string is <i>not</i> user-friendly.</li>
+<li>If dynamic_cast&lt;std::exception const *&gt;(&amp;x) is not null, the returned string includes the output from std::exception::what.</li>
+<li>The returned string may include additional platform-specific diagnostic information.</li>
+</ul></div>
 </div><h2>Throwing Exceptions</h2>
 <div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>throw_exception</h3>
 </div>
@@ -438,16 +419,12 @@
 <pre>namespace
 boost
     {
-<span class="RenoIncludeSPAN"> #ifdef BOOST_NO_EXCEPTIONS
-
+<span class="RenoIncludeSPAN">#ifdef BOOST_NO_EXCEPTIONS
     void <span class="RenoLink">throw_exception</span>( std::exception const &amp; e ); // user defined
-
- #else
-
+#else
     template &lt;class E&gt;
     void <span class="RenoLink">throw_exception</span>( E const &amp; e );
-
- #endif</span>
+#endif</span>
     }</pre>
 </div><h4>Requirements:</h4>
 <p>E must derive publicly from std::exception.</p>
@@ -455,7 +432,9 @@
 <div><ul><li> If BOOST_NO_EXCEPTIONS is not defined, boost::<span class="RenoLink">throw_exception</span>(e) is equivalent to throw boost::<span class="RenoLink">enable_current_exception</span>(boost::<span class="RenoLink">enable_error_info</span>(e)), unless BOOST_EXCEPTION_DISABLE is defined, in which case boost::<span class="RenoLink">throw_exception</span>(e) is equivalent to throw e;</li>
 <li> If BOOST_NO_EXCEPTIONS is defined, the function is left undefined, and the user is expected to supply an appropriate definition. Callers of <span class="RenoLink">throw_exception</span> are allowed to assume that the function never returns; therefore, if the user-defined <span class="RenoLink">throw_exception</span> returns, the behavior is undefined.</li>
 </ul></div>
-</div><!-- Copyright (c) 2006-2008 Emil Dotchevski and Reverge Studios, Inc. -->
+</div><h2>Acknowledgements</h2>
+<p>Peter Dimov has been continuously influencing the design and evolution of Boost Exception. Also thanks to Tobias Schwinger, Tom Brinkman, Pavel Vozenilek and everyone who participated in the review process.</p>
+<!-- Copyright (c) 2006-2008 Emil Dotchevski and Reverge Studios, Inc. -->
 <!-- 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) -->
 <div id="footer">

Deleted: branches/release/libs/exception/doc/boost_exception_diagnostic_information_hpp.html
==============================================================================
--- branches/release/libs/exception/doc/boost_exception_diagnostic_information_hpp.html 2008-09-19 16:29:26 EDT (Fri, 19 Sep 2008)
+++ (empty file)
@@ -1,57 +0,0 @@
-<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
-'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
-<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
-<head>
- <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
- <title>boost/exception/diagnostic_information.hpp</title>
- <link href='reno.css' type='text/css' rel='stylesheet'/>
-</head>
-<body>
-<div class="body-0">
-<div class="body-1">
-<div class="body-2">
-<div>
-<div id="boost_logo">
-Boost
-</div>
-<h1>Boost Exception</h1>
-</div>
-<!-- Copyright (c) 2006-2008 Emil Dotchevski and Reverge Studios, Inc. -->
-<!-- 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) -->
-<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h2>boost/exception/diagnostic_information.hpp</h2>
-</div>
-<h3>Synopsis</h3>
-<div class="RenoIncludeDIV"><pre>#include &lt;exception&gt;
-
-namespace
-boost
- {
-<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">std::string <span class="RenoLink">diagnostic_information</span>( std::exception const &amp; x );</span></span>
- }</pre>
-</div></div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
-<h3>See Also:</h3>
-<div class="RenoPageList"><a href="boost-exception.html">Boost Exception<br/>
-</a><a href="exception_hpp.html">boost/exception.hpp<br/>
-</a><a href="diagnostic_information.html">diagnostic_information<br/>
-</a><a href="exception_diagnostic_information.html">exception::diagnostic_information<br/>
-</a></div>
-</div>
-<!-- Copyright (c) 2006-2008 Emil Dotchevski and Reverge Studios, Inc. -->
-<!-- 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) -->
-<div id="footer">
-<p>&nbsp;</p>
-<hr/>
-<p>
-<a class="logo" href="http://jigsaw.w3.org/css-validator/validator?uri=http://revergestudios.com/boost-exception/reno.css"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
-<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
-<small>Copyright (c) 2006-2008 by Emil Dotchevski and Reverge Studios, Inc.<br/>
-Distributed under the Boost Software License, Version 1.0.</small>
-</p>
-</div>
-</div>
-</div>
-</div>
-</body>
-</html>

Added: branches/release/libs/exception/doc/configuration_macros.html
==============================================================================
--- (empty file)
+++ branches/release/libs/exception/doc/configuration_macros.html 2008-09-19 16:29:26 EDT (Fri, 19 Sep 2008)
@@ -0,0 +1,54 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>configuration macros</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="boost_logo">
+Boost
+</div>
+<h1>Boost Exception</h1>
+</div>
+<!-- Copyright (c) 2006-2008 Emil Dotchevski and Reverge Studios, Inc. -->
+<!-- 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>Configuration Macros</h3>
+</div>
+<p>Boost Exception responds to the following configuration macros:</p>
+<p><b>BOOST_NO_RTTI</b><span class="RenoBR">&nbsp;</span><br/><b>BOOST_NO_TYPEID</b></p>
+<p>The first macro prevents Boost Exception from using dynamic_cast and dynamic typeid. If the second macro is also defined, Boost Exception does not use static typeid either. There are no observable degrading effects on the library functionality, except for the following:</p>
+<blockquote><p>By default, the <span class="RenoLink">get_error_info</span> function template can be called with any exception type. If BOOST_NO_RTTI is defined, <span class="RenoLink">get_error_info</span> can be used only with objects of type boost::<span class="RenoLink">exception</span>.</p></blockquote>
+<p><b>BOOST_EXCEPTION_DISABLE</b></p>
+<p>By default, <span class="RenoLink">enable_current_exception</span> and <span class="RenoLink">enable_error_info</span> are integrated directly in the <span class="RenoLink">throw_exception</span> function. Defining BOOST_EXCEPTION_DISABLE disables this integration.</p>
+<p>Note that on some non-conformant compilers, for example MSVC 7.0 and older, as well as BCC, BOOST_EXCEPTION_DISABLE is implicitly defined in <span class="RenoLink">boost/throw_exception.hpp</span>.</p>
+</div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+<h3>See Also:</h3>
+<div class="RenoPageList"><a href="boost-exception.html">Boost Exception<br/>
+</a><a href="get_error_info.html">get_error_info<br/>
+</a></div>
+</div>
+<!-- Copyright (c) 2006-2008 Emil Dotchevski and Reverge Studios, Inc. -->
+<!-- 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) -->
+<div id="footer">
+<p>&nbsp;</p>
+<hr/>
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/validator?uri=http://revergestudios.com/boost-exception/reno.css"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2006-2008 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>

Modified: branches/release/libs/exception/doc/copy_exception.html
==============================================================================
--- branches/release/libs/exception/doc/copy_exception.html (original)
+++ branches/release/libs/exception/doc/copy_exception.html 2008-09-19 16:29:26 EDT (Fri, 19 Sep 2008)
@@ -29,7 +29,15 @@
     <span class="RenoLink">exception_ptr</span> <span class="RenoLink">copy_exception</span>( T const &amp; e );</span>
     }</pre>
 </div><h4>Effects:</h4>
-<p>As if try { throw e; } catch( ... ) { return <span class="RenoLink">current_exception</span>(); }</p>
+<p>As if</p>
+<pre>try
+ {
+ throw <span class="RenoLink">enable_current_exception</span>(e);
+ }
+catch(...)
+ {
+ return <span class="RenoLink">current_exception</span>();
+ }</pre>
 </div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
 <h3>See Also:</h3>
 <div class="RenoPageList"><a href="boost-exception.html">Boost Exception<br/>

Modified: branches/release/libs/exception/doc/current_exception.html
==============================================================================
--- branches/release/libs/exception/doc/current_exception.html (original)
+++ branches/release/libs/exception/doc/current_exception.html 2008-09-19 16:29:26 EDT (Fri, 19 Sep 2008)
@@ -45,6 +45,7 @@
 </a><a href="exception_cloning_hpp.html">boost/exception_ptr.hpp<br/>
 </a><a href="copy_exception.html">copy_exception<br/>
 </a><a href="enable_current_exception.html">enable_current_exception<br/>
+</a><a href="exception_ptr.html">exception_ptr<br/>
 </a><a href="unknown_exception.html">unknown_exception<br/>
 </a></div>
 </div>

Modified: branches/release/libs/exception/doc/diagnostic_information.html
==============================================================================
--- branches/release/libs/exception/doc/diagnostic_information.html (original)
+++ branches/release/libs/exception/doc/diagnostic_information.html 2008-09-19 16:29:26 EDT (Fri, 19 Sep 2008)
@@ -21,19 +21,29 @@
 <!-- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -->
 <div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>diagnostic_information</h3>
 </div>
-<div class="RenoIncludeDIV"><p><span class="RenoEscape">&#35;<!--<wiki>`&#35;</wiki>--></span>include &lt;<span class="RenoLink">boost/exception/diagnostic_information.hpp</span>&gt;</p>
+<div class="RenoIncludeDIV"><p><span class="RenoEscape">&#35;<!--<wiki>`&#35;</wiki>--></span>include &lt;<span class="RenoLink">boost/exception/diagnostic_information.hpp</span>&gt;<span class="RenoBR">&nbsp;</span><br/></p>
 <pre>namespace
 boost
     {
-<span class="RenoIncludeSPAN"> std::string <span class="RenoLink">diagnostic_information</span>( std::exception const &amp; x );</span>
+<span class="RenoIncludeSPAN"> std::string <span class="RenoLink">diagnostic_information</span>( boost::<span class="RenoLink">exception</span> const &amp; x );</span>
     }</pre>
 </div><h4>Returns:</h4>
-<p>If dynamic_cast&lt;boost::<span class="RenoLink">exception</span> const *&gt;(&amp;x) is not null, the returned string is initialized by a call to <span class="RenoLink">exception::diagnostic_information</span>; otherwise, the returned string combines the output of x.what() and typeid(x).name().</p>
+<p>This function iterates over all data objects stored in the boost::<span class="RenoLink">exception</span> through <span class="RenoLink">operator<<</span>. The returned string is constructed by converting each data object to string and then concatenating these strings together.</p>
+<p>When the <span class="RenoLink">error_info</span>&lt;Tag,T&gt; template is instantiated, the system attempts overload resolution for an unqualified call to to_string(x), where x is of type T. If this is successful, the to_string overload is expected to return std::string and is used to convert objects of type T to string.</p>
+<p>Otherwise, the system attempts overload resolution for s &lt;&lt; x, where s is a std::ostringstream and x is of type T. If this is successful, the operator&lt;&lt; overload is used to convert objects of type T to string.</p>
+<p>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.</p>
+<h4>Notes:</h4>
+<div><ul><li>The format of the returned string is unspecified.</li>
+<li>The returned string is <i>not</i> user-friendly.</li>
+<li>If dynamic_cast&lt;std::exception const *&gt;(&amp;x) is not null, the returned string includes the output from std::exception::what.</li>
+<li>The returned string may include additional platform-specific diagnostic information.</li>
+</ul></div>
 </div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
 <h3>See Also:</h3>
-<div class="RenoPageList"><a href="boost-exception.html">Boost Exception<br/>
-</a><a href="boost_exception_diagnostic_information_hpp.html">boost/exception/diagnostic_information.hpp<br/>
-</a><a href="exception_diagnostic_information.html">exception::diagnostic_information<br/>
+<div class="RenoPageList"><a href="BOOST_THROW_EXCEPTION.html">BOOST_THROW_EXCEPTION<br/>
+</a><a href="boost-exception.html">Boost Exception<br/>
+</a><a href="exception_diagnostic_information_hpp.html">boost/exception/diagnostic_information.hpp<br/>
+</a><a href="tutorial_diagnostic_information.html">Diagnostic Information<br/>
 </a></div>
 </div>
 <!-- Copyright (c) 2006-2008 Emil Dotchevski and Reverge Studios, Inc. -->

Modified: branches/release/libs/exception/doc/enable_current_exception.html
==============================================================================
--- branches/release/libs/exception/doc/enable_current_exception.html (original)
+++ branches/release/libs/exception/doc/enable_current_exception.html 2008-09-19 16:29:26 EDT (Fri, 19 Sep 2008)
@@ -21,7 +21,7 @@
 <!-- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -->
 <div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>enable_current_exception</h3>
 </div>
-<div class="RenoIncludeDIV"><p><span class="RenoEscape">&#35;<!--<wiki>`&#35;</wiki>--></span>include &lt;<span class="RenoLink">boost/exception/enable_current_exception.hpp</span>&gt;</p>
+<div class="RenoIncludeDIV"><p><span class="RenoEscape">&#35;<!--<wiki>`&#35;</wiki>--></span>include &lt;<span class="RenoLink">boost/exception/enable_current_exception.hpp</span>&gt;</p>
 <pre>namespace
 boost
     {
@@ -29,7 +29,7 @@
     ---unspecified--- <span class="RenoLink">enable_current_exception</span>( T const &amp; e );</span>
     }</pre>
 </div><h4>Requirements:</h4>
-<p>T must be of user-defined type with an accessible no-throw copy constructor.</p>
+<p>T must be a class with an accessible no-throw copy constructor.</p>
 <h4>Returns:</h4>
 <p>An object of <i>unspecified</i> type which derives publicly from T. That is, the returned object can be intercepted by a catch(T &amp;).</p>
 <h4>Description:</h4>
@@ -48,7 +48,9 @@
 </div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
 <h3>See Also:</h3>
 <div class="RenoPageList"><a href="boost-exception.html">Boost Exception<br/>
-</a><a href="exception_enable_exception_cloning_hpp.html">boost/exception/enable_current_exception.hpp<br/>
+</a><a href="exception_enable_current_exception_hpp.html">boost/exception/enable_current_exception.hpp<br/>
+</a><a href="configuration_macros.html">Configuration Macros<br/>
+</a><a href="copy_exception.html">copy_exception<br/>
 </a><a href="current_exception.html">current_exception<br/>
 </a><a href="tutorial_exception_ptr.html">Transporting of Exceptions Between Threads<br/>
 </a><a href="throw_exception.html">throw_exception<br/>

Modified: branches/release/libs/exception/doc/enable_error_info.html
==============================================================================
--- branches/release/libs/exception/doc/enable_error_info.html (original)
+++ branches/release/libs/exception/doc/enable_error_info.html 2008-09-19 16:29:26 EDT (Fri, 19 Sep 2008)
@@ -29,7 +29,7 @@
     ---unspecified--- <span class="RenoLink">enable_error_info</span>( T const &amp; x );</span>
     }</pre>
 </div><h4>Requirements:</h4>
-<p>T must be a user-defined type with accessible no-throw copy constructor as per (15.5.1).</p>
+<p>T must be a class with an accessible no-throw copy constructor as per (15.5.1).</p>
 <h4>Returns:</h4>
 <div><ul><li> If T derives from boost::<span class="RenoLink">exception</span>, the returned object is of type T and is a copy of x.</li>
 <li> Otherwise, the returned object is of an unspecified type that derives publicly from both T and boost::<span class="RenoLink">exception</span>. The T sub-object is initialized from x by the T copy constructor.</li>
@@ -38,8 +38,10 @@
 <p>Nothing.</p>
 </div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
 <h3>See Also:</h3>
-<div class="RenoPageList"><a href="boost-exception.html">Boost Exception<br/>
+<div class="RenoPageList"><a href="BOOST_THROW_EXCEPTION.html">BOOST_THROW_EXCEPTION<br/>
+</a><a href="boost-exception.html">Boost Exception<br/>
 </a><a href="exception_enable_error_info_hpp.html">boost/exception/enable_error_info.hpp<br/>
+</a><a href="configuration_macros.html">Configuration Macros<br/>
 </a><a href="tutorial_enable_error_info.html">Integrating Boost Exception in Existing Exception Class Hierarchies<br/>
 </a><a href="throw_exception.html">throw_exception<br/>
 </a></div>

Modified: branches/release/libs/exception/doc/error_info.html
==============================================================================
--- branches/release/libs/exception/doc/error_info.html (original)
+++ branches/release/libs/exception/doc/error_info.html 2008-09-19 16:29:26 EDT (Fri, 19 Sep 2008)
@@ -39,25 +39,25 @@
 </div><h4>Requirements:</h4>
 <p>T must have accessible copy constructor and must not be a reference (there is no requirement that T's copy constructor does not throw.)</p>
 <h4>Description:</h4>
-<p>This class template is used to associate a Tag type with a value type T. Objects of type <span class="RenoLink">error_info</span>&lt;Tag,T&gt; can be passed to <span class="RenoLink">operator<<</span> to be stored in objects of type boost::<span class="RenoLink">exception</span>.</p>
+<p>This class template is used to associate a Tag type with a value type T. Objects of type <span class="RenoLink">error_info</span>&lt;Tag,T&gt; can be passed to <span class="RenoLink">operator<<</span> to be stored in objects of type boost::<span class="RenoLink">exception</span>.</p>
 <h4>Note:</h4>
 <p>The header &lt;<span class="RenoLink">boost/exception/error_info.hpp</span>&gt; provides a declaration of the <span class="RenoLink">error_info</span> template, which is sufficient for the purpose of typedefing an instance for specific Tag and T, like this:</p>
 <pre>#include &lt;<span class="RenoLink">boost/exception/error_info.hpp</span>&gt;
 
 typedef boost::<span class="RenoLink">error_info</span>&lt;struct tag_errno,int&gt; errno_info;</pre>
-<p>Of course, to actually add an <span class="RenoLink">error_info</span> object to <span class="RenoLink">exceptions</span> using <span class="RenoLink">operator<<</span>, or to retrieve it using <span class="RenoLink">get_error_info</span>, you must first #include &lt;<span class="RenoLink">boost/exception/info.hpp</span>&gt;.</p>
+<p>Of course, to actually add an <span class="RenoLink">error_info</span> object to <span class="RenoLink">exceptions</span> using <span class="RenoLink">operator<<</span>, or to retrieve it using <span class="RenoLink">get_error_info</span>, you must first #include &lt;<span class="RenoLink">boost/exception/info.hpp</span>&gt;.</p>
 </div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
 <h3>See Also:</h3>
-<div class="RenoPageList"><a href="BOOST_ERROR_INFO.html">BOOST_ERROR_INFO<br/>
-</a><a href="boost-exception.html">Boost Exception<br/>
+<div class="RenoPageList"><a href="boost-exception.html">Boost Exception<br/>
 </a><a href="exception_error_info_value_hpp.html">boost/exception/error_info.hpp<br/>
+</a><a href="exception_exception_hpp.html">boost/exception/exception.hpp<br/>
 </a><a href="exception_error_info_hpp.html">boost/exception/info.hpp<br/>
-</a><a href="tutorial_diagnostic_information.html">Diagnostic Information<br/>
+</a><a href="diagnostic_information.html">diagnostic_information<br/>
 </a><a href="exception.html">exception<br/>
+</a><a href="exception_operator_shl.html">exception/operator&lt;&lt;<br/>
 </a><a href="get_error_info.html">get_error_info<br/>
 </a><a href="tutorial_enable_error_info.html">Integrating Boost Exception in Existing Exception Class Hierarchies<br/>
-</a><a href="operator_shl_exception.html">operator&lt;&lt;/exception<br/>
-</a><a href="operator_shl_tuple.html">operator&lt;&lt;/tuple<br/>
+</a><a href="tuple_operator_shl.html">tuple/operator&lt;&lt;<br/>
 </a></div>
 </div>
 <!-- Copyright (c) 2006-2008 Emil Dotchevski and Reverge Studios, Inc. -->

Modified: branches/release/libs/exception/doc/exception.html
==============================================================================
--- branches/release/libs/exception/doc/exception.html (original)
+++ branches/release/libs/exception/doc/exception.html 2008-09-19 16:29:26 EDT (Fri, 19 Sep 2008)
@@ -28,10 +28,6 @@
 <span class="RenoIncludeSPAN"> class
     <span class="RenoLink">exception</span>
         {
- public:
-
- <span class="RenoIncludeSPAN"> virtual char const * <span class="RenoLink">diagnostic_information</span>() const throw();</span>
-
         protected:
     
     <span class="RenoIncludeSPAN"> <span class="RenoLink">exception</span>();
@@ -40,56 +36,28 @@
         };</span>
     }</pre>
 </div><p>Class boost::<span class="RenoLink">exception</span> is designed to be used as a universal base for user-defined exception types.</p>
-<p>An object of any type deriving from boost::<span class="RenoLink">exception</span> can store data of arbitrary types, using the <span class="RenoLink">error_info</span> wrapper and <span class="RenoLink">operator<<</span>.</p>
+<p>An object of any type deriving from boost::<span class="RenoLink">exception</span> can store data of arbitrary types, using the <span class="RenoLink">error_info</span> wrapper and <span class="RenoLink">operator<<</span>.</p>
 <p>To retrieve data from a boost::<span class="RenoLink">exception</span> object, use the <span class="RenoLink">get_error_info</span> function template.</p>
-<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>exception::exception</h3>
-</div>
-<div class="RenoIncludeDIV"><pre><span class="RenoLink">exception</span>();
-<span class="RenoLink">exception</span>( <span class="RenoLink">exception</span> const &amp; x );</pre>
-</div><h4>Effects:</h4>
-<div><ul><li> Default constructor: initializes an empty boost::<span class="RenoLink">exception</span> object.</li>
-<li> Copy constructor: initializes a boost::<span class="RenoLink">exception</span> object which shares with x all data added through <span class="RenoLink">operator<<</span>, including data that is added at a future time.</li>
-</ul></div>
-<h4>Throws:</h4>
-<p>Nothing.</p>
-</div><div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>exception::~exception</h3>
-</div>
-<div class="RenoIncludeDIV"><pre><span class="RenoLink">~exception</span>();</pre>
-</div><h4>Effects:</h4>
-<p>Frees all resources associated with a boost::<span class="RenoLink">exception</span> object.</p>
-<h4>Throws:</h4>
-<p>Nothing.</p>
-</div><div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>exception::diagnostic_information</h3>
-</div>
-<div class="RenoIncludeDIV"><pre>virtual char const * <span class="RenoLink">diagnostic_information</span>() const throw();</pre>
-</div><h4>Returns:</h4>
-<p>A string representation of all data stored in the boost::<span class="RenoLink">exception</span> object by the <span class="RenoLink">operator<<</span> function. See "<span class="RenoLink">Diagnostic Information</span>" for details.</p>
-<h4>Throws:</h4>
-<p>Nothing.</p>
-<h4>Notes:</h4>
-<div><ul><li>The return value remains valid until the exception object from which it was obtained is destroyed or modified.</li>
-<li>The header <span class="RenoLink">boost/exception/diagnostic_information.hpp</span> provides a namespace-scope function <span class="RenoLink">diagnostic_information</span> which takes a std::exception. It calls <span class="RenoLink">exception::diagnostic_information</span> if its argument can be converted to boost::<span class="RenoLink">exception</span>; otherwise it returns a string that combines the value of std::exception::what and the exception's dynamic type.</li>
-</ul></div>
-</div></div><div class="RenoHR"><hr/></div>
+</div><div class="RenoHR"><hr/></div>
 <h3>See Also:</h3>
-<div class="RenoPageList"><a href="BOOST_ERROR_INFO.html">BOOST_ERROR_INFO<br/>
-</a><a href="boost-exception.html">Boost Exception<br/>
+<div class="RenoPageList"><a href="boost-exception.html">Boost Exception<br/>
+</a><a href="exception_diagnostic_information_hpp.html">boost/exception/diagnostic_information.hpp<br/>
 </a><a href="exception_exception_hpp.html">boost/exception/exception.hpp<br/>
+</a><a href="configuration_macros.html">Configuration Macros<br/>
 </a><a href="current_exception.html">current_exception<br/>
 </a><a href="tutorial_diagnostic_information.html">Diagnostic Information<br/>
 </a><a href="diagnostic_information.html">diagnostic_information<br/>
 </a><a href="enable_current_exception.html">enable_current_exception<br/>
 </a><a href="enable_error_info.html">enable_error_info<br/>
 </a><a href="error_info.html">error_info<br/>
-</a><a href="exception_diagnostic_information.html">exception::diagnostic_information<br/>
+</a><a href="exception_operator_shl.html">exception/operator&lt;&lt;<br/>
 </a><a href="exception_constructors.html">exception::exception<br/>
 </a><a href="exception_destructor.html">exception::~exception<br/>
 </a><a href="get_error_info.html">get_error_info<br/>
 </a><a href="tutorial_enable_error_info.html">Integrating Boost Exception in Existing Exception Class Hierarchies<br/>
-</a><a href="operator_shl_exception.html">operator&lt;&lt;/exception<br/>
-</a><a href="operator_shl_tuple.html">operator&lt;&lt;/tuple<br/>
 </a><a href="tutorial_transporting_data.html">Transporting of Arbitrary Data to the Catch Site<br/>
 </a><a href="tutorial_exception_ptr.html">Transporting of Exceptions Between Threads<br/>
+</a><a href="tuple_operator_shl.html">tuple/operator&lt;&lt;<br/>
 </a><a href="unknown_exception.html">unknown_exception<br/>
 </a></div>
 <!-- Copyright (c) 2006-2008 Emil Dotchevski and Reverge Studios, Inc. -->

Modified: branches/release/libs/exception/doc/exception_constructors.html
==============================================================================
--- branches/release/libs/exception/doc/exception_constructors.html (original)
+++ branches/release/libs/exception/doc/exception_constructors.html 2008-09-19 16:29:26 EDT (Fri, 19 Sep 2008)
@@ -25,7 +25,7 @@
 <span class="RenoLink">exception</span>( <span class="RenoLink">exception</span> const &amp; x );</pre>
 </div><h4>Effects:</h4>
 <div><ul><li> Default constructor: initializes an empty boost::<span class="RenoLink">exception</span> object.</li>
-<li> Copy constructor: initializes a boost::<span class="RenoLink">exception</span> object which shares with x all data added through <span class="RenoLink">operator<<</span>, including data that is added at a future time.</li>
+<li> Copy constructor: initializes a boost::<span class="RenoLink">exception</span> object which shares ownership with x of all data added through <span class="RenoLink">operator<<</span>, including data that is added at a future time.</li>
 </ul></div>
 <h4>Throws:</h4>
 <p>Nothing.</p>

Deleted: branches/release/libs/exception/doc/exception_diagnostic_information.html
==============================================================================
--- branches/release/libs/exception/doc/exception_diagnostic_information.html 2008-09-19 16:29:26 EDT (Fri, 19 Sep 2008)
+++ (empty file)
@@ -1,57 +0,0 @@
-<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
-'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
-<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
-<head>
- <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
- <title>exception::diagnostic_information</title>
- <link href='reno.css' type='text/css' rel='stylesheet'/>
-</head>
-<body>
-<div class="body-0">
-<div class="body-1">
-<div class="body-2">
-<div>
-<div id="boost_logo">
-Boost
-</div>
-<h1>Boost Exception</h1>
-</div>
-<!-- Copyright (c) 2006-2008 Emil Dotchevski and Reverge Studios, Inc. -->
-<!-- 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) -->
-<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>exception::diagnostic_information</h3>
-</div>
-<div class="RenoIncludeDIV"><pre>virtual char const * <span class="RenoLink">diagnostic_information</span>() const throw();</pre>
-</div><h4>Returns:</h4>
-<p>A string representation of all data stored in the boost::<span class="RenoLink">exception</span> object by the <span class="RenoLink">operator<<</span> function. See "<span class="RenoLink">Diagnostic Information</span>" for details.</p>
-<h4>Throws:</h4>
-<p>Nothing.</p>
-<h4>Notes:</h4>
-<div><ul><li>The return value remains valid until the exception object from which it was obtained is destroyed or modified.</li>
-<li>The header <span class="RenoLink">boost/exception/diagnostic_information.hpp</span> provides a namespace-scope function <span class="RenoLink">diagnostic_information</span> which takes a std::exception. It calls <span class="RenoLink">exception::diagnostic_information</span> if its argument can be converted to boost::<span class="RenoLink">exception</span>; otherwise it returns a string that combines the value of std::exception::what and the exception's dynamic type.</li>
-</ul></div>
-</div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
-<h3>See Also:</h3>
-<div class="RenoPageList"><a href="tutorial_diagnostic_information.html">Diagnostic Information<br/>
-</a><a href="diagnostic_information.html">diagnostic_information<br/>
-</a><a href="exception.html">exception<br/>
-</a></div>
-</div>
-<!-- Copyright (c) 2006-2008 Emil Dotchevski and Reverge Studios, Inc. -->
-<!-- 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) -->
-<div id="footer">
-<p>&nbsp;</p>
-<hr/>
-<p>
-<a class="logo" href="http://jigsaw.w3.org/css-validator/validator?uri=http://revergestudios.com/boost-exception/reno.css"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
-<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
-<small>Copyright (c) 2006-2008 by Emil Dotchevski and Reverge Studios, Inc.<br/>
-Distributed under the Boost Software License, Version 1.0.</small>
-</p>
-</div>
-</div>
-</div>
-</div>
-</body>
-</html>

Added: branches/release/libs/exception/doc/exception_diagnostic_information_hpp.html
==============================================================================
--- (empty file)
+++ branches/release/libs/exception/doc/exception_diagnostic_information_hpp.html 2008-09-19 16:29:26 EDT (Fri, 19 Sep 2008)
@@ -0,0 +1,57 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>boost/exception/diagnostic_information.hpp</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="boost_logo">
+Boost
+</div>
+<h1>Boost Exception</h1>
+</div>
+<!-- Copyright (c) 2006-2008 Emil Dotchevski and Reverge Studios, Inc. -->
+<!-- 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h2>boost/exception/diagnostic_information.hpp</h2>
+</div>
+<h3>Synopsis</h3>
+<div class="RenoIncludeDIV"><pre>#include &lt;string&gt;
+
+namespace
+boost
+ {
+<span class="RenoIncludeSPAN"> class <span class="RenoLink">exception</span>;</span>
+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">std::string <span class="RenoLink">diagnostic_information</span>( boost::<span class="RenoLink">exception</span> const &amp; x );</span></span>
+ }</pre>
+</div></div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+<h3>See Also:</h3>
+<div class="RenoPageList"><a href="boost-exception.html">Boost Exception<br/>
+</a><a href="exception_hpp.html">boost/exception.hpp<br/>
+</a><a href="diagnostic_information.html">diagnostic_information<br/>
+</a></div>
+</div>
+<!-- Copyright (c) 2006-2008 Emil Dotchevski and Reverge Studios, Inc. -->
+<!-- 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) -->
+<div id="footer">
+<p>&nbsp;</p>
+<hr/>
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/validator?uri=http://revergestudios.com/boost-exception/reno.css"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2006-2008 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>

Added: branches/release/libs/exception/doc/exception_enable_current_exception_hpp.html
==============================================================================
--- (empty file)
+++ branches/release/libs/exception/doc/exception_enable_current_exception_hpp.html 2008-09-19 16:29:26 EDT (Fri, 19 Sep 2008)
@@ -0,0 +1,56 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>boost/exception/enable_current_exception.hpp</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="boost_logo">
+Boost
+</div>
+<h1>Boost Exception</h1>
+</div>
+<!-- Copyright (c) 2006-2008 Emil Dotchevski and Reverge Studios, Inc. -->
+<!-- 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>boost/exception/enable_current_exception.hpp</h3>
+</div>
+<h3>Synopsis</h3>
+<div class="RenoIncludeDIV"><pre>#include &lt;<span class="RenoLink">boost/exception/exception.hpp</span>&gt;
+
+namespace
+boost
+ {
+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">template &lt;class T&gt;
+ ---unspecified--- <span class="RenoLink">enable_current_exception</span>( T const &amp; e );</span></span>
+ }</pre>
+</div></div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+<h3>See Also:</h3>
+<div class="RenoPageList"><a href="boost-exception.html">Boost Exception<br/>
+</a><a href="enable_current_exception.html">enable_current_exception<br/>
+</a></div>
+</div>
+<!-- Copyright (c) 2006-2008 Emil Dotchevski and Reverge Studios, Inc. -->
+<!-- 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) -->
+<div id="footer">
+<p>&nbsp;</p>
+<hr/>
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/validator?uri=http://revergestudios.com/boost-exception/reno.css"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2006-2008 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>

Modified: branches/release/libs/exception/doc/exception_enable_error_info_hpp.html
==============================================================================
--- branches/release/libs/exception/doc/exception_enable_error_info_hpp.html (original)
+++ branches/release/libs/exception/doc/exception_enable_error_info_hpp.html 2008-09-19 16:29:26 EDT (Fri, 19 Sep 2008)
@@ -19,7 +19,7 @@
 <!-- Copyright (c) 2006-2008 Emil Dotchevski and Reverge Studios, Inc. -->
 <!-- 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) -->
-<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h2>boost/exception/enable_error_info.hpp</h2>
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>boost/exception/enable_error_info.hpp</h3>
 </div>
 <h3>Synopsis</h3>
 <div class="RenoIncludeDIV"><pre>#include &lt;<span class="RenoLink">boost/exception/exception.hpp</span>&gt;
@@ -33,7 +33,6 @@
 </div></div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
 <h3>See Also:</h3>
 <div class="RenoPageList"><a href="boost-exception.html">Boost Exception<br/>
-</a><a href="throw_exception_hpp.html">boost/throw_exception.hpp<br/>
 </a><a href="enable_error_info.html">enable_error_info<br/>
 </a></div>
 </div>

Deleted: branches/release/libs/exception/doc/exception_enable_exception_cloning_hpp.html
==============================================================================
--- branches/release/libs/exception/doc/exception_enable_exception_cloning_hpp.html 2008-09-19 16:29:26 EDT (Fri, 19 Sep 2008)
+++ (empty file)
@@ -1,57 +0,0 @@
-<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
-'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
-<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
-<head>
- <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
- <title>boost/exception/enable_current_exception.hpp</title>
- <link href='reno.css' type='text/css' rel='stylesheet'/>
-</head>
-<body>
-<div class="body-0">
-<div class="body-1">
-<div class="body-2">
-<div>
-<div id="boost_logo">
-Boost
-</div>
-<h1>Boost Exception</h1>
-</div>
-<!-- Copyright (c) 2006-2008 Emil Dotchevski and Reverge Studios, Inc. -->
-<!-- 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) -->
-<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h2>boost/exception/enable_current_exception.hpp</h2>
-</div>
-<h3>Synopsis</h3>
-<div class="RenoIncludeDIV"><pre>#include &lt;<span class="RenoLink">boost/exception/exception.hpp</span>&gt;
-
-namespace
-boost
- {
-<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">template &lt;class T&gt;
- ---unspecified--- <span class="RenoLink">enable_current_exception</span>( T const &amp; e );</span></span>
- }</pre>
-</div></div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
-<h3>See Also:</h3>
-<div class="RenoPageList"><a href="boost-exception.html">Boost Exception<br/>
-</a><a href="throw_exception_hpp.html">boost/throw_exception.hpp<br/>
-</a><a href="enable_current_exception.html">enable_current_exception<br/>
-</a></div>
-</div>
-<!-- Copyright (c) 2006-2008 Emil Dotchevski and Reverge Studios, Inc. -->
-<!-- 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) -->
-<div id="footer">
-<p>&nbsp;</p>
-<hr/>
-<p>
-<a class="logo" href="http://jigsaw.w3.org/css-validator/validator?uri=http://revergestudios.com/boost-exception/reno.css"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
-<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
-<small>Copyright (c) 2006-2008 by Emil Dotchevski and Reverge Studios, Inc.<br/>
-Distributed under the Boost Software License, Version 1.0.</small>
-</p>
-</div>
-</div>
-</div>
-</div>
-</body>
-</html>

Modified: branches/release/libs/exception/doc/exception_error_info_group_hpp.html
==============================================================================
--- branches/release/libs/exception/doc/exception_error_info_group_hpp.html (original)
+++ branches/release/libs/exception/doc/exception_error_info_group_hpp.html 2008-09-19 16:29:26 EDT (Fri, 19 Sep 2008)
@@ -28,7 +28,7 @@
 boost
     {
 <span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">template &lt;class E, class Tag1, class T1, ..., class TagN, class TN&gt;
- E const &amp; <span class="RenoLink">operator<<</span>( E const &amp; x,
+ E const &amp; <span class="RenoLink">operator<<</span>( E const &amp; x,
         <span class="RenoLink">tuple</span>&lt;
             <span class="RenoLink">error_info</span>&lt;Tag1,T1&gt;,
             ...,
@@ -38,7 +38,7 @@
 <h3>See Also:</h3>
 <div class="RenoPageList"><a href="boost-exception.html">Boost Exception<br/>
 </a><a href="exception_hpp.html">boost/exception.hpp<br/>
-</a><a href="operator_shl_tuple.html">operator&lt;&lt;/tuple<br/>
+</a><a href="tuple_operator_shl.html">tuple/operator&lt;&lt;<br/>
 </a></div>
 </div>
 <!-- Copyright (c) 2006-2008 Emil Dotchevski and Reverge Studios, Inc. -->

Modified: branches/release/libs/exception/doc/exception_error_info_hpp.html
==============================================================================
--- branches/release/libs/exception/doc/exception_error_info_hpp.html (original)
+++ branches/release/libs/exception/doc/exception_error_info_hpp.html 2008-09-19 16:29:26 EDT (Fri, 19 Sep 2008)
@@ -40,29 +40,15 @@
         error_info( value_type const &amp; );
         };</span>
     
- <span class="RenoIncludeSPAN">template &lt;class ErrorInfo,class E&gt;
- <span class="RenoLink">shared_ptr</span>&lt;typename ErrorInfo::value_type const&gt; <span class="RenoLink">get_error_info</span>( E const &amp; x );</span>
-
- <span class="RenoIncludeSPAN">typedef <span class="RenoLink">error_info</span>&lt;struct tag_throw_function,char const *&gt; throw_function;
- typedef <span class="RenoLink">error_info</span>&lt;struct tag_throw_file,char const *&gt; throw_file;
- typedef <span class="RenoLink">error_info</span>&lt;struct tag_throw_line,int&gt; throw_line;
-
- #define <span class="RenoLink">BOOST_ERROR_INFO</span>\
- ::boost::throw_function(BOOST_CURRENT_FUNCTION) &lt;&lt;\
- ::boost::throw_file(__FILE__) &lt;&lt;\
- ::boost::throw_line((int)__LINE__)</span>
-
     <span class="RenoIncludeSPAN">template &lt;class E, class Tag, class T&gt;
- E const &amp; <span class="RenoLink">operator<<</span>( E const &amp; x, <span class="RenoLink">error_info</span>&lt;Tag,T&gt; const &amp; v );</span></span>
+ E const &amp; <span class="RenoLink">operator<<</span>( E const &amp; x, <span class="RenoLink">error_info</span>&lt;Tag,T&gt; const &amp; v );</span></span>
     }</pre>
 </div></div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
 <h3>See Also:</h3>
-<div class="RenoPageList"><a href="BOOST_ERROR_INFO.html">BOOST_ERROR_INFO<br/>
-</a><a href="boost-exception.html">Boost Exception<br/>
+<div class="RenoPageList"><a href="boost-exception.html">Boost Exception<br/>
 </a><a href="exception_hpp.html">boost/exception.hpp<br/>
 </a><a href="error_info.html">error_info<br/>
-</a><a href="get_error_info.html">get_error_info<br/>
-</a><a href="operator_shl_exception.html">operator&lt;&lt;/exception<br/>
+</a><a href="exception_operator_shl.html">exception/operator&lt;&lt;<br/>
 </a></div>
 </div>
 <!-- Copyright (c) 2006-2008 Emil Dotchevski and Reverge Studios, Inc. -->

Modified: branches/release/libs/exception/doc/exception_error_info_value_hpp.html
==============================================================================
--- branches/release/libs/exception/doc/exception_error_info_value_hpp.html (original)
+++ branches/release/libs/exception/doc/exception_error_info_value_hpp.html 2008-09-19 16:29:26 EDT (Fri, 19 Sep 2008)
@@ -31,6 +31,7 @@
 </div></div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
 <h3>See Also:</h3>
 <div class="RenoPageList"><a href="boost-exception.html">Boost Exception<br/>
+</a><a href="exception_hpp.html">boost/exception.hpp<br/>
 </a><a href="error_info.html">error_info<br/>
 </a></div>
 </div>

Modified: branches/release/libs/exception/doc/exception_exception_hpp.html
==============================================================================
--- branches/release/libs/exception/doc/exception_exception_hpp.html (original)
+++ branches/release/libs/exception/doc/exception_exception_hpp.html 2008-09-19 16:29:26 EDT (Fri, 19 Sep 2008)
@@ -28,21 +28,26 @@
 <span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">class
     <span class="RenoLink">exception</span>
         {
- public:
-
- <span class="RenoIncludeSPAN"> virtual char const * <span class="RenoLink">diagnostic_information</span>() const throw();</span>
-
         protected:
     
     <span class="RenoIncludeSPAN"> <span class="RenoLink">exception</span>();
         <span class="RenoLink">exception</span>( <span class="RenoLink">exception</span> const &amp; x );</span>
     <span class="RenoIncludeSPAN"> <span class="RenoLink">~exception</span>();</span>
- };</span></span>
+ };</span>
+
+ <span class="RenoIncludeSPAN">template &lt;class Tag,class T&gt;
+ class <span class="RenoLink">error_info</span>;</span>
+
+ typedef <span class="RenoLink">error_info</span>&lt;struct tag_throw_function,char const *&gt; throw_function;
+ typedef <span class="RenoLink">error_info</span>&lt;struct tag_throw_file,char const *&gt; throw_file;
+ typedef <span class="RenoLink">error_info</span>&lt;struct tag_throw_line,int&gt; throw_line;</span>
     }</pre>
 </div></div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
 <h3>See Also:</h3>
-<div class="RenoPageList"><a href="boost-exception.html">Boost Exception<br/>
-</a><a href="exception_enable_exception_cloning_hpp.html">boost/exception/enable_current_exception.hpp<br/>
+<div class="RenoPageList"><a href="BOOST_THROW_EXCEPTION.html">BOOST_THROW_EXCEPTION<br/>
+</a><a href="boost-exception.html">Boost Exception<br/>
+</a><a href="exception_hpp.html">boost/exception.hpp<br/>
+</a><a href="exception_enable_current_exception_hpp.html">boost/exception/enable_current_exception.hpp<br/>
 </a><a href="exception_enable_error_info_hpp.html">boost/exception/enable_error_info.hpp<br/>
 </a><a href="exception_error_info_hpp.html">boost/exception/info.hpp<br/>
 </a><a href="exception_cloning_hpp.html">boost/exception_ptr.hpp<br/>

Added: branches/release/libs/exception/doc/exception_get_error_info_hpp.html
==============================================================================
--- (empty file)
+++ branches/release/libs/exception/doc/exception_get_error_info_hpp.html 2008-09-19 16:29:26 EDT (Fri, 19 Sep 2008)
@@ -0,0 +1,57 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>boost/exception/get_error_info.hpp</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="boost_logo">
+Boost
+</div>
+<h1>Boost Exception</h1>
+</div>
+<!-- Copyright (c) 2006-2008 Emil Dotchevski and Reverge Studios, Inc. -->
+<!-- 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h2>boost/exception/get_error_info.hpp</h2>
+</div>
+<h3>Synopsis</h3>
+<div class="RenoIncludeDIV"><pre>#include &lt;boost/shared_ptr.hpp&gt;
+
+namespace
+boost
+ {
+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">template &lt;class ErrorInfo,class E&gt;
+ <span class="RenoLink">shared_ptr</span>&lt;typename ErrorInfo::value_type const&gt; <span class="RenoLink">get_error_info</span>( E const &amp; x );</span></span>
+ }</pre>
+</div></div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+<h3>See Also:</h3>
+<div class="RenoPageList"><a href="boost-exception.html">Boost Exception<br/>
+</a><a href="exception_hpp.html">boost/exception.hpp<br/>
+</a><a href="get_error_info.html">get_error_info<br/>
+</a></div>
+</div>
+<!-- Copyright (c) 2006-2008 Emil Dotchevski and Reverge Studios, Inc. -->
+<!-- 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) -->
+<div id="footer">
+<p>&nbsp;</p>
+<hr/>
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/validator?uri=http://revergestudios.com/boost-exception/reno.css"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2006-2008 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>

Modified: branches/release/libs/exception/doc/exception_hpp.html
==============================================================================
--- branches/release/libs/exception/doc/exception_hpp.html (original)
+++ branches/release/libs/exception/doc/exception_hpp.html 2008-09-19 16:29:26 EDT (Fri, 19 Sep 2008)
@@ -22,11 +22,13 @@
 <div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h2>boost/exception.hpp</h2>
 </div>
 <h3>Synopsis</h3>
-<div class="RenoIncludeDIV"><pre><span class="RenoIncludeSPAN">#include &lt;<span class="RenoLink">boost/exception/info.hpp</span>&gt;
+<div class="RenoIncludeDIV"><pre><span class="RenoIncludeSPAN">#include &lt;<span class="RenoLink">boost/exception/diagnostic_information.hpp</span>&gt;
+#include &lt;<span class="RenoLink">boost/exception/error_info.hpp</span>&gt;
+#include &lt;<span class="RenoLink">boost/exception/exception.hpp</span>&gt;
+#include &lt;<span class="RenoLink">boost/exception/get_error_info.hpp</span>&gt;
+#include &lt;<span class="RenoLink">boost/exception/info.hpp</span>&gt;
 #include &lt;<span class="RenoLink">boost/exception/info_tuple.hpp</span>&gt;
-#include &lt;<span class="RenoLink">boost/exception/diagnostic_information.hpp</span>&gt;
-#include &lt;<span class="RenoLink">boost/exception_ptr.hpp</span>&gt;
-#include &lt;<span class="RenoLink">boost/throw_exception.hpp</span>&gt;</span></pre>
+#include &lt;<span class="RenoLink">boost/exception_ptr.hpp</span>&gt;</span></pre>
 </div></div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
 <h3>See Also:</h3>
 <div class="RenoPageList"><a href="boost-exception.html">Boost Exception<br/>

Added: branches/release/libs/exception/doc/exception_operator_shl.html
==============================================================================
--- (empty file)
+++ branches/release/libs/exception/doc/exception_operator_shl.html 2008-09-19 16:29:26 EDT (Fri, 19 Sep 2008)
@@ -0,0 +1,69 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>exception/operator&lt;&lt;</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="boost_logo">
+Boost
+</div>
+<h1>Boost Exception</h1>
+</div>
+<!-- Copyright (c) 2006-2008 Emil Dotchevski and Reverge Studios, Inc. -->
+<!-- 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>exception/operator&lt;&lt;</h3>
+</div>
+<div class="RenoIncludeDIV"><p><span class="RenoEscape">&#35;<!--<wiki>`&#35;</wiki>--></span>include &lt;<span class="RenoLink">boost/exception/info.hpp</span>&gt;<span class="RenoBR">&nbsp;</span><br/></p>
+<pre>namespace
+boost
+ {
+<span class="RenoIncludeSPAN"> template &lt;class E, class Tag, class T&gt;
+ E const &amp; <span class="RenoLink">operator<<</span>( E const &amp; x, <span class="RenoLink">error_info</span>&lt;Tag,T&gt; const &amp; v );</span>
+ }</pre>
+</div><h4>Requirements:</h4>
+<p>E must be boost::<span class="RenoLink">exception</span>, or a type that derives (indirectly) from boost::<span class="RenoLink">exception</span>.</p>
+<h4>Effects:</h4>
+<p>Stores a copy of v into x. If x already contains data of type <span class="RenoLink">error_info</span>&lt;Tag,T&gt;, that data is overwritten.</p>
+<h4>Returns:</h4>
+<p>x.</p>
+<div class="RenoIncludeDIV"><h4>Throws:</h4>
+<p>std::bad_alloc, or any exception emitted by the T copy constructor.</p>
+</div></div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+<h3>See Also:</h3>
+<div class="RenoPageList"><a href="boost-exception.html">Boost Exception<br/>
+</a><a href="exception_error_info_hpp.html">boost/exception/info.hpp<br/>
+</a><a href="tutorial_diagnostic_information.html">Diagnostic Information<br/>
+</a><a href="diagnostic_information.html">diagnostic_information<br/>
+</a><a href="error_info.html">error_info<br/>
+</a><a href="exception.html">exception<br/>
+</a><a href="exception_constructors.html">exception::exception<br/>
+</a><a href="get_error_info.html">get_error_info<br/>
+</a><a href="tutorial_enable_error_info.html">Integrating Boost Exception in Existing Exception Class Hierarchies<br/>
+</a></div>
+</div>
+<!-- Copyright (c) 2006-2008 Emil Dotchevski and Reverge Studios, Inc. -->
+<!-- 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) -->
+<div id="footer">
+<p>&nbsp;</p>
+<hr/>
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/validator?uri=http://revergestudios.com/boost-exception/reno.css"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2006-2008 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>

Modified: branches/release/libs/exception/doc/exception_ptr.html
==============================================================================
--- branches/release/libs/exception/doc/exception_ptr.html (original)
+++ branches/release/libs/exception/doc/exception_ptr.html 2008-09-19 16:29:26 EDT (Fri, 19 Sep 2008)
@@ -30,6 +30,11 @@
 </div><p>The <span class="RenoLink">exception_ptr</span> type can be used to refer to a copy of an exception object. It is Default Constructible, Copy Constructible, Assignable and Equality Comparable; <span class="RenoLink">exception_ptr</span>'s operations do not throw.</p>
 <p>Two instances of <span class="RenoLink">exception_ptr</span> are equivalent and compare equal if and only if they refer to the same exception.</p>
 <p>The default constructor of <span class="RenoLink">exception_ptr</span> produces the null value of the type. The null value is equivalent only to itself.</p>
+<h4>Thread safety</h4>
+<div><ul><li> It is legal for multiple threads to hold <span class="RenoLink">exception_ptr</span> references to the same exception object.</li>
+<li> It is illegal for multiple threads to modify the same <span class="RenoLink">exception_ptr</span> object concurrently.</li>
+<li> While calling <span class="RenoLink">current_exception</span> makes a copy of the current exception object, it is still possible for the two copies to share internal state. Therefore, in general it is not safe to call <span class="RenoLink">rethrow_exception</span> concurrently to throw the same exception object into multiple threads.</li>
+</ul></div>
 </div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
 <h3>See Also:</h3>
 <div class="RenoPageList"><a href="boost-exception.html">Boost Exception<br/>

Modified: branches/release/libs/exception/doc/get_error_info.html
==============================================================================
--- branches/release/libs/exception/doc/get_error_info.html (original)
+++ branches/release/libs/exception/doc/get_error_info.html 2008-09-19 16:29:26 EDT (Fri, 19 Sep 2008)
@@ -21,7 +21,7 @@
 <!-- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -->
 <div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>get_error_info</h3>
 </div>
-<div class="RenoIncludeDIV"><p><span class="RenoEscape">&#35;<!--<wiki>`&#35;</wiki>--></span>include &lt;<span class="RenoLink">boost/exception/info.hpp</span>&gt;</p>
+<div class="RenoIncludeDIV"><p><span class="RenoEscape">&#35;<!--<wiki>`&#35;</wiki>--></span>include &lt;<span class="RenoLink">boost/exception/get_error_info.hpp</span>&gt;</p>
 <pre>namespace
 boost
     {
@@ -31,17 +31,22 @@
 </div><h4>Requirements:</h4>
 <div><ul><li> ErrorInfo must be an instance of the <span class="RenoLink">error_info</span> template.</li>
 <li> E must be polymorphic.</li>
+<li> The <span class="RenoLink">get_error_info</span> function must not be called outside of a catch block.</li>
 </ul></div>
 <h4>Returns:</h4>
 <div><ul><li> If dynamic_cast&lt;boost::<span class="RenoLink">exception</span> const *&gt;(&amp;x) is 0, or if x does not store an object of type ErrorInfo, the returned value is an empty shared_ptr.</li>
-<li> Otherwise, the returned shared_ptr points to the stored value (use <span class="RenoLink">operator<<</span> to store values in exception objects.) The shared_ptr is valid even after x has been destroyed.</li>
+<li> Otherwise, the returned shared_ptr points to the stored value (use <span class="RenoLink">operator<<</span> to store values in exception objects.) The shared_ptr is valid even after x has been destroyed.</li>
 </ul></div>
 <h4>Throws:</h4>
 <p>Nothing.</p>
+<h4>Note:</h4>
+<p>The interface of <span class="RenoLink">get_error_info</span> may be affected by the build <span class="RenoLink">configuration macros</span>.</p>
 </div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
 <h3>See Also:</h3>
-<div class="RenoPageList"><a href="boost-exception.html">Boost Exception<br/>
-</a><a href="exception_error_info_hpp.html">boost/exception/info.hpp<br/>
+<div class="RenoPageList"><a href="BOOST_THROW_EXCEPTION.html">BOOST_THROW_EXCEPTION<br/>
+</a><a href="boost-exception.html">Boost Exception<br/>
+</a><a href="exception_get_error_info_hpp.html">boost/exception/get_error_info.hpp<br/>
+</a><a href="configuration_macros.html">Configuration Macros<br/>
 </a><a href="error_info.html">error_info<br/>
 </a><a href="exception.html">exception<br/>
 </a></div>

Modified: branches/release/libs/exception/doc/name_idx.html
==============================================================================
--- branches/release/libs/exception/doc/name_idx.html (original)
+++ branches/release/libs/exception/doc/name_idx.html 2008-09-19 16:29:26 EDT (Fri, 19 Sep 2008)
@@ -22,19 +22,22 @@
 <div class="RenoAutoDIV"><h1>Index</h1>
 </div>
 <div class="RenoIndex"><h3>B</h3>
-<p>BOOST_ERROR_INFO</p>
+<p>BOOST_THROW_EXCEPTION</p>
 <p>Boost Exception</p>
 <h3>b</h3>
 <p>boost/exception.hpp</p>
-<p>boost/exception/diagnostic_information.hpp</p>
-<p>boost/exception/enable_current_exception.hpp</p>
+<p>boost/exception/diagnostic_information.hpp</p>
+<p>boost/exception/enable_current_exception.hpp</p>
 <p>boost/exception/enable_error_info.hpp</p>
 <p>boost/exception/error_info.hpp</p>
 <p>boost/exception/exception.hpp</p>
+<p>boost/exception/get_error_info.hpp</p>
 <p>boost/exception/info.hpp</p>
 <p>boost/exception/info_tuple.hpp</p>
 <p>boost/exception_ptr.hpp</p>
 <p>boost/throw_exception.hpp</p>
+<h3>C</h3>
+<p>Configuration Macros</p>
 <h3>c</h3>
 <p>copy_exception</p>
 <p>current_exception</p>
@@ -47,17 +50,15 @@
 <p>enable_error_info</p>
 <p>error_info</p>
 <p>exception</p>
-<p>exception::diagnostic_information</p>
+<p>exception/operator<<</p>
 <p>exception::exception</p>
 <p>exception::~exception</p>
 <p>exception_ptr</p>
 <h3>g</h3>
 <p>get_error_info</p>
 <h3>I</h3>
+<p>Index</p>
 <p>Integrating Boost Exception in Existing Exception Class Hierarchies</p>
-<h3>o</h3>
-<p>operator<</exception</p>
-<p>operator<</tuple</p>
 <h3>r</h3>
 <p>rethrow_exception</p>
 <h3>T</h3>
@@ -65,6 +66,7 @@
 <p>Transporting of Exceptions Between Threads</p>
 <h3>t</h3>
 <p>throw_exception</p>
+<p>tuple/operator<<</p>
 <h3>u</h3>
 <p>unknown_exception</p>
 </div>

Deleted: branches/release/libs/exception/doc/operator_shl_exception.html
==============================================================================
--- branches/release/libs/exception/doc/operator_shl_exception.html 2008-09-19 16:29:26 EDT (Fri, 19 Sep 2008)
+++ (empty file)
@@ -1,70 +0,0 @@
-<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
-'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
-<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
-<head>
- <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
- <title>operator&lt;&lt;/exception</title>
- <link href='reno.css' type='text/css' rel='stylesheet'/>
-</head>
-<body>
-<div class="body-0">
-<div class="body-1">
-<div class="body-2">
-<div>
-<div id="boost_logo">
-Boost
-</div>
-<h1>Boost Exception</h1>
-</div>
-<!-- Copyright (c) 2006-2008 Emil Dotchevski and Reverge Studios, Inc. -->
-<!-- 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) -->
-<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>operator&lt;&lt;/exception</h3>
-</div>
-<div class="RenoIncludeDIV"><p><span class="RenoEscape">&#35;<!--<wiki>`&#35;</wiki>--></span>include &lt;<span class="RenoLink">boost/exception/info.hpp</span>&gt;<span class="RenoBR">&nbsp;</span><br/></p>
-<pre>namespace
-boost
- {
-<span class="RenoIncludeSPAN"> template &lt;class E, class Tag, class T&gt;
- E const &amp; <span class="RenoLink">operator<<</span>( E const &amp; x, <span class="RenoLink">error_info</span>&lt;Tag,T&gt; const &amp; v );</span>
- }</pre>
-</div><h4>Requirements:</h4>
-<p>E must be boost::<span class="RenoLink">exception</span>, or a type that derives (indirectly) from boost::<span class="RenoLink">exception</span>.</p>
-<h4>Effects:</h4>
-<p>Stores a copy of v into x. If x already contains data of type <span class="RenoLink">error_info</span>&lt;Tag,T&gt;, that data is overwritten.</p>
-<h4>Returns:</h4>
-<p>x.</p>
-<div class="RenoIncludeDIV"><h4>Throws:</h4>
-<p>std::bad_alloc, or any exception emitted by the T copy constructor.</p>
-</div></div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
-<h3>See Also:</h3>
-<div class="RenoPageList"><a href="BOOST_ERROR_INFO.html">BOOST_ERROR_INFO<br/>
-</a><a href="boost-exception.html">Boost Exception<br/>
-</a><a href="exception_error_info_hpp.html">boost/exception/info.hpp<br/>
-</a><a href="tutorial_diagnostic_information.html">Diagnostic Information<br/>
-</a><a href="error_info.html">error_info<br/>
-</a><a href="exception.html">exception<br/>
-</a><a href="exception_diagnostic_information.html">exception::diagnostic_information<br/>
-</a><a href="exception_constructors.html">exception::exception<br/>
-</a><a href="get_error_info.html">get_error_info<br/>
-</a><a href="tutorial_enable_error_info.html">Integrating Boost Exception in Existing Exception Class Hierarchies<br/>
-</a></div>
-</div>
-<!-- Copyright (c) 2006-2008 Emil Dotchevski and Reverge Studios, Inc. -->
-<!-- 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) -->
-<div id="footer">
-<p>&nbsp;</p>
-<hr/>
-<p>
-<a class="logo" href="http://jigsaw.w3.org/css-validator/validator?uri=http://revergestudios.com/boost-exception/reno.css"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
-<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
-<small>Copyright (c) 2006-2008 by Emil Dotchevski and Reverge Studios, Inc.<br/>
-Distributed under the Boost Software License, Version 1.0.</small>
-</p>
-</div>
-</div>
-</div>
-</div>
-</body>
-</html>

Deleted: branches/release/libs/exception/doc/operator_shl_tuple.html
==============================================================================
--- branches/release/libs/exception/doc/operator_shl_tuple.html 2008-09-19 16:29:26 EDT (Fri, 19 Sep 2008)
+++ (empty file)
@@ -1,66 +0,0 @@
-<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
-'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
-<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
-<head>
- <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
- <title>operator&lt;&lt;/tuple</title>
- <link href='reno.css' type='text/css' rel='stylesheet'/>
-</head>
-<body>
-<div class="body-0">
-<div class="body-1">
-<div class="body-2">
-<div>
-<div id="boost_logo">
-Boost
-</div>
-<h1>Boost Exception</h1>
-</div>
-<!-- Copyright (c) 2006-2008 Emil Dotchevski and Reverge Studios, Inc. -->
-<!-- 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) -->
-<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>operator&lt;&lt;/tuple</h3>
-</div>
-<div class="RenoIncludeDIV"><p><span class="RenoEscape">&#35;<!--<wiki>`&#35;</wiki>--></span>include &lt;<span class="RenoLink">boost/exception/info_tuple.hpp</span>&gt;</p>
-<pre>namespace
-boost
- {
-<span class="RenoIncludeSPAN"> template &lt;class E, class Tag1, class T1, ..., class TagN, class TN&gt;
- E const &amp; <span class="RenoLink">operator<<</span>( E const &amp; x,
- <span class="RenoLink">tuple</span>&lt;
- <span class="RenoLink">error_info</span>&lt;Tag1,T1&gt;,
- ...,
- <span class="RenoLink">error_info</span>&lt;TagN,TN&gt; &gt; const &amp; v );</span>
- }</pre>
-</div><h4>Requirements:</h4>
-<p>E must be boost::<span class="RenoLink">exception</span>, or a type that derives (indirectly) from boost::<span class="RenoLink">exception</span>.</p>
-<h4>Effects:</h4>
-<p>Equivalent to x &lt;&lt; v.<span class="RenoLink">get</span>&lt;0&gt;() &lt;&lt; ... &lt;&lt; v.<span class="RenoLink">get</span>&lt;N&gt;().</p>
-<h4>Returns:</h4>
-<p>x.</p>
-<div class="RenoIncludeDIV"><h4>Throws:</h4>
-<p>std::bad_alloc, or any exception emitted by T1..TN copy constructor.</p>
-</div></div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
-<h3>See Also:</h3>
-<div class="RenoPageList"><a href="boost-exception.html">Boost Exception<br/>
-</a><a href="exception_error_info_group_hpp.html">boost/exception/info_tuple.hpp<br/>
-</a></div>
-</div>
-<!-- Copyright (c) 2006-2008 Emil Dotchevski and Reverge Studios, Inc. -->
-<!-- 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) -->
-<div id="footer">
-<p>&nbsp;</p>
-<hr/>
-<p>
-<a class="logo" href="http://jigsaw.w3.org/css-validator/validator?uri=http://revergestudios.com/boost-exception/reno.css"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
-<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
-<small>Copyright (c) 2006-2008 by Emil Dotchevski and Reverge Studios, Inc.<br/>
-Distributed under the Boost Software License, Version 1.0.</small>
-</p>
-</div>
-</div>
-</div>
-</div>
-</body>
-</html>

Modified: branches/release/libs/exception/doc/rethrow_exception.html
==============================================================================
--- branches/release/libs/exception/doc/rethrow_exception.html (original)
+++ branches/release/libs/exception/doc/rethrow_exception.html 2008-09-19 16:29:26 EDT (Fri, 19 Sep 2008)
@@ -35,6 +35,7 @@
 <h3>See Also:</h3>
 <div class="RenoPageList"><a href="boost-exception.html">Boost Exception<br/>
 </a><a href="exception_cloning_hpp.html">boost/exception_ptr.hpp<br/>
+</a><a href="exception_ptr.html">exception_ptr<br/>
 </a></div>
 </div>
 <!-- Copyright (c) 2006-2008 Emil Dotchevski and Reverge Studios, Inc. -->

Modified: branches/release/libs/exception/doc/source/boost-exception.reno
==============================================================================
--- branches/release/libs/exception/doc/source/boost-exception.reno (original)
+++ branches/release/libs/exception/doc/source/boost-exception.reno 2008-09-19 16:29:26 EDT (Fri, 19 Sep 2008)
@@ -39,7 +39,7 @@
                                                                         </type>
                                                                         <object>
                                                                                 <sorted>
- <size>39</size>
+ <size>40</size>
                                                                                         <pair>
                                                                                                 <weak_ptr>
                                                                                                         <expired>0</expired>
@@ -53,29 +53,33 @@
                                                                                                                                 <hook>
                                                                                                                                         <stream_hook_path>
                                                                                                                                                 <container>
- <size>2</size>
- <strong>D1AA2FC554CD67A50917905B0E9CCA2EBC1A9BA97368757B36ADF8419756ECF1</strong>
- <weak>85276724</weak>
- <size>4917</size>
- <position>514</position>
- <strong>156B870761DB092CE4269C1173B479A344A1041BA2B883765AF19A72B371D776</strong>
- <weak>3239976720</weak>
- <size>117</size>
- <position>4794</position>
+ <size>3</size>
+ <strong>612485E090D76B2CC43C1A296F813075BA165C2496082E78E939F10B3DA8E09A</strong>
+ <weak>1770110914</weak>
+ <size>587</size>
+ <position>1482</position>
+ <strong>60F3F48B87487FA6E0D2CCC0750AF435CC92CEC80BBBF609AC71295031AADD0D</strong>
+ <weak>3929437933</weak>
+ <size>361</size>
+ <position>213</position>
+ <strong>CD1241D84950468704F3C3F04116B8DA5162A8BEA4364F10951232F49113C5DE</strong>
+ <weak>1658463867</weak>
+ <size>121</size>
+ <position>238</position>
                                                                                                                                                 </container>
                                                                                                                                         </stream_hook_path>
                                                                                                                                 </hook>
                                                                                                                                 <file>
                                                                                                                                         <path>
                                                                                                                                                 <empty>0</empty>
- <string>../../../../boost/exception_ptr.hpp</string>
+ <string>../../../../boost/throw_exception.hpp</string>
                                                                                                                                                 <type>0</type>
                                                                                                                                                 <base>0</base>
                                                                                                                                         </path>
                                                                                                                                 </file>
                                                                                                                         </hook>
                                                                                                                         <title>
- <string>rethrow_exception</string>
+ <string>configuration macros</string>
                                                                                                                         </title>
                                                                                                                         <file_name>
                                                                                                                                 <string></string>
@@ -103,28 +107,28 @@
                                                                                                                                         <stream_hook_path>
                                                                                                                                                 <container>
                                                                                                                                                         <size>2</size>
- <strong>D1AA2FC554CD67A50917905B0E9CCA2EBC1A9BA97368757B36ADF8419756ECF1</strong>
- <weak>85276724</weak>
- <size>4917</size>
- <position>514</position>
- <strong>ED09F845070FF7D381BE5EFB6B55313FD09FBA16B64B69992410380EFA45519C</strong>
- <weak>2051939590</weak>
- <size>78</size>
- <position>433</position>
+ <strong>F7633FDCF6615C0199645701EE6E7ACE5CBCD7A7CF6838573791E91ABB3C09F2</strong>
+ <weak>1668435395</weak>
+ <size>1332</size>
+ <position>396</position>
+ <strong>A1F443AF571973A12005D2F7D4AE09A32AAF686FEEAE272EC21512A65EB943E8</strong>
+ <weak>3879093659</weak>
+ <size>1300</size>
+ <position>26</position>
                                                                                                                                                 </container>
                                                                                                                                         </stream_hook_path>
                                                                                                                                 </hook>
                                                                                                                                 <file>
                                                                                                                                         <path>
                                                                                                                                                 <empty>0</empty>
- <string>../../../../boost/exception_ptr.hpp</string>
+ <string>../../../../boost/exception/info_tuple.hpp</string>
                                                                                                                                                 <type>0</type>
                                                                                                                                                 <base>0</base>
                                                                                                                                         </path>
                                                                                                                                 </file>
                                                                                                                         </hook>
                                                                                                                         <title>
- <string>exception_ptr</string>
+ <string>tuple/operator&lt;&lt;</string>
                                                                                                                         </title>
                                                                                                                         <file_name>
                                                                                                                                 <string></string>
@@ -152,28 +156,28 @@
                                                                                                                                         <stream_hook_path>
                                                                                                                                                 <container>
                                                                                                                                                         <size>2</size>
- <strong>35F026FF4EC46450D19A8F970D6E39B881DA6B0FC2E95774CCADC5E34C9D57F1</strong>
- <weak>1990614462</weak>
- <size>6369</size>
- <position>737</position>
- <strong>61B57D0AE5F1033900B7DE4401AC1633F4639471A19194D5660F6C43465FCE3D</strong>
- <weak>1668078447</weak>
- <size>724</size>
- <position>1712</position>
+ <strong>86E1196533E771AEFD141DA43FCD980AE3D7689A45EDD54A2DF28B1943E0E7DB</strong>
+ <weak>941210061</weak>
+ <size>8706</size>
+ <position>487</position>
+ <strong>448B6444D4B3E46F822F56C14FDA3F6F96B869543EBA1E291C5E3D36F73AF24B</strong>
+ <weak>2443226110</weak>
+ <size>700</size>
+ <position>1496</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>get_error_info</string>
+ <string>unknown_exception</string>
                                                                                                                         </title>
                                                                                                                         <file_name>
                                                                                                                                 <string></string>
@@ -201,9 +205,9 @@
                                                                                                                                         <stream_hook_path>
                                                                                                                                                 <container>
                                                                                                                                                         <size>1</size>
- <strong>9CC0F5ADB1C04555FD571DABD1D7D6775D8B11977ECC8320AD4451FC435E89A1</strong>
- <weak>1325628148</weak>
- <size>3147</size>
+ <strong>A7B38E57D7A0B8823D9FE49F434B6B61D2C300ED96FA97BBAE9CED40660241DF</strong>
+ <weak>882254800</weak>
+ <size>9168</size>
                                                                                                                                                         <position>323</position>
                                                                                                                                                 </container>
                                                                                                                                         </stream_hook_path>
@@ -246,9 +250,9 @@
                                                                                                                                         <stream_hook_path>
                                                                                                                                                 <container>
                                                                                                                                                         <size>1</size>
- <strong>E312FADF4C02B7A6CB1BE1EC16F05A21C20CBA3282D4EAFC8EBE0BA151F24779</strong>
- <weak>2820045995</weak>
- <size>5108</size>
+ <strong>25DF01CCA9425952104C6606C336BB091879E4A22680790BBB352670DFB0E0CD</strong>
+ <weak>4271502180</weak>
+ <size>8870</size>
                                                                                                                                                         <position>323</position>
                                                                                                                                                 </container>
                                                                                                                                         </stream_hook_path>
@@ -291,27 +295,27 @@
                                                                                                                                         <stream_hook_path>
                                                                                                                                                 <container>
                                                                                                                                                         <size>1</size>
- <strong>49D31376D97691F7C84A134B5D8C7C66EF1ED6901D376CA250D634AE2B38AB5E</strong>
- <weak>549270010</weak>
- <size>163</size>
- <position>572</position>
+ <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.hpp</string>
+ <string>../../../../boost/exception/info_tuple.hpp</string>
                                                                                                                                                 <type>0</type>
                                                                                                                                                 <base>0</base>
                                                                                                                                         </path>
                                                                                                                                 </file>
                                                                                                                         </hook>
                                                                                                                         <title>
- <string>BOOST_ERROR_INFO</string>
+ <string>boost/exception/info_tuple.hpp</string>
                                                                                                                         </title>
                                                                                                                         <file_name>
- <string></string>
+ <string>exception_error_info_group_hpp</string>
                                                                                                                         </file_name>
                                                                                                                 </object>
                                                                                                         </shared_ptr>
@@ -336,33 +340,35 @@
                                                                                                                                         <stream_hook_path>
                                                                                                                                                 <container>
                                                                                                                                                         <size>1</size>
- <strong>F4C951B28F7DE500973AA3DFAA99F2BADA6EDAFA2B406C30BEF3B7FBE6FD57D7</strong>
- <weak>2263754923</weak>
- <size>982</size>
- <position>306</position>
+ <strong>772781E5C169713B0AAF4BF73D567AB51C65D3D2DE185E43BDD75B8C3E0090AE</strong>
+ <weak>2533913088</weak>
+ <size>1998</size>
+ <position>91</position>
                                                                                                                                                 </container>
                                                                                                                                         </stream_hook_path>
                                                                                                                                 </hook>
                                                                                                                                 <file>
                                                                                                                                         <path>
                                                                                                                                                 <empty>0</empty>
- <string>../../example/error_info_2.cpp</string>
+ <string>../../../../boost/throw_exception.hpp</string>
                                                                                                                                                 <type>0</type>
                                                                                                                                                 <base>0</base>
                                                                                                                                         </path>
                                                                                                                                 </file>
                                                                                                                         </hook>
                                                                                                                         <title>
- <string>adding of arbitrary data to active exception objects</string>
+ <string>boost/throw_exception.hpp</string>
                                                                                                                         </title>
                                                                                                                         <file_name>
- <string>adding_data_later</string>
+ <string>throw_exception_hpp</string>
                                                                                                                         </file_name>
                                                                                                                 </object>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
- <size>0</size>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:)&#10;(:auto also:)&#10;</string>
                                                                                                 </container>
                                                                                         </pair>
                                                                                         <pair>
@@ -378,34 +384,40 @@
                                                                                                                                 <hook>
                                                                                                                                         <stream_hook_path>
                                                                                                                                                 <container>
- <size>1</size>
- <strong>E444EE9697EEADFDE0767E1D0242FC0E70D98E61FB1F0FFA099648DE509B82F3</strong>
- <weak>94503238</weak>
- <size>773</size>
- <position>374</position>
+ <size>2</size>
+ <strong>9A4ECF9A49A73AED83C1565CB8C67AE1519E8AFE6818F968B4C4733CB9E86CEF</strong>
+ <weak>1615599655</weak>
+ <size>68</size>
+ <position>227</position>
+ <strong>34F0583BC8DE767CE2D79721E1F956895E43E5397473B1050F59BE7E26C773DB</strong>
+ <weak>805836816</weak>
+ <size>66</size>
+ <position>1</position>
                                                                                                                                                 </container>
                                                                                                                                         </stream_hook_path>
                                                                                                                                 </hook>
                                                                                                                                 <file>
                                                                                                                                         <path>
                                                                                                                                                 <empty>0</empty>
- <string>../../example/info_tuple.cpp</string>
+ <string>../../../../boost/exception/error_info.hpp</string>
                                                                                                                                                 <type>0</type>
                                                                                                                                                 <base>0</base>
                                                                                                                                         </path>
                                                                                                                                 </file>
                                                                                                                         </hook>
                                                                                                                         <title>
- <string>adding grouped data to exceptions</string>
+ <string>boost/exception/error_info.hpp</string>
                                                                                                                         </title>
                                                                                                                         <file_name>
- <string>grouping_data</string>
+ <string>exception_error_info_value_hpp</string>
                                                                                                                         </file_name>
                                                                                                                 </object>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
- <size>0</size>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:)&#10;(:auto also:)&#10;</string>
                                                                                                 </container>
                                                                                         </pair>
                                                                                         <pair>
@@ -421,28 +433,32 @@
                                                                                                                                 <hook>
                                                                                                                                         <stream_hook_path>
                                                                                                                                                 <container>
- <size>1</size>
- <strong>A9C65F105342D728DE9C996079E82DF25408B94A272090039FAAC12D29659F69</strong>
- <weak>2378831669</weak>
- <size>94</size>
- <position>227</position>
+ <size>2</size>
+ <strong>A7B38E57D7A0B8823D9FE49F434B6B61D2C300ED96FA97BBAE9CED40660241DF</strong>
+ <weak>882254800</weak>
+ <size>9168</size>
+ <position>323</position>
+ <strong>DF9EA87B0140AACF4422F1B76F6A6A409C15F32858BBBA85A35981A824C56BA9</strong>
+ <weak>1137981799</weak>
+ <size>192</size>
+ <position>8970</position>
                                                                                                                                                 </container>
                                                                                                                                         </stream_hook_path>
                                                                                                                                 </hook>
                                                                                                                                 <file>
                                                                                                                                         <path>
                                                                                                                                                 <empty>0</empty>
- <string>../../../../boost/exception/enable_current_exception.hpp</string>
+ <string>../../../../boost/exception/exception.hpp</string>
                                                                                                                                                 <type>0</type>
                                                                                                                                                 <base>0</base>
                                                                                                                                         </path>
                                                                                                                                 </file>
                                                                                                                         </hook>
                                                                                                                         <title>
- <string>boost/exception/enable_current_exception.hpp</string>
+ <string>enable_current_exception</string>
                                                                                                                         </title>
                                                                                                                         <file_name>
- <string>exception_enable_exception_cloning_hpp</string>
+ <string></string>
                                                                                                                         </file_name>
                                                                                                                 </object>
                                                                                                         </shared_ptr>
@@ -467,14 +483,14 @@
                                                                                                                                         <stream_hook_path>
                                                                                                                                                 <container>
                                                                                                                                                         <size>2</size>
- <strong>D1AA2FC554CD67A50917905B0E9CCA2EBC1A9BA97368757B36ADF8419756ECF1</strong>
- <weak>85276724</weak>
- <size>4917</size>
- <position>514</position>
- <strong>F87D7E0321BDDAE23D5A6667CB12116411468AEC54E3B35FB9C8CA94BFECA41E</strong>
- <weak>1149388739</weak>
- <size>296</size>
- <position>4496</position>
+ <strong>86E1196533E771AEFD141DA43FCD980AE3D7689A45EDD54A2DF28B1943E0E7DB</strong>
+ <weak>941210061</weak>
+ <size>8706</size>
+ <position>487</position>
+ <strong>0066D4E6E6B189906E6DE04F08509F3737511701A1B1355B37511EC18E8371F4</strong>
+ <weak>2078296250</weak>
+ <size>305</size>
+ <position>8138</position>
                                                                                                                                                 </container>
                                                                                                                                         </stream_hook_path>
                                                                                                                                 </hook>
@@ -516,28 +532,28 @@
                                                                                                                                         <stream_hook_path>
                                                                                                                                                 <container>
                                                                                                                                                         <size>2</size>
- <strong>13F58566E4D9F20B49F3F30B28528AEE562CD709108ADC1AE19A2F01D86C62F4</strong>
- <weak>1430141721</weak>
- <size>2967</size>
- <position>503</position>
- <strong>09CB6839AC1E71887371FB8159C2BFCD273A397C54E07B25CEF2EEF2FA24286A</strong>
- <weak>4111403263</weak>
- <size>1924</size>
- <position>878</position>
+ <strong>86E1196533E771AEFD141DA43FCD980AE3D7689A45EDD54A2DF28B1943E0E7DB</strong>
+ <weak>941210061</weak>
+ <size>8706</size>
+ <position>487</position>
+ <strong>0E9DF8366080712A816BE91ABCEF1E2044145B63D75B0B995B537900F378189E</strong>
+ <weak>1069696031</weak>
+ <size>255</size>
+ <position>8445</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>rethrow_exception</string>
                                                                                                                         </title>
                                                                                                                         <file_name>
                                                                                                                                 <string></string>
@@ -548,7 +564,7 @@
                                                                                                 <container>
                                                                                                         <size>1</size>
                                                                                                         <variant>2</variant>
- <string>(:include include:)&#10;----&#10;!!!See Also:&#10;&#10;(:pagelist link=&quot;backlink&quot; except_tags=&quot;exception,member&quot; mod=&quot;w&quot;:)&#10;</string>
+ <string>(:include include:)&#10;(:auto also:)&#10;</string>
                                                                                                 </container>
                                                                                         </pair>
                                                                                         <pair>
@@ -565,27 +581,27 @@
                                                                                                                                         <stream_hook_path>
                                                                                                                                                 <container>
                                                                                                                                                         <size>1</size>
- <strong>CE411E21EE9878B55B5906D033A0FC52574FB59D8A8CECB75405E9B1C9D782DB</strong>
- <weak>1173443713</weak>
- <size>308</size>
- <position>302</position>
+ <strong>F6A7A960DE8CB8740E206D2585D4C83854DE073ABDAFFB8BD1C9A6B73428197D</strong>
+ <weak>129904804</weak>
+ <size>4115</size>
+ <position>323</position>
                                                                                                                                                 </container>
                                                                                                                                         </stream_hook_path>
                                                                                                                                 </hook>
                                                                                                                                 <file>
                                                                                                                                         <path>
                                                                                                                                                 <empty>0</empty>
- <string>../../example/logging.cpp</string>
+ <string>../../../../boost/exception/get_error_info.hpp</string>
                                                                                                                                                 <type>0</type>
                                                                                                                                                 <base>0</base>
                                                                                                                                         </path>
                                                                                                                                 </file>
                                                                                                                         </hook>
                                                                                                                         <title>
- <string>diagnostic information</string>
+ <string>boost/exception/get_error_info.hpp</string>
                                                                                                                         </title>
                                                                                                                         <file_name>
- <string>tutorial_diagnostic_information</string>
+ <string>exception_get_error_info_hpp</string>
                                                                                                                         </file_name>
                                                                                                                 </object>
                                                                                                         </shared_ptr>
@@ -610,35 +626,33 @@
                                                                                                                                         <stream_hook_path>
                                                                                                                                                 <container>
                                                                                                                                                         <size>1</size>
- <strong>429F0DE3599A4CC08B9458E2AECA2EAC202AB3471554FE82C307493805E6676E</strong>
- <weak>4224422781</weak>
- <size>401</size>
- <position>323</position>
+ <strong>F4C951B28F7DE500973AA3DFAA99F2BADA6EDAFA2B406C30BEF3B7FBE6FD57D7</strong>
+ <weak>2263754923</weak>
+ <size>982</size>
+ <position>306</position>
                                                                                                                                                 </container>
                                                                                                                                         </stream_hook_path>
                                                                                                                                 </hook>
                                                                                                                                 <file>
                                                                                                                                         <path>
                                                                                                                                                 <empty>0</empty>
- <string>../../../../boost/exception.hpp</string>
+ <string>../../example/error_info_2.cpp</string>
                                                                                                                                                 <type>0</type>
                                                                                                                                                 <base>0</base>
                                                                                                                                         </path>
                                                                                                                                 </file>
                                                                                                                         </hook>
                                                                                                                         <title>
- <string>boost/exception.hpp</string>
+ <string>adding of arbitrary data to active exception objects</string>
                                                                                                                         </title>
                                                                                                                         <file_name>
- <string>exception_hpp</string>
+ <string>adding_data_later</string>
                                                                                                                         </file_name>
                                                                                                                 </object>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
- <size>1</size>
- <variant>2</variant>
- <string>(:include include:)&#10;(:auto also:)&#10;</string>
+ <size>0</size>
                                                                                                 </container>
                                                                                         </pair>
                                                                                         <pair>
@@ -654,21 +668,32 @@
                                                                                                                                 <hook>
                                                                                                                                         <stream_hook_path>
                                                                                                                                                 <container>
- <size>0</size>
+ <size>2</size>
+ <strong>A7B38E57D7A0B8823D9FE49F434B6B61D2C300ED96FA97BBAE9CED40660241DF</strong>
+ <weak>882254800</weak>
+ <size>9168</size>
+ <position>323</position>
+ <strong>17E691632123EB67BA67D590B49EB8094F462F5A10A66A1C5438E1867EF1478E</strong>
+ <weak>765399792</weak>
+ <size>77</size>
+ <position>5917</position>
                                                                                                                                                 </container>
                                                                                                                                         </stream_hook_path>
                                                                                                                                 </hook>
                                                                                                                                 <file>
                                                                                                                                         <path>
- <empty>1</empty>
+ <empty>0</empty>
+ <string>../../../../boost/exception/exception.hpp</string>
+ <type>0</type>
+ <base>0</base>
                                                                                                                                         </path>
                                                                                                                                 </file>
                                                                                                                         </hook>
                                                                                                                         <title>
- <string>transporting of arbitrary data to the catch site</string>
+ <string>exception::~exception</string>
                                                                                                                         </title>
                                                                                                                         <file_name>
- <string>tutorial_transporting_data</string>
+ <string>exception_destructor</string>
                                                                                                                         </file_name>
                                                                                                                 </object>
                                                                                                         </shared_ptr>
@@ -693,27 +718,27 @@
                                                                                                                                         <stream_hook_path>
                                                                                                                                                 <container>
                                                                                                                                                         <size>1</size>
- <strong>D9B8E6AA12A4F33953B1A961FA590C5A3840234B6531CA8C04AC985AD5800835</strong>
- <weak>2432554768</weak>
- <size>702</size>
- <position>408</position>
+ <strong>8DC5E3F51F580F74905ADF7542CBFBE23989808ACFF69E8C2B98B5092C633B42</strong>
+ <weak>378737885</weak>
+ <size>4007</size>
+ <position>323</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>integrating boost exception in existing exception class hierarchies</string>
+ <string>boost/exception/info.hpp</string>
                                                                                                                         </title>
                                                                                                                         <file_name>
- <string>tutorial_enable_error_info</string>
+ <string>exception_error_info_hpp</string>
                                                                                                                         </file_name>
                                                                                                                 </object>
                                                                                                         </shared_ptr>
@@ -721,7 +746,7 @@
                                                                                                 <container>
                                                                                                         <size>1</size>
                                                                                                         <variant>2</variant>
- <string>(:include include:)&#10;(:auto also:)&#10;</string>
+ <string>(:include include:)&#10;&#10;(:auto also:)&#10;</string>
                                                                                                 </container>
                                                                                         </pair>
                                                                                         <pair>
@@ -737,28 +762,21 @@
                                                                                                                                 <hook>
                                                                                                                                         <stream_hook_path>
                                                                                                                                                 <container>
- <size>1</size>
- <strong>749C8E4B47A3FD6A90DD8418BF64C4556537CE6E17ACEB2317D9F81DBEBBB0B0</strong>
- <weak>1688004766</weak>
- <size>6783</size>
- <position>323</position>
+ <size>0</size>
                                                                                                                                                 </container>
                                                                                                                                         </stream_hook_path>
                                                                                                                                 </hook>
                                                                                                                                 <file>
                                                                                                                                         <path>
- <empty>0</empty>
- <string>../../../../boost/exception/info.hpp</string>
- <type>0</type>
- <base>0</base>
+ <empty>1</empty>
                                                                                                                                         </path>
                                                                                                                                 </file>
                                                                                                                         </hook>
                                                                                                                         <title>
- <string>boost/exception/info.hpp</string>
+ <string>boost/exception/enable_current_exception.hpp</string>
                                                                                                                         </title>
                                                                                                                         <file_name>
- <string>exception_error_info_hpp</string>
+ <string>exception_enable_current_exception_hpp</string>
                                                                                                                         </file_name>
                                                                                                                 </object>
                                                                                                         </shared_ptr>
@@ -766,7 +784,7 @@
                                                                                                 <container>
                                                                                                         <size>1</size>
                                                                                                         <variant>2</variant>
- <string>(:include include:)&#10;&#10;(:auto also:)&#10;</string>
+ <string>(:include include:)&#10;(:auto also:)&#10;</string>
                                                                                                 </container>
                                                                                         </pair>
                                                                                         <pair>
@@ -782,34 +800,29 @@
                                                                                                                                 <hook>
                                                                                                                                         <stream_hook_path>
                                                                                                                                                 <container>
- <size>1</size>
- <strong>5373E336DC4892A41D31694BCA1146382FC3137819A04689CA1F9FFAF1CFAB3B</strong>
- <weak>4050491732</weak>
- <size>466</size>
- <position>307</position>
+ <size>0</size>
                                                                                                                                                 </container>
                                                                                                                                         </stream_hook_path>
                                                                                                                                 </hook>
                                                                                                                                 <file>
                                                                                                                                         <path>
- <empty>0</empty>
- <string>../../example/cloning_1.cpp</string>
- <type>0</type>
- <base>0</base>
+ <empty>1</empty>
                                                                                                                                         </path>
                                                                                                                                 </file>
                                                                                                                         </hook>
                                                                                                                         <title>
- <string>using enable_current_exception at the time of the throw</string>
+ <string>boost/exception/enable_error_info.hpp</string>
                                                                                                                         </title>
                                                                                                                         <file_name>
- <string>using_enable_cloning</string>
+ <string>exception_enable_error_info_hpp</string>
                                                                                                                         </file_name>
                                                                                                                 </object>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
- <size>0</size>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:)&#10;(:auto also:)&#10;</string>
                                                                                                 </container>
                                                                                         </pair>
                                                                                         <pair>
@@ -826,28 +839,28 @@
                                                                                                                                         <stream_hook_path>
                                                                                                                                                 <container>
                                                                                                                                                         <size>2</size>
- <strong>35F026FF4EC46450D19A8F970D6E39B881DA6B0FC2E95774CCADC5E34C9D57F1</strong>
- <weak>1990614462</weak>
- <size>6369</size>
- <position>737</position>
- <strong>F839AFD37DC086BB1231B8E87D8EEBD28129649A06FC685AC7DF65595871AE30</strong>
- <weak>2291609923</weak>
- <size>1204</size>
- <position>243</position>
+ <strong>86E1196533E771AEFD141DA43FCD980AE3D7689A45EDD54A2DF28B1943E0E7DB</strong>
+ <weak>941210061</weak>
+ <size>8706</size>
+ <position>487</position>
+ <strong>E23085202D084CBB50F289988A6A592F06D923B77D0AB25D7A98A7188DF5BE3B</strong>
+ <weak>1414247481</weak>
+ <size>766</size>
+ <position>7370</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>error_info</string>
+ <string>current_exception</string>
                                                                                                                         </title>
                                                                                                                         <file_name>
                                                                                                                                 <string></string>
@@ -874,29 +887,25 @@
                                                                                                                                 <hook>
                                                                                                                                         <stream_hook_path>
                                                                                                                                                 <container>
- <size>2</size>
- <strong>35F026FF4EC46450D19A8F970D6E39B881DA6B0FC2E95774CCADC5E34C9D57F1</strong>
- <weak>1990614462</weak>
- <size>6369</size>
- <position>737</position>
- <strong>C5A5927411FB16BB27418CF87226A27D6EC66958BD46DC87F97E571CB492E49D</strong>
- <weak>2066106304</weak>
- <size>261</size>
- <position>1449</position>
+ <size>1</size>
+ <strong>17FF6C63843EE64ED66CB038DD95B4C4D6BA1B0FD36B27BEFD84A909161D2853</strong>
+ <weak>1237535165</weak>
+ <size>231</size>
+ <position>1171</position>
                                                                                                                                                 </container>
                                                                                                                                         </stream_hook_path>
                                                                                                                                 </hook>
                                                                                                                                 <file>
                                                                                                                                         <path>
                                                                                                                                                 <empty>0</empty>
- <string>../../../../boost/exception/info.hpp</string>
+ <string>../../../../boost/throw_exception.hpp</string>
                                                                                                                                                 <type>0</type>
                                                                                                                                                 <base>0</base>
                                                                                                                                         </path>
                                                                                                                                 </file>
                                                                                                                         </hook>
                                                                                                                         <title>
- <string>operator&lt;&lt;/exception</string>
+ <string>BOOST_THROW_EXCEPTION</string>
                                                                                                                         </title>
                                                                                                                         <file_name>
                                                                                                                                 <string></string>
@@ -907,7 +916,7 @@
                                                                                                 <container>
                                                                                                         <size>1</size>
                                                                                                         <variant>2</variant>
- <string>(:include include:)&#10;(:auto also:)&#10;</string>
+ <string>(:include include:)&#10;(:pagelist link=&quot;backlink&quot;:)&#10;</string>
                                                                                                 </container>
                                                                                         </pair>
                                                                                         <pair>
@@ -923,32 +932,28 @@
                                                                                                                                 <hook>
                                                                                                                                         <stream_hook_path>
                                                                                                                                                 <container>
- <size>2</size>
- <strong>F7633FDCF6615C0199645701EE6E7ACE5CBCD7A7CF6838573791E91ABB3C09F2</strong>
- <weak>1668435395</weak>
- <size>1332</size>
- <position>396</position>
- <strong>A1F443AF571973A12005D2F7D4AE09A32AAF686FEEAE272EC21512A65EB943E8</strong>
- <weak>3879093659</weak>
- <size>1300</size>
- <position>26</position>
+ <size>1</size>
+ <strong>265AFB67CCEF87EC9B58DB910ED23C0B1A5546C44767E2FFD6829ABADAF4828B</strong>
+ <weak>1235989793</weak>
+ <size>1632</size>
+ <position>323</position>
                                                                                                                                                 </container>
                                                                                                                                         </stream_hook_path>
                                                                                                                                 </hook>
                                                                                                                                 <file>
                                                                                                                                         <path>
                                                                                                                                                 <empty>0</empty>
- <string>../../../../boost/exception/info_tuple.hpp</string>
+ <string>../../../../boost/exception/diagnostic_information.hpp</string>
                                                                                                                                                 <type>0</type>
                                                                                                                                                 <base>0</base>
                                                                                                                                         </path>
                                                                                                                                 </file>
                                                                                                                         </hook>
                                                                                                                         <title>
- <string>operator&lt;&lt;/tuple</string>
+ <string>boost/exception/diagnostic_information.hpp</string>
                                                                                                                         </title>
                                                                                                                         <file_name>
- <string></string>
+ <string>exception_diagnostic_information_hpp</string>
                                                                                                                         </file_name>
                                                                                                                 </object>
                                                                                                         </shared_ptr>
@@ -973,28 +978,28 @@
                                                                                                                                         <stream_hook_path>
                                                                                                                                                 <container>
                                                                                                                                                         <size>2</size>
- <strong>D1AA2FC554CD67A50917905B0E9CCA2EBC1A9BA97368757B36ADF8419756ECF1</strong>
- <weak>85276724</weak>
- <size>4917</size>
- <position>514</position>
- <strong>9DEEF8ED70BF74F501A96BA5DE5BFD42FAD16DE333ABE189E512C332586FC465</strong>
- <weak>2250569940</weak>
- <size>1893</size>
- <position>2601</position>
+ <strong>8C77439A1F52A50CF8C4131A44CC7FA9CF5E02508CB32C4FF40B565613A396F4</strong>
+ <weak>476106477</weak>
+ <size>3812</size>
+ <position>518</position>
+ <strong>D31BCE814DF5B8B718E7EB67A194AD08EF716A26D422E436596ABA1F145007D8</strong>
+ <weak>4055211476</weak>
+ <size>525</size>
+ <position>3281</position>
                                                                                                                                                 </container>
                                                                                                                                         </stream_hook_path>
                                                                                                                                 </hook>
                                                                                                                                 <file>
                                                                                                                                         <path>
                                                                                                                                                 <empty>0</empty>
- <string>../../../../boost/exception_ptr.hpp</string>
+ <string>../../../../boost/exception/info.hpp</string>
                                                                                                                                                 <type>0</type>
                                                                                                                                                 <base>0</base>
                                                                                                                                         </path>
                                                                                                                                 </file>
                                                                                                                         </hook>
                                                                                                                         <title>
- <string>current_exception</string>
+ <string>exception/operator&lt;&lt;</string>
                                                                                                                         </title>
                                                                                                                         <file_name>
                                                                                                                                 <string></string>
@@ -1021,19 +1026,15 @@
                                                                                                                                 <hook>
                                                                                                                                         <stream_hook_path>
                                                                                                                                                 <container>
- <size>3</size>
- <strong>13F58566E4D9F20B49F3F30B28528AEE562CD709108ADC1AE19A2F01D86C62F4</strong>
- <weak>1430141721</weak>
- <size>2967</size>
- <position>503</position>
- <strong>09CB6839AC1E71887371FB8159C2BFCD273A397C54E07B25CEF2EEF2FA24286A</strong>
- <weak>4111403263</weak>
- <size>1924</size>
- <position>878</position>
- <strong>BAC52AC87CFA3174B3352140A8DC10BB7F48C945FC87787C3AC96F0FC2CFDB40</strong>
- <weak>1066412964</weak>
- <size>165</size>
- <position>57</position>
+ <size>2</size>
+ <strong>A7B38E57D7A0B8823D9FE49F434B6B61D2C300ED96FA97BBAE9CED40660241DF</strong>
+ <weak>882254800</weak>
+ <size>9168</size>
+ <position>323</position>
+ <strong>B4D37C317A3B45825DDA1A8C8B1CE71CC2E530D15090D05995FCBEC4247F49C4</strong>
+ <weak>2742768198</weak>
+ <size>258</size>
+ <position>7305</position>
                                                                                                                                                 </container>
                                                                                                                                         </stream_hook_path>
                                                                                                                                 </hook>
@@ -1047,7 +1048,7 @@
                                                                                                                                 </file>
                                                                                                                         </hook>
                                                                                                                         <title>
- <string>exception::diagnostic_information</string>
+ <string>enable_error_info</string>
                                                                                                                         </title>
                                                                                                                         <file_name>
                                                                                                                                 <string></string>
@@ -1074,32 +1075,28 @@
                                                                                                                                 <hook>
                                                                                                                                         <stream_hook_path>
                                                                                                                                                 <container>
- <size>2</size>
- <strong>05061ED1DD1B33224DE28BF86AB10D99286A48DC055D54A19FF93B36F22E8A90</strong>
- <weak>3225446538</weak>
- <size>372</size>
- <position>408</position>
- <strong>ED09AD72D3766F261A0044B58B9B73AA355EB50B1A8F602E5EE7F68D0D928596</strong>
- <weak>328425570</weak>
- <size>340</size>
- <position>26</position>
+ <size>1</size>
+ <strong>67D64FAD0AB7CA6B2173A14F363D19B27F59EEBDB5C1076F8BCCA1B54D4CCD7D</strong>
+ <weak>2241687287</weak>
+ <size>303</size>
+ <position>323</position>
                                                                                                                                                 </container>
                                                                                                                                         </stream_hook_path>
                                                                                                                                 </hook>
                                                                                                                                 <file>
                                                                                                                                         <path>
                                                                                                                                                 <empty>0</empty>
- <string>../../../../boost/exception/diagnostic_information.hpp</string>
+ <string>../../../../boost/exception.hpp</string>
                                                                                                                                                 <type>0</type>
                                                                                                                                                 <base>0</base>
                                                                                                                                         </path>
                                                                                                                                 </file>
                                                                                                                         </hook>
                                                                                                                         <title>
- <string>diagnostic_information</string>
+ <string>boost/exception.hpp</string>
                                                                                                                         </title>
                                                                                                                         <file_name>
- <string></string>
+ <string>exception_hpp</string>
                                                                                                                         </file_name>
                                                                                                                 </object>
                                                                                                         </shared_ptr>
@@ -1123,48 +1120,34 @@
                                                                                                                                 <hook>
                                                                                                                                         <stream_hook_path>
                                                                                                                                                 <container>
- <size>4</size>
- <strong>13F58566E4D9F20B49F3F30B28528AEE562CD709108ADC1AE19A2F01D86C62F4</strong>
- <weak>1430141721</weak>
- <size>2967</size>
- <position>503</position>
- <strong>09CB6839AC1E71887371FB8159C2BFCD273A397C54E07B25CEF2EEF2FA24286A</strong>
- <weak>4111403263</weak>
- <size>1924</size>
- <position>878</position>
- <strong>85EE1980CFB24E054EDB1B3BDFA61FD4D65AD0EF248A1A42D4C2552700459327</strong>
- <weak>2238151539</weak>
- <size>428</size>
- <position>923</position>
- <strong>AD3F339F7126003907BCBDB3EF846FCACA895132E1100D202DA67D2B7846EE65</strong>
- <weak>3032091776</weak>
- <size>60</size>
- <position>369</position>
+ <size>1</size>
+ <strong>FC684D0DD5A9732B4130F2AB3DB6E0491D0F523E14B7FB738B2019EA2C7F8717</strong>
+ <weak>2229778754</weak>
+ <size>631</size>
+ <position>319</position>
                                                                                                                                                 </container>
                                                                                                                                         </stream_hook_path>
                                                                                                                                 </hook>
                                                                                                                                 <file>
                                                                                                                                         <path>
                                                                                                                                                 <empty>0</empty>
- <string>../../../../boost/exception/exception.hpp</string>
+ <string>../../example/cloning_2.cpp</string>
                                                                                                                                                 <type>0</type>
                                                                                                                                                 <base>0</base>
                                                                                                                                         </path>
                                                                                                                                 </file>
                                                                                                                         </hook>
                                                                                                                         <title>
- <string>exception::~exception</string>
+ <string>cloning and re-throwing an exception</string>
                                                                                                                         </title>
                                                                                                                         <file_name>
- <string>exception_destructor</string>
+ <string>cloning_and_rethrowing</string>
                                                                                                                         </file_name>
                                                                                                                 </object>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
- <size>1</size>
- <variant>2</variant>
- <string>(:include include:)&#10;(:auto also:)&#10;</string>
+ <size>0</size>
                                                                                                 </container>
                                                                                         </pair>
                                                                                         <pair>
@@ -1180,34 +1163,44 @@
                                                                                                                                 <hook>
                                                                                                                                         <stream_hook_path>
                                                                                                                                                 <container>
- <size>1</size>
- <strong>187BFD2B78A0DD006717B5B06FFD465E2468F521C32A86FB793F7A68AB5417F3</strong>
- <weak>4276724153</weak>
- <size>574</size>
- <position>382</position>
+ <size>3</size>
+ <strong>A7B38E57D7A0B8823D9FE49F434B6B61D2C300ED96FA97BBAE9CED40660241DF</strong>
+ <weak>882254800</weak>
+ <size>9168</size>
+ <position>323</position>
+ <strong>65D35B8A2063883A53E9D0DCC3FF8E5CA3573A58451A653CDE3003FFBEC576D3</strong>
+ <weak>1693870740</weak>
+ <size>2195</size>
+ <position>3720</position>
+ <strong>DA154372D8C23BD9EDC30005CA7959CE686D198891097A837D006B5222F04DE9</strong>
+ <weak>2768248809</weak>
+ <size>143</size>
+ <position>60</position>
                                                                                                                                                 </container>
                                                                                                                                         </stream_hook_path>
                                                                                                                                 </hook>
                                                                                                                                 <file>
                                                                                                                                         <path>
                                                                                                                                                 <empty>0</empty>
- <string>../../example/error_info_1.cpp</string>
+ <string>../../../../boost/exception/exception.hpp</string>
                                                                                                                                                 <type>0</type>
                                                                                                                                                 <base>0</base>
                                                                                                                                         </path>
                                                                                                                                 </file>
                                                                                                                         </hook>
                                                                                                                         <title>
- <string>adding of arbitrary data at the point of the throw</string>
+ <string>exception::exception</string>
                                                                                                                         </title>
                                                                                                                         <file_name>
- <string>adding_data_at_throw</string>
+ <string>exception_constructors</string>
                                                                                                                         </file_name>
                                                                                                                 </object>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
- <size>0</size>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:)&#10;(:auto also:)&#10;</string>
                                                                                                 </container>
                                                                                         </pair>
                                                                                         <pair>
@@ -1223,34 +1216,40 @@
                                                                                                                                 <hook>
                                                                                                                                         <stream_hook_path>
                                                                                                                                                 <container>
- <size>1</size>
- <strong>FC684D0DD5A9732B4130F2AB3DB6E0491D0F523E14B7FB738B2019EA2C7F8717</strong>
- <weak>2229778754</weak>
- <size>631</size>
- <position>319</position>
+ <size>2</size>
+ <strong>439278045C9E304238B86C5BD4DA9CA64630D4CC73D442089068A186A28CA55A</strong>
+ <weak>3686240039</weak>
+ <size>1522</size>
+ <position>433</position>
+ <strong>6FE1F0AF570A010E8FDA1647DE61E0CC3AA979C8A8638722DAACDF8FBC4790D2</strong>
+ <weak>1246830037</weak>
+ <size>1023</size>
+ <position>493</position>
                                                                                                                                                 </container>
                                                                                                                                         </stream_hook_path>
                                                                                                                                 </hook>
                                                                                                                                 <file>
                                                                                                                                         <path>
                                                                                                                                                 <empty>0</empty>
- <string>../../example/cloning_2.cpp</string>
+ <string>../../../../boost/exception/diagnostic_information.hpp</string>
                                                                                                                                                 <type>0</type>
                                                                                                                                                 <base>0</base>
                                                                                                                                         </path>
                                                                                                                                 </file>
                                                                                                                         </hook>
                                                                                                                         <title>
- <string>cloning and re-throwing an exception</string>
+ <string>diagnostic_information</string>
                                                                                                                         </title>
                                                                                                                         <file_name>
- <string>cloning_and_rethrowing</string>
+ <string></string>
                                                                                                                         </file_name>
                                                                                                                 </object>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
- <size>0</size>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:)&#10;(:auto also:)&#10;</string>
                                                                                                 </container>
                                                                                         </pair>
                                                                                         <pair>
@@ -1266,28 +1265,21 @@
                                                                                                                                 <hook>
                                                                                                                                         <stream_hook_path>
                                                                                                                                                 <container>
- <size>1</size>
- <strong>ECAD4A1E70A31D7F87F79F557D107AB0A3C5161CB370139974E08ECAFBE2D32F</strong>
- <weak>1816954312</weak>
- <size>457</size>
- <position>323</position>
+ <size>0</size>
                                                                                                                                                 </container>
                                                                                                                                         </stream_hook_path>
                                                                                                                                 </hook>
                                                                                                                                 <file>
                                                                                                                                         <path>
- <empty>0</empty>
- <string>../../../../boost/exception/diagnostic_information.hpp</string>
- <type>0</type>
- <base>0</base>
+ <empty>1</empty>
                                                                                                                                         </path>
                                                                                                                                 </file>
                                                                                                                         </hook>
                                                                                                                         <title>
- <string>boost/exception/diagnostic_information.hpp</string>
+ <string>transporting of exceptions between threads</string>
                                                                                                                         </title>
                                                                                                                         <file_name>
- <string></string>
+ <string>tutorial_exception_ptr</string>
                                                                                                                         </file_name>
                                                                                                                 </object>
                                                                                                         </shared_ptr>
@@ -1312,35 +1304,33 @@
                                                                                                                                         <stream_hook_path>
                                                                                                                                                 <container>
                                                                                                                                                         <size>1</size>
- <strong>0C00BEB179039380247D771B12C728884E9A3E5B483AC63CD5789852C7A5CC35</strong>
- <weak>2506662970</weak>
- <size>2467</size>
- <position>323</position>
+ <strong>E444EE9697EEADFDE0767E1D0242FC0E70D98E61FB1F0FFA099648DE509B82F3</strong>
+ <weak>94503238</weak>
+ <size>773</size>
+ <position>374</position>
                                                                                                                                                 </container>
                                                                                                                                         </stream_hook_path>
                                                                                                                                 </hook>
                                                                                                                                 <file>
                                                                                                                                         <path>
                                                                                                                                                 <empty>0</empty>
- <string>../../../../boost/exception/enable_error_info.hpp</string>
+ <string>../../example/info_tuple.cpp</string>
                                                                                                                                                 <type>0</type>
                                                                                                                                                 <base>0</base>
                                                                                                                                         </path>
                                                                                                                                 </file>
                                                                                                                         </hook>
                                                                                                                         <title>
- <string>boost/exception/enable_error_info.hpp</string>
+ <string>adding grouped data to exceptions</string>
                                                                                                                         </title>
                                                                                                                         <file_name>
- <string>exception_enable_error_info_hpp</string>
+ <string>grouping_data</string>
                                                                                                                         </file_name>
                                                                                                                 </object>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
- <size>1</size>
- <variant>2</variant>
- <string>(:include include:)&#10;(:auto also:)&#10;</string>
+ <size>0</size>
                                                                                                 </container>
                                                                                         </pair>
                                                                                         <pair>
@@ -1356,28 +1346,32 @@
                                                                                                                                 <hook>
                                                                                                                                         <stream_hook_path>
                                                                                                                                                 <container>
- <size>1</size>
- <strong>CAB4D823BD4720B71E1CA5BE482AC95B42A9E07CD5E08671EA23184635F281A2</strong>
- <weak>3077708282</weak>
- <size>89</size>
- <position>323</position>
+ <size>2</size>
+ <strong>86E1196533E771AEFD141DA43FCD980AE3D7689A45EDD54A2DF28B1943E0E7DB</strong>
+ <weak>941210061</weak>
+ <size>8706</size>
+ <position>487</position>
+ <strong>F86EB07D04CD0D0645080D1121DA899746D0C45137E17E1D9BE605E75396F047</strong>
+ <weak>1983537541</weak>
+ <size>1346</size>
+ <position>148</position>
                                                                                                                                                 </container>
                                                                                                                                         </stream_hook_path>
                                                                                                                                 </hook>
                                                                                                                                 <file>
                                                                                                                                         <path>
                                                                                                                                                 <empty>0</empty>
- <string>../../../../boost/exception/error_info.hpp</string>
+ <string>../../../../boost/exception_ptr.hpp</string>
                                                                                                                                                 <type>0</type>
                                                                                                                                                 <base>0</base>
                                                                                                                                         </path>
                                                                                                                                 </file>
                                                                                                                         </hook>
                                                                                                                         <title>
- <string>boost/exception/error_info.hpp</string>
+ <string>exception_ptr</string>
                                                                                                                         </title>
                                                                                                                         <file_name>
- <string>exception_error_info_value_hpp</string>
+ <string></string>
                                                                                                                         </file_name>
                                                                                                                 </object>
                                                                                                         </shared_ptr>
@@ -1401,28 +1395,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>8F178D422EC1891AEDF90A4DCA7BCEC96D29D1B0A70726C222513D699679F59D</strong>
+ <weak>3253069900</weak>
+ <size>3913</size>
+ <position>525</position>
+ <strong>BB8AF986C96801345719855FEA083AF5684FBC349F6520E150F19A6370019265</strong>
+ <weak>3731478139</weak>
+ <size>686</size>
+ <position>3221</position>
                                                                                                                                                 </container>
                                                                                                                                         </stream_hook_path>
                                                                                                                                 </hook>
                                                                                                                                 <file>
                                                                                                                                         <path>
                                                                                                                                                 <empty>0</empty>
- <string>../../../../boost/exception/info_tuple.hpp</string>
+ <string>../../../../boost/exception/get_error_info.hpp</string>
                                                                                                                                                 <type>0</type>
                                                                                                                                                 <base>0</base>
                                                                                                                                         </path>
                                                                                                                                 </file>
                                                                                                                         </hook>
                                                                                                                         <title>
- <string>boost/exception/info_tuple.hpp</string>
+ <string>get_error_info</string>
                                                                                                                         </title>
                                                                                                                         <file_name>
- <string>exception_error_info_group_hpp</string>
+ <string></string>
                                                                                                                         </file_name>
                                                                                                                 </object>
                                                                                                         </shared_ptr>
@@ -1446,28 +1444,32 @@
                                                                                                                                 <hook>
                                                                                                                                         <stream_hook_path>
                                                                                                                                                 <container>
- <size>1</size>
- <strong>07959353ADCC10CF96D16F87F2D01195D75C3A6A2A797513ED3DDFA2F80E2E09</strong>
- <weak>303643772</weak>
- <size>1838</size>
- <position>91</position>
+ <size>2</size>
+ <strong>126BB1D8971585CBE7D78EF3C12259D72FD5E973A84626AA9FC3234220A11CAB</strong>
+ <weak>3471702891</weak>
+ <size>969</size>
+ <position>344</position>
+ <strong>A7FD310E1340E103081DA2A7899DA0E213C696C84D52C17ADA09F6942EE97D47</strong>
+ <weak>2978648279</weak>
+ <size>530</size>
+ <position>433</position>
                                                                                                                                                 </container>
                                                                                                                                         </stream_hook_path>
                                                                                                                                 </hook>
                                                                                                                                 <file>
                                                                                                                                         <path>
                                                                                                                                                 <empty>0</empty>
- <string>../../../../boost/throw_exception.hpp</string>
+ <string>../../../../boost/exception/detail/error_info_impl.hpp</string>
                                                                                                                                                 <type>0</type>
                                                                                                                                                 <base>0</base>
                                                                                                                                         </path>
                                                                                                                                 </file>
                                                                                                                         </hook>
                                                                                                                         <title>
- <string>boost/throw_exception.hpp</string>
+ <string>error_info</string>
                                                                                                                         </title>
                                                                                                                         <file_name>
- <string>throw_exception_hpp</string>
+ <string></string>
                                                                                                                         </file_name>
                                                                                                                 </object>
                                                                                                         </shared_ptr>
@@ -1491,44 +1493,34 @@
                                                                                                                                 <hook>
                                                                                                                                         <stream_hook_path>
                                                                                                                                                 <container>
- <size>3</size>
- <strong>13F58566E4D9F20B49F3F30B28528AEE562CD709108ADC1AE19A2F01D86C62F4</strong>
- <weak>1430141721</weak>
- <size>2967</size>
- <position>503</position>
- <strong>09CB6839AC1E71887371FB8159C2BFCD273A397C54E07B25CEF2EEF2FA24286A</strong>
- <weak>4111403263</weak>
- <size>1924</size>
- <position>878</position>
- <strong>BACD79DFB4C710C1A67687FC6344DF2251E2379613C2DF5B2729B2CD37E24EA3</strong>
- <weak>458367129</weak>
- <size>154</size>
- <position>246</position>
+ <size>1</size>
+ <strong>187BFD2B78A0DD006717B5B06FFD465E2468F521C32A86FB793F7A68AB5417F3</strong>
+ <weak>4276724153</weak>
+ <size>574</size>
+ <position>382</position>
                                                                                                                                                 </container>
                                                                                                                                         </stream_hook_path>
                                                                                                                                 </hook>
                                                                                                                                 <file>
                                                                                                                                         <path>
                                                                                                                                                 <empty>0</empty>
- <string>../../../../boost/exception/exception.hpp</string>
+ <string>../../example/error_info_1.cpp</string>
                                                                                                                                                 <type>0</type>
                                                                                                                                                 <base>0</base>
                                                                                                                                         </path>
                                                                                                                                 </file>
                                                                                                                         </hook>
                                                                                                                         <title>
- <string>exception::exception</string>
+ <string>adding of arbitrary data at the point of the throw</string>
                                                                                                                         </title>
                                                                                                                         <file_name>
- <string>exception_constructors</string>
+ <string>adding_data_at_throw</string>
                                                                                                                         </file_name>
                                                                                                                 </object>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
- <size>1</size>
- <variant>2</variant>
- <string>(:include include:)&#10;(:auto also:)&#10;</string>
+ <size>0</size>
                                                                                                 </container>
                                                                                         </pair>
                                                                                         <pair>
@@ -1544,32 +1536,28 @@
                                                                                                                                 <hook>
                                                                                                                                         <stream_hook_path>
                                                                                                                                                 <container>
- <size>2</size>
- <strong>D1AA2FC554CD67A50917905B0E9CCA2EBC1A9BA97368757B36ADF8419756ECF1</strong>
- <weak>85276724</weak>
- <size>4917</size>
- <position>514</position>
- <strong>A098B6FA5BC8E72E0E69C0323195FCC142AE807564C6892FCBD88588F2FBE049</strong>
- <weak>2579522516</weak>
- <size>405</size>
- <position>26</position>
+ <size>1</size>
+ <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_ptr.hpp</string>
+ <string>../../example/enable_error_info.cpp</string>
                                                                                                                                                 <type>0</type>
                                                                                                                                                 <base>0</base>
                                                                                                                                         </path>
                                                                                                                                 </file>
                                                                                                                         </hook>
                                                                                                                         <title>
- <string>unknown_exception</string>
+ <string>integrating boost exception in existing exception class hierarchies</string>
                                                                                                                         </title>
                                                                                                                         <file_name>
- <string></string>
+ <string>tutorial_enable_error_info</string>
                                                                                                                         </file_name>
                                                                                                                 </object>
                                                                                                         </shared_ptr>
@@ -1594,28 +1582,28 @@
                                                                                                                                         <stream_hook_path>
                                                                                                                                                 <container>
                                                                                                                                                         <size>2</size>
- <strong>FA5027D9799B8059059C23397F469D6EF6328DC23E92E0BE0FF5BE019A576174</strong>
- <weak>1806359597</weak>
- <size>3234</size>
- <position>506</position>
- <strong>DF9EA87B0140AACF4422F1B76F6A6A409C15F32858BBBA85A35981A824C56BA9</strong>
- <weak>1137981799</weak>
- <size>192</size>
- <position>3036</position>
+ <strong>612485E090D76B2CC43C1A296F813075BA165C2496082E78E939F10B3DA8E09A</strong>
+ <weak>1770110914</weak>
+ <size>587</size>
+ <position>1482</position>
+ <strong>60F3F48B87487FA6E0D2CCC0750AF435CC92CEC80BBBF609AC71295031AADD0D</strong>
+ <weak>3929437933</weak>
+ <size>361</size>
+ <position>213</position>
                                                                                                                                                 </container>
                                                                                                                                         </stream_hook_path>
                                                                                                                                 </hook>
                                                                                                                                 <file>
                                                                                                                                         <path>
                                                                                                                                                 <empty>0</empty>
- <string>../../../../boost/exception/enable_current_exception.hpp</string>
+ <string>../../../../boost/throw_exception.hpp</string>
                                                                                                                                                 <type>0</type>
                                                                                                                                                 <base>0</base>
                                                                                                                                         </path>
                                                                                                                                 </file>
                                                                                                                         </hook>
                                                                                                                         <title>
- <string>enable_current_exception</string>
+ <string>throw_exception</string>
                                                                                                                         </title>
                                                                                                                         <file_name>
                                                                                                                                 <string></string>
@@ -1653,10 +1641,10 @@
                                                                                                                                 </file>
                                                                                                                         </hook>
                                                                                                                         <title>
- <string>Index</string>
+ <string>transporting of arbitrary data to the catch site</string>
                                                                                                                         </title>
                                                                                                                         <file_name>
- <string>name_idx</string>
+ <string>tutorial_transporting_data</string>
                                                                                                                         </file_name>
                                                                                                                 </object>
                                                                                                         </shared_ptr>
@@ -1664,7 +1652,7 @@
                                                                                                 <container>
                                                                                                         <size>1</size>
                                                                                                         <variant>2</variant>
- <string>(:auto !:)&#10;&#10;(:pagelist fmt=&quot;index&quot; except_tags=&quot;index,noindex&quot; mod=&quot;w&quot;:)&#10;</string>
+ <string>(:include include:)&#10;(:auto also:)&#10;</string>
                                                                                                 </container>
                                                                                         </pair>
                                                                                         <pair>
@@ -1680,32 +1668,28 @@
                                                                                                                                 <hook>
                                                                                                                                         <stream_hook_path>
                                                                                                                                                 <container>
- <size>2</size>
- <strong>7ACC4E316D4EDB3EC7AEC35FED3ADB47DDF75D575028D7BCD11C5233E4F4A277</strong>
- <weak>4268848542</weak>
- <size>2333</size>
- <position>457</position>
- <strong>61DE70107961C0B9A65674017F91FF85190CF84B4F3B0CA7AC04A7E16DE80B37</strong>
- <weak>3187961206</weak>
- <size>2301</size>
- <position>26</position>
+ <size>1</size>
+ <strong>7116AEECEA666794E31DC99390ADEC1BA6AF74B2398067A0739767B4B76FA97A</strong>
+ <weak>4128134227</weak>
+ <size>307</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>enable_error_info</string>
+ <string>diagnostic information</string>
                                                                                                                         </title>
                                                                                                                         <file_name>
- <string></string>
+ <string>tutorial_diagnostic_information</string>
                                                                                                                         </file_name>
                                                                                                                 </object>
                                                                                                         </shared_ptr>
@@ -1729,21 +1713,32 @@
                                                                                                                                 <hook>
                                                                                                                                         <stream_hook_path>
                                                                                                                                                 <container>
- <size>0</size>
+ <size>2</size>
+ <strong>A7B38E57D7A0B8823D9FE49F434B6B61D2C300ED96FA97BBAE9CED40660241DF</strong>
+ <weak>882254800</weak>
+ <size>9168</size>
+ <position>323</position>
+ <strong>65D35B8A2063883A53E9D0DCC3FF8E5CA3573A58451A653CDE3003FFBEC576D3</strong>
+ <weak>1693870740</weak>
+ <size>2195</size>
+ <position>3720</position>
                                                                                                                                                 </container>
                                                                                                                                         </stream_hook_path>
                                                                                                                                 </hook>
                                                                                                                                 <file>
                                                                                                                                         <path>
- <empty>1</empty>
+ <empty>0</empty>
+ <string>../../../../boost/exception/exception.hpp</string>
+ <type>0</type>
+ <base>0</base>
                                                                                                                                         </path>
                                                                                                                                 </file>
                                                                                                                         </hook>
                                                                                                                         <title>
- <string>transporting of exceptions between threads</string>
+ <string>exception</string>
                                                                                                                         </title>
                                                                                                                         <file_name>
- <string>tutorial_exception_ptr</string>
+ <string></string>
                                                                                                                         </file_name>
                                                                                                                 </object>
                                                                                                         </shared_ptr>
@@ -1751,7 +1746,7 @@
                                                                                                 <container>
                                                                                                         <size>1</size>
                                                                                                         <variant>2</variant>
- <string>(:include include:)&#10;(:auto also:)&#10;</string>
+ <string>(:include include:)&#10;----&#10;!!!See Also:&#10;&#10;(:pagelist link=&quot;backlink&quot; except_tags=&quot;exception,member&quot; mod=&quot;w&quot;:)&#10;</string>
                                                                                                 </container>
                                                                                         </pair>
                                                                                         <pair>
@@ -1767,6 +1762,49 @@
                                                                                                                                 <hook>
                                                                                                                                         <stream_hook_path>
                                                                                                                                                 <container>
+ <size>1</size>
+ <strong>4ED9709788BBAB4DE7CF336561606B8C0B41F70877A3395F4EE026F4AEB66CC6</strong>
+ <weak>743998427</weak>
+ <size>409</size>
+ <position>307</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../example/cloning_1.cpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>using enable_current_exception at the time of the throw</string>
+ </title>
+ <file_name>
+ <string>using_enable_cloning</string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>43</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
                                                                                                                                                         <size>0</size>
                                                                                                                                                 </container>
                                                                                                                                         </stream_hook_path>
@@ -1787,14 +1825,14 @@
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
- <size>113</size>
+ <size>117</size>
                                                                                                         <variant>2</variant>
                                                                                                         <string>!!Introduction&#10;&#10;The purpose of Boost Exception is to ease the design of exception class hierarchies and to help write exception handling and error reporting code.&#10;&#10;It supports transporting of arbitrary data to the catch site, which is otherwise tricky due to the no-throw requirements (15.5.1) for exception types. Data can be added to any exception object, either directly in the throw-expression (15.1), or at a later time as the exception object propagates up the call stack.&#10;&#10;The ability to add data to exception objects after they have been passed to throw is important, because often some of the information needed to handle an exception is unavailable in the context where the failure is detected. &#10;&#10;Boost Exception also supports (:link http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2179.html|N2179:)-style (:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-41</id>
+ <id>-31</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
@@ -1803,43 +1841,7 @@
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>43</id>
- <type>
- <string>reno_context</string>
- </type>
- <object>
- <hook>
- <hook>
- <stream_hook_path>
- <container>
- <size>2</size>
- <strong>612485E090D76B2CC43C1A296F813075BA165C2496082E78E939F10B3DA8E09A</strong>
- <weak>1770110914</weak>
- <size>587</size>
- <position>1322</position>
- <strong>60F3F48B87487FA6E0D2CCC0750AF435CC92CEC80BBBF609AC71295031AADD0D</strong>
- <weak>3929437933</weak>
- <size>361</size>
- <position>213</position>
- </container>
- </stream_hook_path>
- </hook>
- <file>
- <path>
- <empty>0</empty>
- <string>../../../../boost/throw_exception.hpp</string>
- <type>0</type>
- <base>0</base>
- </path>
- </file>
- </hook>
- <title>
- <string>throw_exception</string>
- </title>
- <file_name>
- <string></string>
- </file_name>
- </object>
+ <id>-38</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
@@ -1848,7 +1850,7 @@
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-18</id>
+ <id>-39</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
@@ -1857,7 +1859,7 @@
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-19</id>
+ <id>-37</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
@@ -1866,7 +1868,7 @@
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-41</id>
+ <id>-31</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
@@ -1875,7 +1877,7 @@
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-16</id>
+ <id>-40</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
@@ -1884,7 +1886,7 @@
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-15</id>
+ <id>-41</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
@@ -1893,16 +1895,7 @@
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-22</id>
- </shared_ptr>
- </weak_ptr>
- <variant>2</variant>
- <string>:)&#10;###(:link </string>
- <variant>1</variant>
- <weak_ptr>
- <expired>0</expired>
- <shared_ptr>
- <id>-23</id>
+ <id>-35</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
@@ -1911,7 +1904,7 @@
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-24</id>
+ <id>-25</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
@@ -1920,7 +1913,7 @@
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-7</id>
+ <id>-6</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
@@ -1929,7 +1922,7 @@
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-40</id>
+ <id>-34</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
@@ -1938,7 +1931,7 @@
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-10</id>
+ <id>-26</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
@@ -1947,7 +1940,7 @@
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-6</id>
+ <id>-33</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
@@ -1956,7 +1949,7 @@
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-38</id>
+ <id>-13</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
@@ -1965,7 +1958,7 @@
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-25</id>
+ <id>-22</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
@@ -1983,7 +1976,7 @@
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-5</id>
+ <id>-15</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
@@ -1992,7 +1985,7 @@
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-37</id>
+ <id>-7</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
@@ -2001,7 +1994,7 @@
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-27</id>
+ <id>-30</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
@@ -2010,34 +2003,34 @@
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-43</id>
+ <id>-38</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:)&#10;##Headers&#10;###(:link </string>
+ <string>:), (:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-17</id>
+ <id>-23</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:)&#10;###(:link </string>
+ <string>:)&#10;##(:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-31</id>
+ <id>-5</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:)&#10;###(:link </string>
+ <string> mod=&quot;w&quot;:)&#10;##Headers&#10;###(:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-13</id>
+ <id>-27</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
@@ -2046,7 +2039,7 @@
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-32</id>
+ <id>-24</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
@@ -2055,7 +2048,7 @@
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-33</id>
+ <id>-20</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
@@ -2064,7 +2057,7 @@
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-8</id>
+ <id>-21</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
@@ -2073,7 +2066,7 @@
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-20</id>
+ <id>-12</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
@@ -2082,7 +2075,7 @@
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-34</id>
+ <id>-8</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
@@ -2091,7 +2084,7 @@
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-9</id>
+ <id>-16</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
@@ -2100,61 +2093,86 @@
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-35</id>
- </shared_ptr>
- </weak_ptr>
- <variant>2</variant>
- <string>:)&#10;#(:link </string>
- <variant>1</variant>
- <weak_ptr>
- <expired>0</expired>
- <shared_ptr>
- <id>-39</id>
+ <id>-19</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:)&#10;&#10;&#10;!!Synopsis&#10;&#10;`#include &lt;(:link </string>
+ <string>:)&#10;###(:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-17</id>
+ <id>-10</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:)&gt;&#10;&#10;[@namespace&#10;boost&#10; {&#10;(:include </string>
+ <string>:)&#10;###(:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-8</id>
+ <id>-9</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string> api pre_indent=&quot;4&quot;:)&#10;&#10;(:include </string>
+ <string>:)&#10;###(:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-20</id>
+ <id>-11</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string> api pre_indent=&quot;4&quot;:)&#10;&#10;(:include </string>
+ <string>:)&#10;#(:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-34</id>
+ <id>44</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>0</size>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>1</empty>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>Index</string>
+ </title>
+ <file_name>
+ <string>name_idx</string>
+ </file_name>
+ </object>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string> api pre_indent=&quot;4&quot;:)&#10;&#10;(:include </string>
+ <string>:)&#10;&#10;!!Synopsis&#10;&#10;`#include &lt;(:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-32</id>
+ <id>-27</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)&gt;&#10;&#10;[@namespace&#10;boost&#10; {&#10;(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-8</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
@@ -2163,7 +2181,7 @@
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-31</id>
+ <id>-19</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
@@ -2172,7 +2190,7 @@
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-9</id>
+ <id>-10</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
@@ -2181,7 +2199,7 @@
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-13</id>
+ <id>-21</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
@@ -2190,74 +2208,74 @@
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-35</id>
+ <id>-24</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string> api pre_indent=&quot;4&quot;:)&#10; }@]&#10;&#10;!!Class exception&#10;&#10;(:include </string>
+ <string> api pre_indent=&quot;4&quot;:)&#10;&#10;(:include </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-15</id>
+ <id>-9</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:)&#10;&#10;!!Transporting of Arbitrary Data to the Catch Site&#10;&#10;(:include </string>
+ <string> api pre_indent=&quot;4&quot;:)&#10;&#10;(:include </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-22</id>
+ <id>-20</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:)&#10;(:include </string>
+ <string> api pre_indent=&quot;4&quot;:)&#10; }@]&#10;&#10;`#include &lt;(:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-23</id>
+ <id>-11</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:)&#10;(:include </string>
+ <string>:)&gt;&#10;&#10;[@(:include </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-24</id>
+ <id>-11</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:)&#10;(:include </string>
+ <string> api:)@]&#10;&#10;!!Class exception&#10;&#10;&#10;(:include </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-7</id>
+ <id>-41</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:)&#10;(:include </string>
+ <string>:)&#10;&#10;&#10;!!Transporting of Arbitrary Data to the Catch Site&#10;&#10;&#10;(:include </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-40</id>
+ <id>-35</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:)&#10;(:include </string>
+ <string>:)&#10;&#10;(:include </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-10</id>
+ <id>-25</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:)&#10;!!Transporting of Exceptions between Threads&#10;&#10;(:include </string>
+ <string>:)&#10;&#10;(:include </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
@@ -2266,25 +2284,52 @@
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:)&#10;(:include </string>
+ <string>:)&#10;&#10;(:include </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-38</id>
+ <id>-34</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:)&#10;(:include </string>
+ <string>:)&#10;&#10;(:include </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-25</id>
+ <id>-26</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:)&#10;(:include </string>
+ <string>:)&#10;&#10;&#10;!!Transporting of Exceptions between Threads&#10;&#10;&#10;(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-33</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)&#10;&#10;(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-13</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)&#10;&#10;(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-22</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)&#10;&#10;(:include </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
@@ -2293,56 +2338,56 @@
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:)&#10;(:include </string>
+ <string>:)&#10;&#10;(:include </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-5</id>
+ <id>-15</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:)&#10;(:include </string>
+ <string>:)&#10;&#10;(:include </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-37</id>
+ <id>-7</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:)&#10;&#10;!!Printing Diagnostic Information&#10;&#10;(:include </string>
+ <string>:)&#10;&#10;&#10;!!Printing Diagnostic Information&#10;&#10;&#10;(:include </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-27</id>
+ <id>-30</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:)&#10;&#10;!!Throwing Exceptions&#10;&#10;(:include </string>
+ <string>:)&#10;&#10;&#10;!!Throwing Exceptions&#10;&#10;&#10;(:include </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-43</id>
+ <id>-38</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:)&#10;</string>
+ <string>:)&#10;&#10;&#10;!!Acknowledgements&#10;&#10;Peter Dimov has been continuously influencing the design and evolution of Boost Exception. Also thanks to Tobias Schwinger, Tom Brinkman, Pavel Vozenilek and everyone who participated in the review process.&#10;</string>
                                                                                                 </container>
                                                                                         </pair>
                                                                                         <pair>
                                                                                                 <weak_ptr>
                                                                                                         <expired>0</expired>
                                                                                                         <shared_ptr>
- <id>-43</id>
+ <id>-44</id>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
                                                                                                         <size>1</size>
                                                                                                         <variant>2</variant>
- <string>(:include include:)&#10;(:auto also:)&#10;</string>
+ <string>(:auto !:)&#10;&#10;(:pagelist fmt=&quot;index&quot; except_tags=&quot;index,noindex&quot; mod=&quot;w&quot;:)&#10;</string>
                                                                                                 </container>
                                                                                         </pair>
                                                                                 </sorted>
@@ -2352,13 +2397,13 @@
                                                         <pair>
                                                                 <string>def</string>
                                                                 <shared_ptr>
- <id>44</id>
+ <id>45</id>
                                                                         <type>
                                                                                 <string>reno_layer</string>
                                                                         </type>
                                                                         <object>
                                                                                 <sorted>
- <size>39</size>
+ <size>40</size>
                                                                                         <pair>
                                                                                                 <weak_ptr>
                                                                                                         <expired>0</expired>
@@ -2477,45 +2522,7 @@
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
- <size>9</size>
- <variant>2</variant>
- <string>[@class&#10;(:link </string>
- <variant>1</variant>
- <weak_ptr>
- <expired>0</expired>
- <shared_ptr>
- <id>-15</id>
- </shared_ptr>
- </weak_ptr>
- <variant>2</variant>
- <string>:)&#10; {&#10; public:&#10;&#10;(:include </string>
- <variant>1</variant>
- <weak_ptr>
- <expired>0</expired>
- <shared_ptr>
- <id>-26</id>
- </shared_ptr>
- </weak_ptr>
- <variant>2</variant>
- <string> decl pre_indent=&quot;4&quot;:)&#10;&#10; protected:&#10;&#10;(:include </string>
- <variant>1</variant>
- <weak_ptr>
- <expired>0</expired>
- <shared_ptr>
- <id>-36</id>
- </shared_ptr>
- </weak_ptr>
- <variant>2</variant>
- <string> decl pre_indent=&quot;4&quot;:)&#10;(:include </string>
- <variant>1</variant>
- <weak_ptr>
- <expired>0</expired>
- <shared_ptr>
- <id>-28</id>
- </shared_ptr>
- </weak_ptr>
- <variant>2</variant>
- <string> decl pre_indent=&quot;4&quot;:)&#10; };@]&#10;</string>
+ <size>0</size>
                                                                                                 </container>
                                                                                         </pair>
                                                                                         <pair>
@@ -2592,18 +2599,7 @@
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
- <size>3</size>
- <variant>2</variant>
- <string>[@template &lt;class Tag,class T&gt;&#10;class&#10;(:link </string>
- <variant>1</variant>
- <weak_ptr>
- <expired>0</expired>
- <shared_ptr>
- <id>-22</id>
- </shared_ptr>
- </weak_ptr>
- <variant>2</variant>
- <string>:)&#10; {&#10; public:&#10;&#10; typedef T value_type;&#10;&#10; error_info( value_type const &amp; );&#10; };@]&#10;</string>
+ <size>0</size>
                                                                                                 </container>
                                                                                         </pair>
                                                                                         <pair>
@@ -2746,7 +2742,18 @@
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
- <size>0</size>
+ <size>3</size>
+ <variant>2</variant>
+ <string>[@template &lt;class Tag,class T&gt;&#10;class&#10;(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-35</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)&#10; {&#10; public:&#10;&#10; typedef T value_type;&#10;&#10; error_info( value_type const &amp; );&#10; };@]&#10;</string>
                                                                                                 </container>
                                                                                         </pair>
                                                                                         <pair>
@@ -2812,7 +2819,36 @@
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
- <size>0</size>
+ <size>7</size>
+ <variant>2</variant>
+ <string>[@class&#10;(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-41</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)&#10; {&#10; protected:&#10;&#10;(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-29</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> decl pre_indent=&quot;4&quot;:)&#10;(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-18</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> decl pre_indent=&quot;4&quot;:)&#10; };@]&#10;</string>
                                                                                                 </container>
                                                                                         </pair>
                                                                                         <pair>
@@ -2837,6 +2873,17 @@
                                                                                                         <size>0</size>
                                                                                                 </container>
                                                                                         </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-44</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
                                                                                 </sorted>
                                                                         </object>
                                                                 </shared_ptr>
@@ -2844,13 +2891,13 @@
                                                         <pair>
                                                                 <string>api</string>
                                                                 <shared_ptr>
- <id>45</id>
+ <id>46</id>
                                                                         <type>
                                                                                 <string>reno_layer</string>
                                                                         </type>
                                                                         <object>
                                                                                 <sorted>
- <size>39</size>
+ <size>40</size>
                                                                                         <pair>
                                                                                                 <weak_ptr>
                                                                                                         <expired>0</expired>
@@ -2892,18 +2939,54 @@
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
- <size>3</size>
+ <size>11</size>
                                                                                                         <variant>2</variant>
                                                                                                         <string>[@(:include </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-15</id>
+ <id>-41</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> def:)&#10;&#10;(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-35</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> decl:)&#10;&#10;typedef (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-35</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)&lt;struct tag_throw_function,char const *&gt; throw_function;&#10;typedef (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-35</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)&lt;struct tag_throw_file,char const *&gt; throw_file;&#10;typedef (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-35</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string> def:)@]&#10;</string>
+ <string>:)&lt;struct tag_throw_line,int&gt; throw_line;@]&#10;</string>
                                                                                                 </container>
                                                                                         </pair>
                                                                                         <pair>
@@ -2921,7 +3004,7 @@
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-37</id>
+ <id>-7</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
@@ -2930,7 +3013,7 @@
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-6</id>
+ <id>-33</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
@@ -2948,7 +3031,7 @@
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-25</id>
+ <id>-22</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
@@ -2957,7 +3040,7 @@
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-5</id>
+ <id>-15</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
@@ -2972,7 +3055,18 @@
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
- <size>0</size>
+ <size>3</size>
+ <variant>2</variant>
+ <string>[@(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-6</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> decl:)@]&#10;</string>
                                                                                                 </container>
                                                                                         </pair>
                                                                                         <pair>
@@ -2983,7 +3077,27 @@
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
- <size>0</size>
+ <size>5</size>
+ <variant>2</variant>
+ <string>[@(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-23</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> decl:)&#10;&#10;namespace&#10;boost&#10; {&#10;(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-38</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> decl:)&#10; }@]&#10;</string>
                                                                                                 </container>
                                                                                         </pair>
                                                                                         <pair>
@@ -2994,17 +3108,6 @@
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
- <size>0</size>
- </container>
- </pair>
- <pair>
- <weak_ptr>
- <expired>0</expired>
- <shared_ptr>
- <id>-13</id>
- </shared_ptr>
- </weak_ptr>
- <container>
                                                                                                         <size>3</size>
                                                                                                         <variant>2</variant>
                                                                                                         <string>[@(:include </string>
@@ -3012,7 +3115,7 @@
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-38</id>
+ <id>-35</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
@@ -3023,6 +3126,17 @@
                                                                                                 <weak_ptr>
                                                                                                         <expired>0</expired>
                                                                                                         <shared_ptr>
+ <id>-13</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
                                                                                                                 <id>-14</id>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
@@ -3049,7 +3163,18 @@
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
- <size>0</size>
+ <size>3</size>
+ <variant>2</variant>
+ <string>[@(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-34</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> decl:)@]&#10;</string>
                                                                                                 </container>
                                                                                         </pair>
                                                                                         <pair>
@@ -3060,61 +3185,144 @@
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
- <size>11</size>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-18</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-19</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>5</size>
                                                                                                         <variant>2</variant>
- <string>[@#include &lt;(:link </string>
+ <string>[@(:include </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-20</id>
+ <id>-35</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:)&gt;&#10;#include &lt;(:link </string>
+ <string> def:)&#10;&#10;(:include </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-34</id>
+ <id>-25</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:)&gt;&#10;#include &lt;(:link </string>
+ <string> decl:)@]&#10;</string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-20</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>[@(:include </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-31</id>
+ <id>-13</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:)&gt;&#10;#include &lt;(:link </string>
+ <string> decl:)@]&#10;</string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-21</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>[@(:include </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-9</id>
+ <id>-26</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:)&gt;&#10;#include &lt;(:link </string>
+ <string> decl:)@]&#10;</string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-22</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-23</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </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>[@(:include </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>:)&gt;@]&#10;</string>
+ <string> decl:)@]&#10;</string>
                                                                                                 </container>
                                                                                         </pair>
                                                                                         <pair>
                                                                                                 <weak_ptr>
                                                                                                         <expired>0</expired>
                                                                                                         <shared_ptr>
- <id>-18</id>
+ <id>-25</id>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
@@ -3125,7 +3333,7 @@
                                                                                                 <weak_ptr>
                                                                                                         <expired>0</expired>
                                                                                                         <shared_ptr>
- <id>-19</id>
+ <id>-26</id>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
@@ -3136,31 +3344,58 @@
                                                                                                 <weak_ptr>
                                                                                                         <expired>0</expired>
                                                                                                         <shared_ptr>
- <id>-20</id>
+ <id>-27</id>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
- <size>9</size>
+ <size>15</size>
                                                                                                         <variant>2</variant>
- <string>[@(:include </string>
+ <string>[@#include &lt;(:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-22</id>
+ <id>-24</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string> def:)&#10;&#10;(:include </string>
+ <string>:)&gt;&#10;#include &lt;(:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-7</id>
+ <id>-12</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string> decl:)&#10;&#10;(:include </string>
+ <string>:)&gt;&#10;#include &lt;(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-8</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)&gt;&#10;#include &lt;(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-16</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)&gt;&#10;#include &lt;(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-19</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)&gt;&#10;#include &lt;(:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
@@ -3169,23 +3404,23 @@
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string> decl:)&#10;&#10;(:include </string>
+ <string>:)&gt;&#10;#include &lt;(:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-23</id>
+ <id>-9</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string> decl:)@]&#10;</string>
+ <string>:)&gt;@]&#10;</string>
                                                                                                 </container>
                                                                                         </pair>
                                                                                         <pair>
                                                                                                 <weak_ptr>
                                                                                                         <expired>0</expired>
                                                                                                         <shared_ptr>
- <id>-21</id>
+ <id>-28</id>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
@@ -3196,7 +3431,7 @@
                                                                                                 <weak_ptr>
                                                                                                         <expired>0</expired>
                                                                                                         <shared_ptr>
- <id>-22</id>
+ <id>-29</id>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
@@ -3207,7 +3442,7 @@
                                                                                                 <weak_ptr>
                                                                                                         <expired>0</expired>
                                                                                                         <shared_ptr>
- <id>-23</id>
+ <id>-30</id>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
@@ -3218,7 +3453,7 @@
                                                                                                 <weak_ptr>
                                                                                                         <expired>0</expired>
                                                                                                         <shared_ptr>
- <id>-24</id>
+ <id>-31</id>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
@@ -3229,7 +3464,7 @@
                                                                                                 <weak_ptr>
                                                                                                         <expired>0</expired>
                                                                                                         <shared_ptr>
- <id>-25</id>
+ <id>-32</id>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
@@ -3240,7 +3475,7 @@
                                                                                                 <weak_ptr>
                                                                                                         <expired>0</expired>
                                                                                                         <shared_ptr>
- <id>-26</id>
+ <id>-33</id>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
@@ -3251,7 +3486,7 @@
                                                                                                 <weak_ptr>
                                                                                                         <expired>0</expired>
                                                                                                         <shared_ptr>
- <id>-27</id>
+ <id>-34</id>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
@@ -3262,7 +3497,7 @@
                                                                                                 <weak_ptr>
                                                                                                         <expired>0</expired>
                                                                                                         <shared_ptr>
- <id>-28</id>
+ <id>-35</id>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
@@ -3273,7 +3508,7 @@
                                                                                                 <weak_ptr>
                                                                                                         <expired>0</expired>
                                                                                                         <shared_ptr>
- <id>-29</id>
+ <id>-36</id>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
@@ -3284,7 +3519,7 @@
                                                                                                 <weak_ptr>
                                                                                                         <expired>0</expired>
                                                                                                         <shared_ptr>
- <id>-30</id>
+ <id>-37</id>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
@@ -3295,128 +3530,7 @@
                                                                                                 <weak_ptr>
                                                                                                         <expired>0</expired>
                                                                                                         <shared_ptr>
- <id>-31</id>
- </shared_ptr>
- </weak_ptr>
- <container>
- <size>3</size>
- <variant>2</variant>
- <string>[@(:include </string>
- <variant>1</variant>
- <weak_ptr>
- <expired>0</expired>
- <shared_ptr>
- <id>-27</id>
- </shared_ptr>
- </weak_ptr>
- <variant>2</variant>
- <string> decl:)@]&#10;</string>
- </container>
- </pair>
- <pair>
- <weak_ptr>
- <expired>0</expired>
- <shared_ptr>
- <id>-32</id>
- </shared_ptr>
- </weak_ptr>
- <container>
- <size>3</size>
- <variant>2</variant>
- <string>[@(:include </string>
- <variant>1</variant>
- <weak_ptr>
- <expired>0</expired>
- <shared_ptr>
- <id>-40</id>
- </shared_ptr>
- </weak_ptr>
- <variant>2</variant>
- <string> decl:)@]&#10;</string>
- </container>
- </pair>
- <pair>
- <weak_ptr>
- <expired>0</expired>
- <shared_ptr>
- <id>-33</id>
- </shared_ptr>
- </weak_ptr>
- <container>
- <size>3</size>
- <variant>2</variant>
- <string>[@(:include </string>
- <variant>1</variant>
- <weak_ptr>
- <expired>0</expired>
- <shared_ptr>
- <id>-22</id>
- </shared_ptr>
- </weak_ptr>
- <variant>2</variant>
- <string> decl:)@]&#10;</string>
- </container>
- </pair>
- <pair>
- <weak_ptr>
- <expired>0</expired>
- <shared_ptr>
- <id>-34</id>
- </shared_ptr>
- </weak_ptr>
- <container>
- <size>3</size>
- <variant>2</variant>
- <string>[@(:include </string>
- <variant>1</variant>
- <weak_ptr>
- <expired>0</expired>
- <shared_ptr>
- <id>-24</id>
- </shared_ptr>
- </weak_ptr>
- <variant>2</variant>
- <string> decl:)@]&#10;</string>
- </container>
- </pair>
- <pair>
- <weak_ptr>
- <expired>0</expired>
- <shared_ptr>
- <id>-35</id>
- </shared_ptr>
- </weak_ptr>
- <container>
- <size>3</size>
- <variant>2</variant>
- <string>[@(:include </string>
- <variant>1</variant>
- <weak_ptr>
- <expired>0</expired>
- <shared_ptr>
- <id>-43</id>
- </shared_ptr>
- </weak_ptr>
- <variant>2</variant>
- <string> decl:)@]&#10;</string>
- </container>
- </pair>
- <pair>
- <weak_ptr>
- <expired>0</expired>
- <shared_ptr>
- <id>-36</id>
- </shared_ptr>
- </weak_ptr>
- <container>
- <size>0</size>
- </container>
- </pair>
- <pair>
- <weak_ptr>
- <expired>0</expired>
- <shared_ptr>
- <id>-37</id>
+ <id>-38</id>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
@@ -3427,7 +3541,7 @@
                                                                                                 <weak_ptr>
                                                                                                         <expired>0</expired>
                                                                                                         <shared_ptr>
- <id>-38</id>
+ <id>-39</id>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
@@ -3438,7 +3552,7 @@
                                                                                                 <weak_ptr>
                                                                                                         <expired>0</expired>
                                                                                                         <shared_ptr>
- <id>-39</id>
+ <id>-40</id>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
@@ -3449,7 +3563,7 @@
                                                                                                 <weak_ptr>
                                                                                                         <expired>0</expired>
                                                                                                         <shared_ptr>
- <id>-40</id>
+ <id>-41</id>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
@@ -3460,7 +3574,7 @@
                                                                                                 <weak_ptr>
                                                                                                         <expired>0</expired>
                                                                                                         <shared_ptr>
- <id>-41</id>
+ <id>-42</id>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
@@ -3471,7 +3585,7 @@
                                                                                                 <weak_ptr>
                                                                                                         <expired>0</expired>
                                                                                                         <shared_ptr>
- <id>-42</id>
+ <id>-43</id>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
@@ -3482,7 +3596,7 @@
                                                                                                 <weak_ptr>
                                                                                                         <expired>0</expired>
                                                                                                         <shared_ptr>
- <id>-43</id>
+ <id>-44</id>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
@@ -3496,13 +3610,13 @@
                                                         <pair>
                                                                 <string>decl</string>
                                                                 <shared_ptr>
- <id>46</id>
+ <id>47</id>
                                                                         <type>
                                                                                 <string>reno_layer</string>
                                                                         </type>
                                                                         <object>
                                                                                 <sorted>
- <size>39</size>
+ <size>40</size>
                                                                                         <pair>
                                                                                                 <weak_ptr>
                                                                                                         <expired>0</expired>
@@ -3511,49 +3625,47 @@
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
- <size>5</size>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-6</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>7</size>
                                                                                                         <variant>2</variant>
- <string>[@void (:link </string>
+ <string>[@template &lt;class E, class Tag1, class T1, ..., class TagN, class TN&gt;&#10;E const &amp; (:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-5</id>
+ <id>-6</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:)( (:link </string>
+ <string> mod=&quot;/&quot;:)( E const &amp; x,&#10; (:link http://www.boost.org/libs/tuple/doc/tuple_users_guide.html|tuple:)&lt;&#10; (:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-6</id>
+ <id>-35</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:) const &amp; ep );</string>
- </container>
- </pair>
- <pair>
- <weak_ptr>
- <expired>0</expired>
- <shared_ptr>
- <id>-6</id>
- </shared_ptr>
- </weak_ptr>
- <container>
- <size>3</size>
- <variant>2</variant>
- <string>[@typedef ---unspecified--- (:link </string>
+ <string>:)&lt;Tag1,T1&gt;,&#10; ...,&#10; (:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-6</id>
+ <id>-35</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:);@]&#10;</string>
+ <string>:)&lt;TagN,TN&gt; &gt; const &amp; v );@]&#10;</string>
                                                                                                 </container>
                                                                                         </pair>
                                                                                         <pair>
@@ -3564,9 +3676,9 @@
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
- <size>3</size>
+ <size>5</size>
                                                                                                         <variant>2</variant>
- <string>[@template &lt;class ErrorInfo,class E&gt;&#10;(:link http://www.boost.org/libs/smart_ptr/shared_ptr.htm|shared_ptr:)&lt;typename ErrorInfo::value_type const&gt; (:link </string>
+ <string>[@class&#10;(:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
@@ -3575,7 +3687,16 @@
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:)( E const &amp; x );@]&#10;</string>
+ <string>:):&#10; public std::exception&#10; public boost::</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-41</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>&#10; {&#10; ---unspecified---&#10; };@]&#10;</string>
                                                                                                 </container>
                                                                                         </pair>
                                                                                         <pair>
@@ -3608,45 +3729,7 @@
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
- <size>9</size>
- <variant>2</variant>
- <string>[@typedef (:link </string>
- <variant>1</variant>
- <weak_ptr>
- <expired>0</expired>
- <shared_ptr>
- <id>-22</id>
- </shared_ptr>
- </weak_ptr>
- <variant>2</variant>
- <string>:)&lt;struct tag_throw_function,char const *&gt; throw_function;&#10;typedef (:link </string>
- <variant>1</variant>
- <weak_ptr>
- <expired>0</expired>
- <shared_ptr>
- <id>-22</id>
- </shared_ptr>
- </weak_ptr>
- <variant>2</variant>
- <string>:)&lt;struct tag_throw_file,char const *&gt; throw_file;&#10;typedef (:link </string>
- <variant>1</variant>
- <weak_ptr>
- <expired>0</expired>
- <shared_ptr>
- <id>-22</id>
- </shared_ptr>
- </weak_ptr>
- <variant>2</variant>
- <string>:)&lt;struct tag_throw_line,int&gt; throw_line;&#10;&#10;#define (:link </string>
- <variant>1</variant>
- <weak_ptr>
- <expired>0</expired>
- <shared_ptr>
- <id>-10</id>
- </shared_ptr>
- </weak_ptr>
- <variant>2</variant>
- <string>:)\&#10; ::boost::throw_function(BOOST_CURRENT_FUNCTION) &lt;&lt;\&#10; ::boost::throw_file(__FILE__) &lt;&lt;\&#10; ::boost::throw_line((int)__LINE__)@]&#10;</string>
+ <size>0</size>
                                                                                                 </container>
                                                                                         </pair>
                                                                                         <pair>
@@ -3679,7 +3762,18 @@
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
- <size>0</size>
+ <size>3</size>
+ <variant>2</variant>
+ <string>[@template &lt;class T&gt;&#10;---unspecified--- (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-13</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)( T const &amp; e );@]&#10;</string>
                                                                                                 </container>
                                                                                         </pair>
                                                                                         <pair>
@@ -3697,7 +3791,7 @@
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-6</id>
+ <id>-33</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
@@ -3721,9 +3815,9 @@
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
- <size>3</size>
+ <size>5</size>
                                                                                                         <variant>2</variant>
- <string>[@class </string>
+ <string>[@void (:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
@@ -3732,7 +3826,16 @@
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>;@]&#10;</string>
+ <string>:)( (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-33</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:) const &amp; ep );</string>
                                                                                                 </container>
                                                                                         </pair>
                                                                                         <pair>
@@ -3765,25 +3868,25 @@
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
- <size>0</size>
- </container>
- </pair>
- <pair>
- <weak_ptr>
- <expired>0</expired>
- <shared_ptr>
- <id>-19</id>
- </shared_ptr>
- </weak_ptr>
- <container>
- <size>0</size>
+ <size>3</size>
+ <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> mod=&quot;m&quot;:)();@]&#10;</string>
                                                                                                 </container>
                                                                                         </pair>
                                                                                         <pair>
                                                                                                 <weak_ptr>
                                                                                                         <expired>0</expired>
                                                                                                         <shared_ptr>
- <id>-20</id>
+ <id>-19</id>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
@@ -3794,7 +3897,7 @@
                                                                                                 <weak_ptr>
                                                                                                         <expired>0</expired>
                                                                                                         <shared_ptr>
- <id>-21</id>
+ <id>-20</id>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
@@ -3805,44 +3908,33 @@
                                                                                                 <weak_ptr>
                                                                                                         <expired>0</expired>
                                                                                                         <shared_ptr>
- <id>-22</id>
+ <id>-21</id>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
- <size>3</size>
- <variant>2</variant>
- <string>[@template &lt;class Tag,class T&gt;&#10;class (:link </string>
- <variant>1</variant>
- <weak_ptr>
- <expired>0</expired>
- <shared_ptr>
- <id>-22</id>
- </shared_ptr>
- </weak_ptr>
- <variant>2</variant>
- <string>:);@]&#10;</string>
+ <size>0</size>
                                                                                                 </container>
                                                                                         </pair>
                                                                                         <pair>
                                                                                                 <weak_ptr>
                                                                                                         <expired>0</expired>
                                                                                                         <shared_ptr>
- <id>-23</id>
+ <id>-22</id>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
                                                                                                         <size>5</size>
                                                                                                         <variant>2</variant>
- <string>[@template &lt;class E, class Tag, class T&gt;&#10;E const &amp; (:link </string>
+ <string>[@(:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-23</id>
+ <id>-33</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>|operator&lt;&lt;:)( E const &amp; x, (:link </string>
+ <string>:) (:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
@@ -3851,173 +3943,108 @@
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:)&lt;Tag,T&gt; const &amp; v );@]&#10;</string>
+ <string>:)();@]&#10;</string>
                                                                                                 </container>
                                                                                         </pair>
                                                                                         <pair>
                                                                                                 <weak_ptr>
                                                                                                         <expired>0</expired>
                                                                                                         <shared_ptr>
- <id>-24</id>
+ <id>-23</id>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
- <size>7</size>
+ <size>19</size>
                                                                                                         <variant>2</variant>
- <string>[@template &lt;class E, class Tag1, class T1, ..., class TagN, class TN&gt;&#10;E const &amp; (:link </string>
+ <string>[@#if !defined( BOOST_NO_EXCEPTIONS ) &amp;&amp; !defined( BOOST_EXCEPTION_DISABLE )&#10; #include &lt;</string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-24</id>
+ <id>-8</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>|operator&lt;&lt;:)( E const &amp; x,&#10; (:link http://www.boost.org/libs/tuple/doc/tuple_users_guide.html|tuple:)&lt;&#10; (:link </string>
+ <string>&gt;&#10; #include &lt;boost/current_function.hpp&gt;&#10; #define </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-22</id>
+ <id>-23</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:)&lt;Tag1,T1&gt;,&#10; ...,&#10; (:link </string>
+ <string>(x)\&#10; ::boost::</string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-22</id>
+ <id>-38</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:)&lt;TagN,TN&gt; &gt; const &amp; v );@]&#10;</string>
- </container>
- </pair>
- <pair>
- <weak_ptr>
- <expired>0</expired>
- <shared_ptr>
- <id>-25</id>
- </shared_ptr>
- </weak_ptr>
- <container>
- <size>5</size>
- <variant>2</variant>
- <string>[@(:link </string>
+ <string>( ::boost::</string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-6</id>
+ <id>-26</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:) (:link </string>
+ <string>(x) &lt;&lt;\&#10; ::boost::(:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-25</id>
+ <id>-8</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:)();@]&#10;</string>
- </container>
- </pair>
- <pair>
- <weak_ptr>
- <expired>0</expired>
- <shared_ptr>
- <id>-26</id>
- </shared_ptr>
- </weak_ptr>
- <container>
- <size>3</size>
- <variant>2</variant>
- <string>[@virtual char const * (:link </string>
+ <string>|throw_function:)(BOOST_CURRENT_FUNCTION) &lt;&lt;\&#10; ::boost::(:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-26</id>
+ <id>-8</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string> mod=&quot;m&quot;:)() const throw();@]&#10;</string>
- </container>
- </pair>
- <pair>
- <weak_ptr>
- <expired>0</expired>
- <shared_ptr>
- <id>-27</id>
- </shared_ptr>
- </weak_ptr>
- <container>
- <size>3</size>
- <variant>2</variant>
- <string>[@std::string </string>
+ <string>|throw_file:)(__FILE__) &lt;&lt;\&#10; ::boost::(:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-27</id>
+ <id>-8</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>( std::exception const &amp; x );@]&#10;</string>
- </container>
- </pair>
- <pair>
- <weak_ptr>
- <expired>0</expired>
- <shared_ptr>
- <id>-28</id>
- </shared_ptr>
- </weak_ptr>
- <container>
- <size>3</size>
+ <string>|throw_line:)((int)__LINE__) )&#10;#else&#10; #define </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-23</id>
+ </shared_ptr>
+ </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>[@(:link </string>
+ <string>(x) ::boost::</string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-28</id>
+ <id>-38</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string> mod=&quot;m&quot;:)();@]&#10;</string>
- </container>
- </pair>
- <pair>
- <weak_ptr>
- <expired>0</expired>
- <shared_ptr>
- <id>-29</id>
- </shared_ptr>
- </weak_ptr>
- <container>
- <size>0</size>
- </container>
- </pair>
- <pair>
- <weak_ptr>
- <expired>0</expired>
- <shared_ptr>
- <id>-30</id>
- </shared_ptr>
- </weak_ptr>
- <container>
- <size>0</size>
+ <string>(x)&#10;#endif@]&#10;</string>
                                                                                                 </container>
                                                                                         </pair>
                                                                                         <pair>
                                                                                                 <weak_ptr>
                                                                                                         <expired>0</expired>
                                                                                                         <shared_ptr>
- <id>-31</id>
+ <id>-24</id>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
@@ -4028,29 +4055,60 @@
                                                                                                 <weak_ptr>
                                                                                                         <expired>0</expired>
                                                                                                         <shared_ptr>
- <id>-32</id>
+ <id>-25</id>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
- <size>0</size>
+ <size>5</size>
+ <variant>2</variant>
+ <string>[@template &lt;class E, class Tag, class T&gt;&#10;E const &amp; (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-25</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod=&quot;/&quot;:)( E const &amp; x, (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-35</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)&lt;Tag,T&gt; const &amp; v );@]&#10;</string>
                                                                                                 </container>
                                                                                         </pair>
                                                                                         <pair>
                                                                                                 <weak_ptr>
                                                                                                         <expired>0</expired>
                                                                                                         <shared_ptr>
- <id>-33</id>
+ <id>-26</id>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
- <size>0</size>
+ <size>3</size>
+ <variant>2</variant>
+ <string>[@template &lt;class T&gt;&#10;---unspecified--- (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-26</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)( T const &amp; x );@]&#10;</string>
                                                                                                 </container>
                                                                                         </pair>
                                                                                         <pair>
                                                                                                 <weak_ptr>
                                                                                                         <expired>0</expired>
                                                                                                         <shared_ptr>
- <id>-34</id>
+ <id>-27</id>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
@@ -4061,7 +4119,7 @@
                                                                                                 <weak_ptr>
                                                                                                         <expired>0</expired>
                                                                                                         <shared_ptr>
- <id>-35</id>
+ <id>-28</id>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
@@ -4072,7 +4130,7 @@
                                                                                                 <weak_ptr>
                                                                                                         <expired>0</expired>
                                                                                                         <shared_ptr>
- <id>-36</id>
+ <id>-29</id>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
@@ -4083,7 +4141,7 @@
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-36</id>
+ <id>-29</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
@@ -4092,7 +4150,7 @@
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-36</id>
+ <id>-29</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
@@ -4101,7 +4159,7 @@
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-15</id>
+ <id>-41</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
@@ -4112,60 +4170,49 @@
                                                                                                 <weak_ptr>
                                                                                                         <expired>0</expired>
                                                                                                         <shared_ptr>
- <id>-37</id>
+ <id>-30</id>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
                                                                                                         <size>5</size>
                                                                                                         <variant>2</variant>
- <string>[@class&#10;(:link </string>
+ <string>[@std::string (:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-37</id>
+ <id>-30</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:):&#10; public std::exception&#10; public boost::</string>
+ <string>:)( boost::(:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-15</id>
+ <id>-41</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>&#10; {&#10; ---unspecified---&#10; };@]&#10;</string>
+ <string>:) const &amp; x );@]&#10;</string>
                                                                                                 </container>
                                                                                         </pair>
                                                                                         <pair>
                                                                                                 <weak_ptr>
                                                                                                         <expired>0</expired>
                                                                                                         <shared_ptr>
- <id>-38</id>
+ <id>-31</id>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
- <size>3</size>
- <variant>2</variant>
- <string>[@template &lt;class T&gt;&#10;---unspecified--- (:link </string>
- <variant>1</variant>
- <weak_ptr>
- <expired>0</expired>
- <shared_ptr>
- <id>-38</id>
- </shared_ptr>
- </weak_ptr>
- <variant>2</variant>
- <string>:)( T const &amp; e );@]&#10;</string>
+ <size>0</size>
                                                                                                 </container>
                                                                                         </pair>
                                                                                         <pair>
                                                                                                 <weak_ptr>
                                                                                                         <expired>0</expired>
                                                                                                         <shared_ptr>
- <id>-39</id>
+ <id>-32</id>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
@@ -4176,75 +4223,196 @@
                                                                                                 <weak_ptr>
                                                                                                         <expired>0</expired>
                                                                                                         <shared_ptr>
- <id>-40</id>
+ <id>-33</id>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
                                                                                                         <size>3</size>
                                                                                                         <variant>2</variant>
- <string>[@template &lt;class T&gt;&#10;---unspecified--- (:link </string>
+ <string>[@typedef ---unspecified--- (:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-40</id>
+ <id>-33</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:)( T const &amp; x );@]&#10;</string>
+ <string>:);@]&#10;</string>
                                                                                                 </container>
                                                                                         </pair>
                                                                                         <pair>
                                                                                                 <weak_ptr>
                                                                                                         <expired>0</expired>
                                                                                                         <shared_ptr>
- <id>-41</id>
+ <id>-34</id>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
- <size>0</size>
+ <size>3</size>
+ <variant>2</variant>
+ <string>[@template &lt;class ErrorInfo,class E&gt;&#10;(:link http://www.boost.org/libs/smart_ptr/shared_ptr.htm|shared_ptr:)&lt;typename ErrorInfo::value_type const&gt; (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-34</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)( E const &amp; x );@]&#10;</string>
                                                                                                 </container>
                                                                                         </pair>
                                                                                         <pair>
                                                                                                 <weak_ptr>
                                                                                                         <expired>0</expired>
                                                                                                         <shared_ptr>
- <id>-42</id>
+ <id>-35</id>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
- <size>0</size>
- </container>
- </pair>
- <pair>
- <weak_ptr>
+ <size>3</size>
+ <variant>2</variant>
+ <string>[@template &lt;class Tag,class T&gt;&#10;class (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-35</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:);@]&#10;</string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
                                                                                                         <expired>0</expired>
                                                                                                         <shared_ptr>
- <id>-43</id>
+ <id>-36</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-37</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-38</id>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
                                                                                                         <size>5</size>
                                                                                                         <variant>2</variant>
- <string>[@#ifdef BOOST_NO_EXCEPTIONS&#10;&#10;void (:link </string>
+ <string>[@#ifdef BOOST_NO_EXCEPTIONS&#10; void (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-38</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)( std::exception const &amp; e ); // user defined&#10;#else&#10; template &lt;class E&gt;&#10; void (:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-43</id>
+ <id>-38</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:)( std::exception const &amp; e ); // user defined&#10;&#10;#else&#10;&#10;template &lt;class E&gt;&#10;void (:link </string>
+ <string>:)( E const &amp; e );&#10;#endif@]&#10;</string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-39</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-40</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-41</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>[@class (:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-43</id>
+ <id>-41</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:)( E const &amp; e );&#10;&#10;#endif@]&#10;</string>
+ <string>:);@]&#10;</string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-42</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-43</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-44</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
                                                                                                 </container>
                                                                                         </pair>
                                                                                 </sorted>
@@ -4254,13 +4422,13 @@
                                                         <pair>
                                                                 <string>include</string>
                                                                 <shared_ptr>
- <id>47</id>
+ <id>48</id>
                                                                         <type>
                                                                                 <string>reno_layer</string>
                                                                         </type>
                                                                         <object>
                                                                                 <sorted>
- <size>39</size>
+ <size>40</size>
                                                                                         <pair>
                                                                                                 <weak_ptr>
                                                                                                         <expired>0</expired>
@@ -4269,98 +4437,134 @@
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
- <size>1</size>
+ <size>15</size>
                                                                                                         <variant>2</variant>
- <string>(:auto !!!:)&#10;&#10;(:include synopsis:)&#10;&#10;!!!!Precondition:&#10;&#10;ep shall not be null.&#10;&#10;!!!!Throws:&#10;&#10;&#10;&#10;The exception to which ep refers.&#10;</string>
- </container>
- </pair>
- <pair>
- <weak_ptr>
- <expired>0</expired>
- <shared_ptr>
- <id>-6</id>
- </shared_ptr>
- </weak_ptr>
- <container>
- <size>9</size>
+ <string>(:auto !!!:)&#10;&#10;Boost Exception responds to the following configuration macros:&#10;&#10;&apos;&apos;&apos;BOOST_NO_RTTI&apos;&apos;&apos;\\&#10;&apos;&apos;&apos;BOOST_NO_TYPEID&apos;&apos;&apos;&#10;&#10;The first macro prevents Boost Exception from using dynamic_cast and dynamic typeid. If the second macro is also defined, Boost Exception does not use static typeid either. There are no observable degrading effects on the library functionality, except for the following:&#10;&#10;-&gt;By default, the (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-34</id>
+ </shared_ptr>
+ </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>(:auto !!!:)&#10;&#10;(:include synopsis:)&#10;&#10;The (:link </string>
+ <string>:) function template can be called with any exception type. If BOOST_NO_RTTI is defined, (:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-6</id>
+ <id>-34</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>:) can be used only with objects of type boost::(:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-6</id>
+ <id>-41</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:)&apos;s operations do not throw.&#10;&#10;Two instances of (:link </string>
+ <string>:).&#10;&#10;&apos;&apos;&apos;BOOST_EXCEPTION_DISABLE&apos;&apos;&apos;&#10;&#10;By default, (:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-6</id>
+ <id>-13</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:) are equivalent and compare equal if and only if they refer to the same exception.&#10;&#10;The default constructor of (:link </string>
+ <string>:) and (:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-6</id>
+ <id>-26</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:) are integrated directly in the (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-38</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:) function. Defining BOOST_EXCEPTION_DISABLE disables this integration.&#10;&#10;Note that on some non-conformant compilers, for example MSVC 7.0 and older, as well as BCC, BOOST_EXCEPTION_DISABLE is implicitly defined in (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-11</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:) produces the null value of the type. The null value is equivalent only to itself.&#10;</string>
+ <string>:).&#10;</string>
                                                                                                 </container>
                                                                                         </pair>
                                                                                         <pair>
                                                                                                 <weak_ptr>
                                                                                                         <expired>0</expired>
                                                                                                         <shared_ptr>
- <id>-7</id>
+ <id>-6</id>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
- <size>7</size>
+ <size>5</size>
                                                                                                         <variant>2</variant>
- <string>(:auto !!!:)&#10;&#10;(:include synopsis:)&#10;&#10;!!!!Requirements:&#10;&#10;* ErrorInfo must be an instance of the (:link </string>
+ <string>(:auto !!!:)&#10;&#10;(:include synopsis:)&#10;&#10;!!!!Requirements:&#10;&#10;E must be boost::(:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-22</id>
+ <id>-41</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:) template.&#10;* E must be polymorphic.&#10;&#10;!!!!Returns:&#10;&#10;* If dynamic_cast&lt;boost::(:link </string>
+ <string>:), or a type that derives (indirectly) from boost::(:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-15</id>
+ <id>-41</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:) const *&gt;(&amp;x) is 0, or if x does not store an object of type ErrorInfo, the returned value is an empty shared_ptr.&#10;* Otherwise, the returned shared_ptr points to the stored value (use (:link </string>
+ <string>:).&#10;&#10;!!!!Effects:&#10;&#10;Equivalent to x &lt;&lt; v.(:link http://www.boost.org/libs/tuple/doc/tuple_users_guide.html#accessing_elements|get:)&lt;0&gt;() &lt;&lt; ... &lt;&lt; v.(:link http://www.boost.org/libs/tuple/doc/tuple_users_guide.html#accessing_elements|get:)&lt;N&gt;().&#10;&#10;!!!!Returns:&#10;&#10;x.&#10;&#10;(:include throws:)&#10;</string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-7</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>5</size>
+ <variant>2</variant>
+ <string>(:auto !!!:)&#10;&#10;(:include synopsis:)&#10;&#10;This type is used by the (:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-23</id>
+ <id>-33</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:) support in Boost Exception. Please see (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-22</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>|operator&lt;&lt;:) to store values in exception objects.) The shared_ptr is valid even after x has been destroyed.&#10;&#10;!!!!Throws:&#10;&#10;Nothing.&#10;</string>
+ <string>:).&#10;</string>
                                                                                                 </container>
                                                                                         </pair>
                                                                                         <pair>
@@ -4397,67 +4601,75 @@
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
- <size>7</size>
- <variant>2</variant>
- <string>(:auto !!!:)&#10;&#10;(:include synopsis:)&#10;&#10;This macro is designed to be used with (:link </string>
- <variant>1</variant>
- <weak_ptr>
- <expired>0</expired>
- <shared_ptr>
- <id>-23</id>
- </shared_ptr>
- </weak_ptr>
+ <size>1</size>
                                                                                                         <variant>2</variant>
- <string>|operator&lt;&lt;:) when throwing a boost::(:link </string>
- <variant>1</variant>
- <weak_ptr>
- <expired>0</expired>
- <shared_ptr>
- <id>-15</id>
- </shared_ptr>
- </weak_ptr>
+ <string>(:auto !!:)&#10;&#10;!!!Synopsis&#10;&#10;(:include synopsis:)&#10;</string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-11</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
                                                                                                         <variant>2</variant>
- <string>:), 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>-22</id>
- </shared_ptr>
- </weak_ptr>
+ <string>(:auto !!:)&#10;&#10;!!!Synopsis&#10;&#10;(:include synopsis:)&#10;</string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-12</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
                                                                                                         <variant>2</variant>
- <string> mod=&quot;p&quot;:) in a single throw expression.&#10;</string>
+ <string>(:auto !!:)&#10;&#10;!!!Synopsis&#10;&#10;(:include synopsis:)&#10;</string>
                                                                                                 </container>
                                                                                         </pair>
                                                                                         <pair>
                                                                                                 <weak_ptr>
                                                                                                         <expired>0</expired>
                                                                                                         <shared_ptr>
- <id>-11</id>
+ <id>-13</id>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
                                                                                                         <size>21</size>
                                                                                                         <variant>2</variant>
- <string>(:auto !!!:)&#10;&#10;Sometimes the throw site does not have all the information that is needed at the catch site to make sense of what went wrong. Here is an example:&#10;&#10;[@#include &lt;stdio.h&gt;&#10;#include &lt;string&gt;&#10; &#10;class&#10;file_read_error&#10; {&#10; public:&#10;&#10; explicit&#10; file_read_error( std::string const &amp; fn ):&#10; fn_(fn)&#10; {&#10; };&#10;&#10; std::string const &amp;&#10; file_name() const&#10; {&#10; return fn_;&#10; }&#10;&#10; private:&#10;&#10; std::string fn_;&#10; };&#10;&#10;void&#10;file_read( FILE * f, void * buffer, size_t size )&#10; {&#10; if( size!=fread(buffer,1,size,f) )&#10; throw file_read_error(&quot;????&quot;);&#10; }@]&#10;&#10;We have defined an exception class file_read_error which can store a file name, so that when we catch a file_read_error object, we know which file the failure is related to. However, the file_read func
tion does not have the file name at the time of the throw; all it has is a FILE handle.&#10;&#10;One possible solution is to not use FILE handles directly. We could have our own class file which stores both a FILE handle and a file name, and pass that to file_read. However, this could be problematic if we communicate with 3rd party code that does not use our class file (probably because they have their own similar class.)&#10;&#10;A better solution is to make class file_read_error derive (possibly indirectly) from boost::(:link </string>
+ <string>(:auto !!!:)&#10;&#10;(:include synopsis:)&#10;&#10;!!!!Requirements:&#10;&#10;T must be a class with an accessible no-throw copy constructor.&#10;&#10;!!!!Returns:&#10;&#10;An object of &apos;&apos;unspecified&apos;&apos; type which derives publicly from T. That is, the returned object can be intercepted by a catch(T &amp;).&#10;&#10;!!!!Description:&#10;&#10;&#10;&#10;This function is designed to be used directly in a throw-expression to enable the (:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-15</id>
+ <id>-33</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:), and free the file_read function from the burden of storing the file name in exceptions it throws:&#10;&#10;[@#include &lt;(:link </string>
+ <string>:) support in Boost Exception. For example:&#10;&#10;[@class&#10;my_exception:&#10; public std::exception&#10; {&#10; };&#10;&#10;....&#10;throw boost::(:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-17</id>
+ <id>-13</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:)&gt;&#10;#include &lt;stdio.h&gt;&#10;#include &lt;errno.h&gt;&#10;&#10;typedef boost::(:link </string>
+ <string>:)(my_exception());@]&#10;&#10;Unless (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-13</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:) is called at the time an exception object is used in a throw-expression, an attempt to copy it using (:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
@@ -4466,25 +4678,25 @@
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:)&lt;struct tag_errno,int&gt; errno_info;&#10;&#10;class file_read_error: public boost::(:link </string>
+ <string>:) may return an (:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-15</id>
+ <id>-33</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:) { };&#10;&#10;void&#10;file_read( FILE * f, void * buffer, size_t size )&#10; {&#10; if( size!=fread(buffer,1,size,f) )&#10; throw file_read_error() &lt;&lt; errno_info(errno);&#10; }@]&#10;&#10;If file_read detects a failure, it throws an exception which contains the information that is available at the time, namely the errno. Other relevant information, such as the file name, can be added in a context higher up the call stack, where it is known naturally:&#10;&#10;[@#include &lt;(:link </string>
+ <string>:) which refers to an instance of (:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-17</id>
+ <id>-7</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:)&gt;&#10;#include &lt;boost/shared_ptr.hpp&gt;&#10;#include &lt;stdio.h&gt;&#10;#include &lt;string&gt;&#10;&#10;typedef boost::(:link </string>
+ <string>:). See (:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
@@ -4493,176 +4705,268 @@
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:)&lt;struct tag_file_name,std::string&gt; file_name_info;&#10;&#10;boost::shared_ptr&lt;FILE&gt; file_open( char const * file_name, char const * mode );&#10;void file_read( FILE * f, void * buffer, size_t size );&#10;&#10;void&#10;parse_file( char const * file_name )&#10; {&#10; boost::shared_ptr&lt;FILE&gt; f = file_open(file_name,&quot;rb&quot;);&#10; assert(f);&#10; try&#10; {&#10; char buf[1024];&#10; file_read( f.get(), buf, sizeof(buf) );&#10; }&#10; catch(&#10; boost::(:link </string>
+ <string>:) for details.&#10;&#10;!!!!Note:&#10;&#10;Instead of using the throw keyword directly, it is preferable to call boost::(:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-15</id>
+ <id>-38</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:) &amp; e )&#10; {&#10; e &lt;&lt; file_name_info(file_name);&#10; throw;&#10; }&#10; }@]&#10;&#10;The above function is (almost) exception-neutral -- if an exception is emitted by any function call within the try block, parse_file does not need to do any real work, but it intercepts any boost::(:link </string>
+ <string>:). This is guaranteed to throw an exception that derives from boost::(:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-15</id>
+ <id>-41</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:) object, stores the file name, and re-throws using a throw-expression with no operand (15.1.6). The rationale for catching any boost::(:link </string>
+ <string>:) and supports the (:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-15</id>
+ <id>-33</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:) object is that the file name is relevant to any failure that occurs in parse_file, &apos;&apos;even if the failure is unrelated to file I/O&apos;&apos;.&#10;&#10;As usual, the stored data can be retrieved using (:link </string>
+ <string>:) functionality.&#10;</string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-14</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>5</size>
+ <variant>2</variant>
+ <string>(:auto !!!:)&#10;&#10;(:include synopsis:)&#10;&#10;!!!!Effects:&#10;&#10;As if&#10;&#10;[@try&#10; {&#10; throw </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-7</id>
+ <id>-13</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:).&#10;</string>
+ <string>(e);&#10; }&#10;catch(...)&#10; {&#10; return (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-22</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)();&#10; }@]&#10;</string>
                                                                                                 </container>
                                                                                         </pair>
                                                                                         <pair>
                                                                                                 <weak_ptr>
                                                                                                         <expired>0</expired>
                                                                                                         <shared_ptr>
- <id>-12</id>
+ <id>-15</id>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
- <size>13</size>
+ <size>1</size>
                                                                                                         <variant>2</variant>
- <string>(:auto !!!:)&#10;&#10;The code snippet below demonstrates how boost::(:link http://www.boost.org/libs/tuple/doc/tuple_users_guide.html|tuple:) can be used to bundle the name of the function that failed, together with the reported errno so that they can be added to exception objects more conveniently together:&#10;&#10;[@#include &lt;(:link </string>
+ <string>(:auto !!!:)&#10;&#10;(:include synopsis:)&#10;&#10;!!!!Precondition:&#10;&#10;ep shall not be null.&#10;&#10;!!!!Throws:&#10;&#10;&#10;&#10;The exception to which ep refers.&#10;</string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-16</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:auto !!:)&#10;&#10;!!!Synopsis&#10;&#10;(:include synopsis:)&#10;</string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-17</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>21</size>
+ <variant>2</variant>
+ <string>(:auto !!!:)&#10;&#10;Sometimes the throw site does not have all the information that is needed at the catch site to make sense of what went wrong. Here is an example:&#10;&#10;[@#include &lt;stdio.h&gt;&#10;#include &lt;string&gt;&#10; &#10;class&#10;file_read_error&#10; {&#10; public:&#10;&#10; explicit&#10; file_read_error( std::string const &amp; fn ):&#10; fn_(fn)&#10; {&#10; };&#10;&#10; std::string const &amp;&#10; file_name() const&#10; {&#10; return fn_;&#10; }&#10;&#10; private:&#10;&#10; std::string fn_;&#10; };&#10;&#10;void&#10;file_read( FILE * f, void * buffer, size_t size )&#10; {&#10; if( size!=fread(buffer,1,size,f) )&#10; throw file_read_error(&quot;????&quot;);&#10; }@]&#10;&#10;We have defined an exception class file_read_error which can store a file name, so that when we catch a file_read_error object, we know which file the failure is related to. However, the file_read func
tion does not have the file name at the time of the throw; all it has is a FILE handle.&#10;&#10;One possible solution is to not use FILE handles directly. We could have our own class file which stores both a FILE handle and a file name, and pass that to file_read. However, this could be problematic if we communicate with 3rd party code that does not use our class file (probably because they have their own similar class.)&#10;&#10;A better solution is to make class file_read_error derive (possibly indirectly) from boost::(:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-34</id>
+ <id>-41</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:)&gt;&#10;#include &lt;boost/shared_ptr.hpp&gt;&#10;#include &lt;stdio.h&gt;&#10;#include &lt;string&gt;&#10;#include &lt;errno.h&gt;&#10;&#10;typedef boost::(:link </string>
+ <string>:), and free the file_read function from the burden of storing the file name in exceptions it throws:&#10;&#10;[@#include &lt;(:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-22</id>
+ <id>-27</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:)&lt;struct tag_file_name,std::string&gt; file_name_info;&#10;typedef boost::(:link </string>
+ <string>:)&gt;&#10;#include &lt;stdio.h&gt;&#10;#include &lt;errno.h&gt;&#10;&#10;typedef boost::(:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-22</id>
+ <id>-35</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:)&lt;struct tag_function,char const *&gt; function_info;&#10;typedef boost::(:link </string>
+ <string>:)&lt;struct tag_errno,int&gt; errno_info;&#10;&#10;class file_read_error: public boost::(:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-22</id>
+ <id>-41</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:)&lt;struct tag_errno,int&gt; errno_info;&#10;typedef boost::tuple&lt;function_info,errno_info&gt; clib_failure;&#10;&#10;class file_open_error: public boost::(:link </string>
+ <string>:) { };&#10;&#10;void&#10;file_read( FILE * f, void * buffer, size_t size )&#10; {&#10; if( size!=fread(buffer,1,size,f) )&#10; throw file_read_error() &lt;&lt; errno_info(errno);&#10; }@]&#10;&#10;If file_read detects a failure, it throws an exception which contains the information that is available at the time, namely the errno. Other relevant information, such as the file name, can be added in a context higher up the call stack, where it is known naturally:&#10;&#10;[@#include &lt;(:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-15</id>
+ <id>-27</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:) { };&#10;&#10;boost::shared_ptr&lt;FILE&gt;&#10;file_open( char const * name, char const * mode )&#10; {&#10; if( FILE * f=fopen(name,mode) )&#10; return boost::shared_ptr&lt;FILE&gt;(f,fclose);&#10; else&#10; throw file_open_error() &lt;&lt;&#10; file_name_info(name) &lt;&lt;&#10; clib_failure(&quot;fopen&quot;,errno);&#10; }@]&#10;&#10;Note that the members of a boost::(:link http://www.boost.org/libs/tuple/doc/tuple_users_guide.html|tuple:) are stored separately in exception objects; they can only be retrieved individually, using (:link </string>
+ <string>:)&gt;&#10;#include &lt;boost/shared_ptr.hpp&gt;&#10;#include &lt;stdio.h&gt;&#10;#include &lt;string&gt;&#10;&#10;typedef boost::(:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-7</id>
+ <id>-35</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:).&#10;</string>
+ <string>:)&lt;struct tag_file_name,std::string&gt; file_name_info;&#10;&#10;boost::shared_ptr&lt;FILE&gt; file_open( char const * file_name, char const * mode );&#10;void file_read( FILE * f, void * buffer, size_t size );&#10;&#10;void&#10;parse_file( char const * file_name )&#10; {&#10; boost::shared_ptr&lt;FILE&gt; f = file_open(file_name,&quot;rb&quot;);&#10; assert(f);&#10; try&#10; {&#10; char buf[1024];&#10; file_read( f.get(), buf, sizeof(buf) );&#10; }&#10; catch(&#10; boost::(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-41</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:) &amp; e )&#10; {&#10; e &lt;&lt; file_name_info(file_name);&#10; throw;&#10; }&#10; }@]&#10;&#10;The above function is (almost) exception-neutral -- if an exception is emitted by any function call within the try block, parse_file does not need to do any real work, but it intercepts any boost::(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-41</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:) object, stores the file name, and re-throws using a throw-expression with no operand (15.1.6). The rationale for catching any boost::(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-41</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:) object is that the file name is relevant to any failure that occurs in parse_file, &apos;&apos;even if the failure is unrelated to file I/O&apos;&apos;.&#10;&#10;As usual, the stored data can be retrieved using (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-34</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:).&#10;</string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-18</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>(:auto !!!:)&#10;&#10;(:include decl:)&#10;&#10;!!!!Effects:&#10;&#10;&#10;&#10;Frees all resources associated with a boost::(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-41</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:) object.&#10;&#10;!!!!Throws:&#10;&#10;&#10;&#10;Nothing.&#10;</string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-19</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:auto !!:)&#10;&#10;!!!Synopsis&#10;&#10;(:include synopsis:)&#10;</string>
                                                                                                 </container>
                                                                                         </pair>
                                                                                         <pair>
                                                                                                 <weak_ptr>
                                                                                                         <expired>0</expired>
                                                                                                         <shared_ptr>
- <id>-13</id>
+ <id>-20</id>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
                                                                                                         <size>1</size>
                                                                                                         <variant>2</variant>
- <string>(:auto !!:)&#10;&#10;!!!Synopsis&#10;&#10;(:include synopsis:)&#10;</string>
+ <string>(:auto !!!:)&#10;&#10;!!!Synopsis&#10;&#10;(:include synopsis:)&#10;</string>
                                                                                                 </container>
                                                                                         </pair>
                                                                                         <pair>
                                                                                                 <weak_ptr>
                                                                                                         <expired>0</expired>
                                                                                                         <shared_ptr>
- <id>-14</id>
+ <id>-21</id>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
- <size>3</size>
- <variant>2</variant>
- <string>(:auto !!!:)&#10;&#10;(:include synopsis:)&#10;&#10;!!!!Effects:&#10;&#10;As if try { throw e; } catch( ... ) { return (:link </string>
- <variant>1</variant>
- <weak_ptr>
- <expired>0</expired>
- <shared_ptr>
- <id>-25</id>
- </shared_ptr>
- </weak_ptr>
+ <size>1</size>
                                                                                                         <variant>2</variant>
- <string>:)(); }&#10;</string>
+ <string>(:auto !!!:)&#10;&#10;!!!Synopsis&#10;&#10;(:include synopsis:)&#10;</string>
                                                                                                 </container>
                                                                                         </pair>
                                                                                         <pair>
                                                                                                 <weak_ptr>
                                                                                                         <expired>0</expired>
                                                                                                         <shared_ptr>
- <id>-15</id>
+ <id>-22</id>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
- <size>19</size>
- <variant>2</variant>
- <string>(:auto !!!:)&#10;&#10;(:include synopsis:)&#10;&#10;Class boost::(:link </string>
- <variant>1</variant>
- <weak_ptr>
- <expired>0</expired>
- <shared_ptr>
- <id>-15</id>
- </shared_ptr>
- </weak_ptr>
- <variant>2</variant>
- <string>:) is designed to be used as a universal base for user-defined exception types.&#10;&#10;An object of any type deriving from boost::(:link </string>
- <variant>1</variant>
- <weak_ptr>
- <expired>0</expired>
- <shared_ptr>
- <id>-15</id>
- </shared_ptr>
- </weak_ptr>
+ <size>29</size>
                                                                                                         <variant>2</variant>
- <string>:) can store data of arbitrary types, using the (:link </string>
+ <string>(:auto !!!:)&#10;&#10;(:include synopsis:)&#10;&#10;!!!!Requirements:&#10;&#10;The (:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
@@ -4671,171 +4975,171 @@
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:) wrapper and (:link </string>
+ <string>:) function must not be called outside of a catch block.&#10;&#10;!!!!Returns:&#10;&#10;* An (:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-23</id>
+ <id>-33</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>|operator&lt;&lt;:).&#10;&#10;To retrieve data from a boost::(:link </string>
+ <string>:) that refers to the currently handled exception or a copy of the currently handled exception.&#10;* If the function needs to allocate memory and the attempt fails, it returns an (:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-15</id>
+ <id>-33</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:) object, use the (:link </string>
+ <string>:) that refers to an instance of std::bad_alloc.&#10;&#10;!!!!Throws:&#10;&#10;Nothing.&#10;&#10;!!!!Notes:&#10;&#10;* It is unspecified whether the return values of two successive calls to (:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-7</id>
+ <id>-22</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:) function template.&#10;&#10;(:include </string>
+ <string>:) refer to the same exception object.&#10;* Correct implementation of (:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-36</id>
+ <id>-22</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:)&#10;(:include </string>
+ <string>:) may require compiler support, unless (:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-28</id>
+ <id>-13</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:)&#10;(:include </string>
+ <string>:) was used at the time the currently handled exception object was passed to throw. If (:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-26</id>
+ <id>-13</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:)&#10;</string>
- </container>
- </pair>
- <pair>
- <weak_ptr>
- <expired>0</expired>
- <shared_ptr>
- <id>-16</id>
- </shared_ptr>
- </weak_ptr>
- <container>
- <size>21</size>
- <variant>2</variant>
- <string>(:auto !!:)&#10;&#10;Class boost::(:link </string>
+ <string>:) was not used, and if the compiler does not provide the necessary support, then (:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-15</id>
+ <id>-22</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:) provides a virtual member function (:link </string>
+ <string>:) may return an (:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-26</id>
+ <id>-33</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string> mod=&quot;m&quot;:), with a signature similar to the familiar std::exception::what function. The default implementation returns a string value that is not presentable as a friendly user message, but because it is generated automatically, it is useful for debugging or logging purposes. Here is an example:&#10;&#10;[@#include &lt;(:link </string>
+ <string>:) that refers to an instance of (:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-17</id>
+ <id>-7</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:)&gt;&#10;#include &lt;iostream&gt;&#10;&#10;void f(); //throws unknown types that derive from boost::(:link </string>
+ <string>:). In this case, if the original exception object derives from boost::(:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-15</id>
+ <id>-41</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:).&#10;&#10;void&#10;g()&#10; {&#10; try&#10; {&#10; f();&#10; }&#10; catch(&#10; boost::(:link </string>
+ <string>:), then the boost::(:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-15</id>
+ <id>-41</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:) &amp; e )&#10; {&#10; std::cerr &lt;&lt; e.(:link </string>
+ <string>:) sub-object of the (:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-26</id>
+ <id>-7</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string> mod=&quot;m&quot;:)();&#10; }&#10; }@]&#10;&#10;The (:link </string>
+ <string>:) object is initialized by the boost::(:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-26</id>
+ <id>-41</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string> mod=&quot;m&quot;:) member function iterates over all data objects stored in the boost::(:link </string>
+ <string>:) copy constructor.&#10;</string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-23</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>7</size>
+ <variant>2</variant>
+ <string>(:auto !!!:)&#10;&#10;(:include synopsis:)&#10;&#10;This macro takes an exception object, records BOOST_CURRENT_FUNCTION, __FILE__ and __LINE__ in it, and forwards it to </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-15</id>
+ <id>-38</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:) through (:link </string>
+ <string>. To recover this information at the catch site, use </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-23</id>
+ <id>-34</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>|operator&lt;&lt;:). The returned string is constructed by converting each data object to string and then concatenating these strings together.&#10;&#10;When the (:link </string>
+ <string>; the information is also included in the message returned by </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-22</id>
+ <id>-30</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:)&lt;Tag,T&gt; template is instantiated, the system attempts overload resolution for an unqualified call to to_string(x), where x is of type T. If this is successful, the to_string overload is expected to return std::string and is used to convert objects of type T to string.&#10;&#10;Otherwise, the system attempts overload resolution for s &lt;&lt; x, where s is a std::ostringstream and x is of type T. If this is successful, the operator&lt;&lt; overload is used to convert objects of type T to string.&#10;&#10;Otherwise the system is unable to convert objects of type T to string, and an unspecified stub string value is used without issuing a compile error.&#10;</string>
+ <string>.&#10;</string>
                                                                                                 </container>
                                                                                         </pair>
                                                                                         <pair>
                                                                                                 <weak_ptr>
                                                                                                         <expired>0</expired>
                                                                                                         <shared_ptr>
- <id>-17</id>
+ <id>-24</id>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
@@ -4848,152 +5152,169 @@
                                                                                                 <weak_ptr>
                                                                                                         <expired>0</expired>
                                                                                                         <shared_ptr>
- <id>-18</id>
+ <id>-25</id>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
- <size>11</size>
+ <size>7</size>
                                                                                                         <variant>2</variant>
- <string>(:auto !!:)&#10;&#10;All exception types that derive from boost::(:link </string>
+ <string>(:auto !!!:)&#10;&#10;(:include synopsis:)&#10;&#10;!!!!Requirements:&#10;&#10;E must be boost::(:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-15</id>
+ <id>-41</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:) can be used as type-safe containers of arbitrary data objects, while complying with the no-throw requirements (15.5.1) of the ANSI C++ standard for exception types. Data can be added to a boost::(:link </string>
+ <string>:), or a type that derives (indirectly) from boost::(:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-15</id>
+ <id>-41</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:) at the time of the throw, or at a later time.&#10;&#10;(:include </string>
+ <string>:).&#10;&#10;!!!!Effects:&#10;&#10;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>-29</id>
+ <id>-35</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:)&#10;(:include </string>
+ <string>:)&lt;Tag,T&gt;, that data is overwritten.&#10;&#10;!!!!Returns:&#10;&#10;x.&#10;&#10;(:include throws:)&#10;</string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-26</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>5</size>
+ <variant>2</variant>
+ <string>(:auto !!!:)&#10;&#10;(:include synopsis:)&#10;&#10;!!!!Requirements:&#10;&#10;T must be a class with an accessible no-throw copy constructor as per (15.5.1).&#10;&#10;!!!!Returns:&#10;&#10;* If T derives from boost::(:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-11</id>
+ <id>-41</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:)&#10;(:include </string>
+ <string>:), the returned object is of type T and is a copy of x.&#10;* Otherwise, the returned object is of an unspecified type that derives publicly from both T and boost::(:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-12</id>
+ <id>-41</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:)&#10;</string>
+ <string>:). The T sub-object is initialized from x by the T copy constructor.&#10;&#10;!!!!Throws:&#10;&#10;Nothing.&#10;</string>
                                                                                                 </container>
                                                                                         </pair>
                                                                                         <pair>
                                                                                                 <weak_ptr>
                                                                                                         <expired>0</expired>
                                                                                                         <shared_ptr>
- <id>-19</id>
+ <id>-27</id>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
- <size>27</size>
+ <size>1</size>
                                                                                                         <variant>2</variant>
- <string>(:auto !!:)&#10;&#10;Some exception hierarchies can not be modified to make boost::(:link </string>
- <variant>1</variant>
- <weak_ptr>
- <expired>0</expired>
- <shared_ptr>
- <id>-15</id>
- </shared_ptr>
- </weak_ptr>
+ <string>(:auto !!:)&#10;&#10;!!!Synopsis&#10;&#10;(:include synopsis:)&#10;</string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-28</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>37</size>
                                                                                                         <variant>2</variant>
- <string>:) a base type. In this case, the (:link </string>
+ <string>(:auto !!!:)&#10;&#10;When you catch an exception, you can call (:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-40</id>
+ <id>-22</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:) function template can be used to make exception objects derive from boost::(:link </string>
+ <string>:) to get an (:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-15</id>
+ <id>-33</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:) anyway. Here is an example:&#10;&#10;[@#include &lt;(:link </string>
+ <string>:) object:&#10;&#10;[@#include &lt;(:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-17</id>
+ <id>-9</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:)&gt;&#10;#include &lt;stdexcept&gt;&#10;&#10;typedef boost::(:link </string>
+ <string>:)&gt;&#10;#include &lt;boost/thread.hpp&gt;&#10;#include &lt;boost/bind.hpp&gt;&#10;&#10;void do_work(); //throws cloning-enabled boost::(:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-22</id>
+ <id>-41</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:)&lt;struct tag_std_range_min,size_t&gt; std_range_min;&#10;typedef boost::(:link </string>
+ <string>:)s&#10;&#10;void&#10;worker_thread( boost::(:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-22</id>
+ <id>-33</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:)&lt;struct tag_std_range_max,size_t&gt; std_range_max;&#10;typedef boost::(:link </string>
+ <string>:) &amp; error )&#10; {&#10; try&#10; {&#10; do_work();&#10; error = boost::(:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-22</id>
+ <id>-33</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:)&lt;struct tag_std_range_index,size_t&gt; std_range_index;&#10;&#10;template &lt;class T&gt;&#10;class&#10;my_container&#10; {&#10; public:&#10;&#10; size_t size() const;&#10;&#10; T const &amp;&#10; operator[]( size_t i ) const&#10; {&#10; if( i &gt; size() )&#10; throw boost::(:link </string>
+ <string>:)();&#10; }&#10; catch(&#10; ... )&#10; {&#10; error = boost::(:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-40</id>
+ <id>-22</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:)(std::range_error(&quot;Index out of range&quot;)) &lt;&lt;&#10; std_range_min(0) &lt;&lt;&#10; std_range_max(size()) &lt;&lt;&#10; std_range_index(i);&#10; //....&#10; }&#10; };&#10;@]&#10;&#10;The call to (:link </string>
+ <string>:)();&#10; }&#10; }@]&#10;&#10;In the above example, note that (:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-40</id>
+ <id>-22</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:)&lt;T&gt; gets us an object of &apos;&apos;unspecified type&apos;&apos; which is guaranteed to derive from both boost::(:link </string>
+ <string>:) captures the original type of the exception object. The exception can be thrown again using the (:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
@@ -5002,16 +5323,16 @@
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:) and T. This makes it possible to use (:link </string>
+ <string>:) function:&#10;&#10;[@// ...continued&#10;&#10;void&#10;work()&#10; {&#10; boost::(:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-23</id>
+ <id>-33</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>|operator&lt;&lt;:) to store additional information in the exception object. The exception can be intercepted as T &amp;, so existing exception handling will not break. It can also be intercepted as boost::(:link </string>
+ <string>:) error;&#10; boost::(:link http://www.boost.org/doc/html/boost/thread.html|thread:) t( boost::(:link http://www.boost.org/libs/bind/bind.html|bind:)(worker_thread,boost::(:link http://www.boost.org/doc/html/ref.html|ref:)(error)) );&#10; t.(:link http://www.boost.org/doc/html/boost/thread.html|join:)();&#10; if( error )&#10; boost::(:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
@@ -5020,87 +5341,61 @@
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:) &amp;, so that (:link </string>
+ <string>:)(error);&#10; }@]&#10;&#10;Note that (:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-18</id>
+ <id>-22</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>|more information can be added to the exception at a later time:).&#10;</string>
- </container>
- </pair>
- <pair>
- <weak_ptr>
- <expired>0</expired>
- <shared_ptr>
- <id>-20</id>
- </shared_ptr>
- </weak_ptr>
- <container>
- <size>1</size>
- <variant>2</variant>
- <string>(:auto !!:)&#10;&#10;!!!Synopsis&#10;&#10;(:include synopsis:)&#10;</string>
- </container>
- </pair>
- <pair>
- <weak_ptr>
- <expired>0</expired>
- <shared_ptr>
- <id>-21</id>
- </shared_ptr>
- </weak_ptr>
- <container>
- <size>13</size>
- <variant>2</variant>
- <string>(:auto !!!:)&#10;&#10;Here is how cloning can be enabled in a throw-expression (15.1):&#10;&#10;[@#include &lt;(:link </string>
+ <string>:) could fail to copy the original exception object in the following cases:&#10;&#10;* if there is not enough memory, in which case the returned (:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-13</id>
+ <id>-33</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:)&gt;&#10;#include &lt;(:link </string>
+ <string>:) points to an instance of std::bad_alloc, or&#10;* if (:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-20</id>
+ <id>-13</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:)&gt;&#10;#include &lt;stdio.h&gt;&#10;#include &lt;errno.h&gt;&#10;&#10;typedef boost::error_info&lt;struct tag_errno,int&gt; errno_info;&#10;&#10;class file_read_error: public boost::(:link </string>
+ <string>:) was not used in the throw-expression passed to the original throw statement and the current implementation does not have the necessary compiler-specific support to copy the exception automatically, in which case the returned (:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-15</id>
+ <id>-33</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:) { };&#10;&#10;void&#10;file_read( FILE * f, void * buffer, size_t size )&#10; {&#10; if( size!=fread(buffer,1,size,f) )&#10; throw boost::(:link </string>
+ <string>:) points to an instance of (:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-38</id>
+ <id>-7</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:)(file_read_error()) &lt;&lt;&#10; errno_info(errno);&#10; }@]&#10;&#10;Of course, (:link </string>
+ <string>:).&#10;&#10;Regardless, the use of (:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-38</id>
+ <id>-22</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:) may be used with any exception type; there is no requirement that it should derive from boost::(:link </string>
+ <string>:) and (:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
@@ -5109,474 +5404,492 @@
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:).&#10;</string>
+ <string>:) in the above examples is well-formed.&#10;</string>
                                                                                                 </container>
                                                                                         </pair>
                                                                                         <pair>
                                                                                                 <weak_ptr>
                                                                                                         <expired>0</expired>
                                                                                                         <shared_ptr>
- <id>-22</id>
+ <id>-29</id>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
- <size>25</size>
+ <size>7</size>
                                                                                                         <variant>2</variant>
- <string>(:auto !!!:)&#10;&#10;(:include synopsis:)&#10;&#10;!!!!Requirements:&#10;&#10;T must have accessible copy constructor and must not be a reference (there is no requirement that T&apos;s copy constructor does not throw.)&#10;&#10;!!!!Description:&#10;&#10;This class template is used to associate a Tag type with a value type T. Objects of type (:link </string>
+ <string>(:auto !!!:)&#10;&#10;(:include decl:)&#10;&#10;!!!!Effects:&#10;&#10;* Default constructor: initializes an empty boost::(:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-22</id>
+ <id>-41</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:)&lt;Tag,T&gt; can be passed to (:link </string>
+ <string>:) object.&#10;* Copy constructor: initializes a boost::(:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-23</id>
+ <id>-41</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>|operator&lt;&lt;:) to be stored in objects of type boost::(:link </string>
+ <string>:) object which shares ownership with x of all data added through (:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-15</id>
+ <id>-25</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:).&#10;&#10;!!!!Note:&#10;&#10;The header &lt;(:link </string>
- <variant>1</variant>
- <weak_ptr>
- <expired>0</expired>
- <shared_ptr>
- <id>-33</id>
- </shared_ptr>
- </weak_ptr>
+ <string> mod=&quot;/&quot;:), including data that is added at a future time.&#10;&#10;!!!!Throws:&#10;&#10;Nothing.&#10;</string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-30</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>7</size>
                                                                                                         <variant>2</variant>
- <string>:)&gt; provides a declaration of the (:link </string>
+ <string>(:auto !!!:)&#10;&#10;(:include synopsis:)&#10;&#10;!!!!Returns:&#10;&#10;This function iterates over all data objects stored in the boost::(:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-22</id>
+ <id>-41</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:) template, which is sufficient for the purpose of typedefing an instance for specific Tag and T, like this:&#10;&#10;[@#include &lt;(:link </string>
+ <string>:) through (:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-33</id>
+ <id>-25</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:)&gt;&#10;&#10;typedef boost::(:link </string>
+ <string> mod=&quot;/&quot;:). The returned string is constructed by converting each data object to string and then concatenating these strings together.&#10;&#10;When the (:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-22</id>
+ <id>-35</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:)&lt;struct tag_errno,int&gt; errno_info;@]&#10;&#10;Of course, to actually add an (:link </string>
+ <string>:)&lt;Tag,T&gt; template is instantiated, the system attempts overload resolution for an unqualified call to to_string(x), where x is of type T. If this is successful, the to_string overload is expected to return std::string and is used to convert objects of type T to string.&#10;&#10;Otherwise, the system attempts overload resolution for s &lt;&lt; x, where s is a std::ostringstream and x is of type T. If this is successful, the operator&lt;&lt; overload is used to convert objects of type T to string.&#10;&#10;Otherwise the system is unable to convert objects of type T to string, and an unspecified stub string value is used without issuing a compile error.&#10;&#10;!!!!Notes:&#10;&#10;*The format of the returned string is unspecified.&#10;*The returned string is &apos;&apos;not&apos;&apos; user-friendly.&#10;*If dynamic_cast&lt;std::exception const *&gt;(&amp;x) is not null, the returned string includes the output from std::exception::what.&#10;*The returned string may include addition
al platform-specific diagnostic information.&#10;</string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-31</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>11</size>
+ <variant>2</variant>
+ <string>(:auto !!:)&#10;&#10;Boost Exception supports transporting of exception objects between threads through cloning. This system is similar to (:link http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2179.html|N2179:), but because Boost Exception can not rely on language support, the use of (:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-22</id>
+ <id>-13</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:) object to (:link </string>
+ <string>:) at the time of the throw is required in order to use cloning.&#10;&#10;!!!!Note:&#10;&#10;All exceptions emitted by the familiar function boost::(:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-15</id>
+ <id>-38</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string> mod=&quot;p&quot;:) using (:link </string>
+ <string>:) are guaranteed to derive from boost::(:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-23</id>
+ <id>-41</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>|operator&lt;&lt;:), or to retrieve it using (:link </string>
+ <string>:) and to support cloning.&#10;&#10;(:include </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-7</id>
+ <id>-42</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:), you must first #include &lt;(:link </string>
+ <string>:)&#10;(:include </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-20</id>
+ <id>-28</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:)&gt;.&#10;</string>
+ <string>:)&#10;</string>
                                                                                                 </container>
                                                                                         </pair>
                                                                                         <pair>
                                                                                                 <weak_ptr>
                                                                                                         <expired>0</expired>
                                                                                                         <shared_ptr>
- <id>-23</id>
+ <id>-32</id>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
- <size>7</size>
+ <size>13</size>
                                                                                                         <variant>2</variant>
- <string>(:auto !!!:)&#10;&#10;(:include synopsis:)&#10;&#10;!!!!Requirements:&#10;&#10;E must be boost::(:link </string>
+ <string>(:auto !!!:)&#10;&#10;The code snippet below demonstrates how boost::(:link http://www.boost.org/libs/tuple/doc/tuple_users_guide.html|tuple:) can be used to bundle the name of the function that failed, together with the reported errno so that they can be added to exception objects more conveniently together:&#10;&#10;[@#include &lt;(:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-15</id>
+ <id>-10</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:), or a type that derives (indirectly) from boost::(:link </string>
+ <string>:)&gt;&#10;#include &lt;boost/shared_ptr.hpp&gt;&#10;#include &lt;stdio.h&gt;&#10;#include &lt;string&gt;&#10;#include &lt;errno.h&gt;&#10;&#10;typedef boost::(:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-15</id>
+ <id>-35</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:).&#10;&#10;!!!!Effects:&#10;&#10;Stores a copy of v into x. If x already contains data of type (:link </string>
+ <string>:)&lt;struct tag_file_name,std::string&gt; file_name_info;&#10;typedef boost::(:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-22</id>
+ <id>-35</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:)&lt;Tag,T&gt;, that data is overwritten.&#10;&#10;!!!!Returns:&#10;&#10;x.&#10;&#10;(:include throws:)&#10;</string>
- </container>
- </pair>
- <pair>
- <weak_ptr>
- <expired>0</expired>
- <shared_ptr>
- <id>-24</id>
- </shared_ptr>
- </weak_ptr>
- <container>
- <size>5</size>
+ <string>:)&lt;struct tag_function,char const *&gt; function_info;&#10;typedef boost::(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-35</id>
+ </shared_ptr>
+ </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>(:auto !!!:)&#10;&#10;(:include synopsis:)&#10;&#10;!!!!Requirements:&#10;&#10;E must be boost::(:link </string>
+ <string>:)&lt;struct tag_errno,int&gt; errno_info;&#10;typedef boost::tuple&lt;function_info,errno_info&gt; clib_failure;&#10;&#10;class file_open_error: public boost::(:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-15</id>
+ <id>-41</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:), or a type that derives (indirectly) from boost::(:link </string>
+ <string>:) { };&#10;&#10;boost::shared_ptr&lt;FILE&gt;&#10;file_open( char const * name, char const * mode )&#10; {&#10; if( FILE * f=fopen(name,mode) )&#10; return boost::shared_ptr&lt;FILE&gt;(f,fclose);&#10; else&#10; throw file_open_error() &lt;&lt;&#10; file_name_info(name) &lt;&lt;&#10; clib_failure(&quot;fopen&quot;,errno);&#10; }@]&#10;&#10;Note that the members of a boost::(:link http://www.boost.org/libs/tuple/doc/tuple_users_guide.html|tuple:) are stored separately in exception objects; they can only be retrieved individually, using (:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-15</id>
+ <id>-34</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:).&#10;&#10;!!!!Effects:&#10;&#10;Equivalent to x &lt;&lt; v.(:link http://www.boost.org/libs/tuple/doc/tuple_users_guide.html#accessing_elements|get:)&lt;0&gt;() &lt;&lt; ... &lt;&lt; v.(:link http://www.boost.org/libs/tuple/doc/tuple_users_guide.html#accessing_elements|get:)&lt;N&gt;().&#10;&#10;!!!!Returns:&#10;&#10;x.&#10;&#10;(:include throws:)&#10;</string>
+ <string>:).&#10;</string>
                                                                                                 </container>
                                                                                         </pair>
                                                                                         <pair>
                                                                                                 <weak_ptr>
                                                                                                         <expired>0</expired>
                                                                                                         <shared_ptr>
- <id>-25</id>
+ <id>-33</id>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
- <size>29</size>
+ <size>17</size>
                                                                                                         <variant>2</variant>
- <string>(:auto !!!:)&#10;&#10;(:include synopsis:)&#10;&#10;!!!!Requirements:&#10;&#10;The (:link </string>
+ <string>(:auto !!!:)&#10;&#10;(:include synopsis:)&#10;&#10;The (:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-25</id>
+ <id>-33</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:) function must not be called outside of a catch block.&#10;&#10;!!!!Returns:&#10;&#10;* An (: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>
                                                                                                                 <shared_ptr>
- <id>-6</id>
+ <id>-33</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:) that refers to the currently handled exception or a copy of the currently handled exception.&#10;* If the function needs to allocate memory and the attempt fails, it returns an (:link </string>
+ <string>:)&apos;s operations do not throw.&#10;&#10;Two instances of (:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-6</id>
+ <id>-33</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:) that refers to an instance of std::bad_alloc.&#10;&#10;!!!!Throws:&#10;&#10;Nothing.&#10;&#10;!!!!Notes:&#10;&#10;* It is unspecified whether the return values of two successive calls to (:link </string>
+ <string>:) are equivalent and compare equal if and only if they refer to the same exception.&#10;&#10;The default constructor of (:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-25</id>
+ <id>-33</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:) refer to the same exception object.&#10;* Correct implementation of (:link </string>
+ <string>:) produces the null value of the type. The null value is equivalent only to itself.&#10;&#10;!!!!Thread safety&#10;&#10;* It is legal for multiple threads to hold (:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-25</id>
+ <id>-33</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:) may require compiler support, unless (:link </string>
+ <string>:) references to the same exception object.&#10;* It is illegal for multiple threads to modify the same (:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-38</id>
+ <id>-33</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:) was used at the time the currently handled exception object was passed to throw. If (:link </string>
+ <string>:) object concurrently.&#10;* While calling (:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-38</id>
+ <id>-22</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:) was not used, and if the compiler does not provide the necessary support, then (:link </string>
+ <string>:) makes a copy of the current exception object, it is still possible for the two copies to share internal state. Therefore, in general it is not safe to call (:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-25</id>
+ <id>-15</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:) may return an (:link </string>
+ <string>:) concurrently to throw the same exception object into multiple threads.&#10;</string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-34</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>13</size>
+ <variant>2</variant>
+ <string>(:auto !!!:)&#10;&#10;(:include synopsis:)&#10;&#10;!!!!Requirements:&#10;&#10;* ErrorInfo must be an instance of the (:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-6</id>
+ <id>-35</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:) that refers to an instance of (:link </string>
+ <string>:) template.&#10;* E must be polymorphic.&#10;* The (:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-37</id>
+ <id>-34</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:). In this case, if the original exception object derives from boost::(:link </string>
+ <string>:) function must not be called outside of a catch block.&#10;&#10;!!!!Returns:&#10;&#10;* If dynamic_cast&lt;boost::(:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-15</id>
+ <id>-41</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:), then the boost::(:link </string>
+ <string>:) const *&gt;(&amp;x) is 0, or if x does not store an object of type ErrorInfo, the returned value is an empty shared_ptr.&#10;* Otherwise, the returned shared_ptr points to the stored value (use (:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-15</id>
+ <id>-25</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:) sub-object of the (:link </string>
+ <string> mod=&quot;/&quot;:) to store values in exception objects.) The shared_ptr is valid even after x has been destroyed.&#10;&#10;!!!!Throws:&#10;&#10;Nothing.&#10;&#10;!!!!Note:&#10;&#10;The interface of (:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-37</id>
+ <id>-34</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:) object is initialized by the boost::(:link </string>
+ <string>:) may be affected by the build (:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-15</id>
+ <id>-5</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:) copy constructor.&#10;</string>
+ <string>:).&#10;</string>
                                                                                                 </container>
                                                                                         </pair>
                                                                                         <pair>
                                                                                                 <weak_ptr>
                                                                                                         <expired>0</expired>
                                                                                                         <shared_ptr>
- <id>-26</id>
+ <id>-35</id>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
- <size>15</size>
+ <size>25</size>
                                                                                                         <variant>2</variant>
- <string>(:auto !!!:)&#10;&#10;(:include decl:)&#10;&#10;!!!!Returns:&#10;&#10;A string representation of all data stored in the boost::(:link </string>
+ <string>(:auto !!!:)&#10;&#10;(:include synopsis:)&#10;&#10;!!!!Requirements:&#10;&#10;T must have accessible copy constructor and must not be a reference (there is no requirement that T&apos;s copy constructor does not throw.)&#10;&#10;!!!!Description:&#10;&#10;This class template is used to associate a Tag type with a value type T. Objects of type (:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-15</id>
+ <id>-35</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:) object by the (:link </string>
+ <string>:)&lt;Tag,T&gt; can be passed to (:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-23</id>
+ <id>-25</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>|operator&lt;&lt;:) function. See &quot;(:link </string>
+ <string> mod=&quot;/&quot;:) to be stored in objects of type boost::(:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-16</id>
+ <id>-41</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string> mod=&quot;w&quot;:)&quot; for details.&#10;&#10;!!!!Throws:&#10;&#10;Nothing.&#10;&#10;!!!!Notes:&#10;&#10;*The return value remains valid until the exception object from which it was obtained is destroyed or modified.&#10;*The header </string>
+ <string>:).&#10;&#10;!!!!Note:&#10;&#10;The header &lt;(:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-31</id>
+ <id>-12</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string> provides a namespace-scope function </string>
+ <string>:)&gt; provides a declaration of the (:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-27</id>
+ <id>-35</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string> which takes a std::exception. It calls </string>
+ <string>:) template, which is sufficient for the purpose of typedefing an instance for specific Tag and T, like this:&#10;&#10;[@#include &lt;(:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-26</id>
+ <id>-12</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string> if its argument can be converted to boost::</string>
+ <string>:)&gt;&#10;&#10;typedef boost::(:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-15</id>
+ <id>-35</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>; otherwise it returns a string that combines the value of std::exception::what and the exception&apos;s dynamic type.&#10;</string>
- </container>
- </pair>
- <pair>
- <weak_ptr>
- <expired>0</expired>
- <shared_ptr>
- <id>-27</id>
- </shared_ptr>
- </weak_ptr>
- <container>
- <size>5</size>
+ <string>:)&lt;struct tag_errno,int&gt; errno_info;@]&#10;&#10;Of course, to actually add an (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-35</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:) object to (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-41</id>
+ </shared_ptr>
+ </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>(:auto !!!:)&#10;&#10;(:include synopsis:)&#10;&#10;!!!!Returns:&#10;&#10;If dynamic_cast&lt;boost::(:link </string>
+ <string> mod=&quot;p&quot;:) using (:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-15</id>
+ <id>-25</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:) const *&gt;(&amp;x) is not null, the returned string is initialized by a call to (:link </string>
+ <string> mod=&quot;/&quot;:), or to retrieve it using (:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-26</id>
+ <id>-34</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:); otherwise, the returned string combines the output of x.what() and typeid(x).name().&#10;</string>
- </container>
- </pair>
- <pair>
- <weak_ptr>
- <expired>0</expired>
- <shared_ptr>
- <id>-28</id>
- </shared_ptr>
- </weak_ptr>
- <container>
- <size>3</size>
- <variant>2</variant>
- <string>(:auto !!!:)&#10;&#10;(:include decl:)&#10;&#10;!!!!Effects:&#10;&#10;&#10;&#10;Frees all resources associated with a boost::(:link </string>
+ <string>:), you must first #include &lt;(:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-15</id>
+ <id>-19</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:) object.&#10;&#10;!!!!Throws:&#10;&#10;&#10;&#10;Nothing.&#10;</string>
+ <string>:)&gt;.&#10;</string>
                                                                                                 </container>
                                                                                         </pair>
                                                                                         <pair>
                                                                                                 <weak_ptr>
                                                                                                         <expired>0</expired>
                                                                                                         <shared_ptr>
- <id>-29</id>
+ <id>-36</id>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
@@ -5587,7 +5900,7 @@
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-17</id>
+ <id>-27</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
@@ -5596,7 +5909,7 @@
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-22</id>
+ <id>-35</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
@@ -5605,7 +5918,7 @@
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-15</id>
+ <id>-41</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
@@ -5614,7 +5927,7 @@
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-22</id>
+ <id>-35</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
@@ -5623,7 +5936,7 @@
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-15</id>
+ <id>-41</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
@@ -5632,7 +5945,7 @@
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-23</id>
+ <id>-25</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
@@ -5641,7 +5954,7 @@
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-7</id>
+ <id>-34</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
@@ -5650,7 +5963,7 @@
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-7</id>
+ <id>-34</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
@@ -5661,112 +5974,103 @@
                                                                                                 <weak_ptr>
                                                                                                         <expired>0</expired>
                                                                                                         <shared_ptr>
- <id>-30</id>
+ <id>-37</id>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
- <size>37</size>
- <variant>2</variant>
- <string>(:auto !!!:)&#10;&#10;When you catch an exception, you can call (:link </string>
- <variant>1</variant>
- <weak_ptr>
- <expired>0</expired>
- <shared_ptr>
- <id>-25</id>
- </shared_ptr>
- </weak_ptr>
+ <size>27</size>
                                                                                                         <variant>2</variant>
- <string>:) to get an (:link </string>
+ <string>(:auto !!:)&#10;&#10;Some exception hierarchies can not be modified to make boost::(:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-6</id>
+ <id>-41</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:) object:&#10;&#10;[@#include &lt;(:link </string>
+ <string>:) a base type. In this case, the (:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-9</id>
+ <id>-26</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:)&gt;&#10;#include &lt;boost/thread.hpp&gt;&#10;#include &lt;boost/bind.hpp&gt;&#10;&#10;void do_work(); //throws cloning-enabled 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>-15</id>
+ <id>-41</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:)s&#10;&#10;void&#10;worker_thread( boost::(:link </string>
+ <string>:) anyway. Here is an example:&#10;&#10;[@#include &lt;(:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-6</id>
+ <id>-27</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:) &amp; error )&#10; {&#10; try&#10; {&#10; do_work();&#10; error = boost::(:link </string>
+ <string>:)&gt;&#10;#include &lt;stdexcept&gt;&#10;&#10;typedef boost::(:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-6</id>
+ <id>-35</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:)();&#10; }&#10; catch(&#10; ... )&#10; {&#10; error = boost::(:link </string>
+ <string>:)&lt;struct tag_std_range_min,size_t&gt; std_range_min;&#10;typedef boost::(:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-25</id>
+ <id>-35</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:)();&#10; }&#10; }@]&#10;&#10;In the above example, note that (:link </string>
+ <string>:)&lt;struct tag_std_range_max,size_t&gt; std_range_max;&#10;typedef boost::(:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-25</id>
+ <id>-35</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:) captures the original type of the exception object. The exception can be thrown again using the (:link </string>
+ <string>:)&lt;struct tag_std_range_index,size_t&gt; std_range_index;&#10;&#10;template &lt;class T&gt;&#10;class&#10;my_container&#10; {&#10; public:&#10;&#10; size_t size() const;&#10;&#10; T const &amp;&#10; operator[]( size_t i ) const&#10; {&#10; if( i &gt; size() )&#10; throw boost::(:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-5</id>
+ <id>-26</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:) function:&#10;&#10;[@// ...continued&#10;&#10;void&#10;work()&#10; {&#10; boost::(:link </string>
+ <string>:)(std::range_error(&quot;Index out of range&quot;)) &lt;&lt;&#10; std_range_min(0) &lt;&lt;&#10; std_range_max(size()) &lt;&lt;&#10; std_range_index(i);&#10; //....&#10; }&#10; };&#10;@]&#10;&#10;The call to (:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-6</id>
+ <id>-26</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:) error;&#10; boost::(:link http://www.boost.org/doc/html/boost/thread.html|thread:) t( boost::(:link http://www.boost.org/libs/bind/bind.html|bind:)(worker_thread,boost::(:link http://www.boost.org/doc/html/ref.html|ref:)(error)) );&#10; t.(:link http://www.boost.org/doc/html/boost/thread.html|join:)();&#10; if( error )&#10; boost::(:link </string>
+ <string>:)&lt;T&gt; gets us an object of &apos;&apos;unspecified type&apos;&apos; which is guaranteed to derive from both boost::(:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-5</id>
+ <id>-41</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:)(error);&#10; }@]&#10;&#10;Note that (:link </string>
+ <string>:) and T. This makes it possible to use (:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
@@ -5775,342 +6079,235 @@
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:) could fail to copy the original exception object in the following cases:&#10;&#10;* if there is not enough memory, in which case the returned (:link </string>
+ <string> mod=&quot;/&quot;:) to store additional information in the exception object. The exception can be intercepted as T &amp;, so 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>-6</id>
+ <id>-41</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:) points to an instance of std::bad_alloc, or&#10;* if (:link </string>
+ <string>:) &amp;, so that (:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-38</id>
+ <id>-39</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:) was not used in the throw-expression passed to the original throw statement and the current implementation does not have the necessary compiler-specific support to copy the exception automatically, in which case the returned (:link </string>
- <variant>1</variant>
- <weak_ptr>
- <expired>0</expired>
- <shared_ptr>
- <id>-6</id>
- </shared_ptr>
- </weak_ptr>
+ <string>|more information can be added to the exception at a later time:).&#10;</string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-38</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>13</size>
                                                                                                         <variant>2</variant>
- <string>:) points to an instance of (:link </string>
+ <string>(:auto !!!:)&#10;&#10;(:include synopsis:)&#10;&#10;!!!!Requirements:&#10;&#10;E must derive publicly from std::exception.&#10;&#10;!!!!Effects:&#10;&#10;* If BOOST_NO_EXCEPTIONS is not defined, boost::(:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-37</id>
+ <id>-38</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:).&#10;&#10;Regardless, the use of (:link </string>
+ <string>:)(e) is equivalent to throw boost::(:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-25</id>
+ <id>-13</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:) and (:link </string>
+ <string>:)(boost::(:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-5</id>
+ <id>-26</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:) in the above examples is well-formed.&#10;</string>
- </container>
- </pair>
- <pair>
- <weak_ptr>
- <expired>0</expired>
- <shared_ptr>
- <id>-31</id>
- </shared_ptr>
- </weak_ptr>
- <container>
- <size>1</size>
- <variant>2</variant>
- <string>(:auto !!:)&#10;&#10;!!!Synopsis&#10;&#10;(:include synopsis:)&#10;</string>
- </container>
- </pair>
- <pair>
- <weak_ptr>
- <expired>0</expired>
- <shared_ptr>
- <id>-32</id>
- </shared_ptr>
- </weak_ptr>
- <container>
- <size>1</size>
- <variant>2</variant>
- <string>(:auto !!:)&#10;&#10;!!!Synopsis&#10;&#10;(:include synopsis:)&#10;</string>
- </container>
- </pair>
- <pair>
- <weak_ptr>
- <expired>0</expired>
- <shared_ptr>
- <id>-33</id>
- </shared_ptr>
- </weak_ptr>
- <container>
- <size>1</size>
- <variant>2</variant>
- <string>(:auto !!:)&#10;&#10;!!!Synopsis&#10;&#10;(:include synopsis:)&#10;</string>
- </container>
- </pair>
- <pair>
- <weak_ptr>
- <expired>0</expired>
- <shared_ptr>
- <id>-34</id>
- </shared_ptr>
- </weak_ptr>
- <container>
- <size>1</size>
- <variant>2</variant>
- <string>(:auto !!:)&#10;&#10;!!!Synopsis&#10;&#10;(:include synopsis:)&#10;</string>
- </container>
- </pair>
- <pair>
- <weak_ptr>
- <expired>0</expired>
- <shared_ptr>
- <id>-35</id>
- </shared_ptr>
- </weak_ptr>
- <container>
- <size>1</size>
- <variant>2</variant>
- <string>(:auto !!:)&#10;&#10;!!!Synopsis&#10;&#10;(:include synopsis:)&#10;</string>
- </container>
- </pair>
- <pair>
- <weak_ptr>
- <expired>0</expired>
- <shared_ptr>
- <id>-36</id>
- </shared_ptr>
- </weak_ptr>
- <container>
- <size>7</size>
- <variant>2</variant>
- <string>(:auto !!!:)&#10;&#10;(:include decl:)&#10;&#10;!!!!Effects:&#10;&#10;* Default constructor: initializes an empty boost::(:link </string>
+ <string>:)(e)), unless BOOST_EXCEPTION_DISABLE is defined, in which case boost::(:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-15</id>
+ <id>-38</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:) object.&#10;* Copy constructor: initializes a boost::(:link </string>
+ <string>:)(e) is equivalent to throw e;&#10;* If BOOST_NO_EXCEPTIONS is defined, the function is left undefined, and the user is expected to supply an appropriate definition. Callers of (:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-15</id>
+ <id>-38</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:) object which shares with x all data added through (:link </string>
+ <string>:) are allowed to assume that the function never returns; therefore, if the user-defined (:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-23</id>
+ <id>-38</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>|operator&lt;&lt;:), including data that is added at a future time.&#10;&#10;!!!!Throws:&#10;&#10;Nothing.&#10;</string>
+ <string>:) returns, the behavior is undefined.&#10;</string>
                                                                                                 </container>
                                                                                         </pair>
                                                                                         <pair>
                                                                                                 <weak_ptr>
                                                                                                         <expired>0</expired>
                                                                                                         <shared_ptr>
- <id>-37</id>
+ <id>-39</id>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
- <size>5</size>
- <variant>2</variant>
- <string>(:auto !!!:)&#10;&#10;(:include synopsis:)&#10;&#10;This type is used by the (:link </string>
- <variant>1</variant>
- <weak_ptr>
- <expired>0</expired>
- <shared_ptr>
- <id>-6</id>
- </shared_ptr>
- </weak_ptr>
+ <size>11</size>
                                                                                                         <variant>2</variant>
- <string>:) support in Boost Exception. Please see (:link </string>
+ <string>(:auto !!:)&#10;&#10;All exception types that derive from boost::(:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-25</id>
- </shared_ptr>
- </weak_ptr>
- <variant>2</variant>
- <string>:).&#10;</string>
- </container>
- </pair>
- <pair>
- <weak_ptr>
- <expired>0</expired>
- <shared_ptr>
- <id>-38</id>
- </shared_ptr>
- </weak_ptr>
- <container>
- <size>21</size>
+ <id>-41</id>
+ </shared_ptr>
+ </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>(:auto !!!:)&#10;&#10;(:include synopsis:)&#10;&#10;!!!!Requirements:&#10;&#10;T must be of user-defined type with an accessible no-throw copy constructor.&#10;&#10;!!!!Returns:&#10;&#10;An object of &apos;&apos;unspecified&apos;&apos; type which derives publicly from T. That is, the returned object can be intercepted by a catch(T &amp;).&#10;&#10;!!!!Description:&#10;&#10;&#10;&#10;This function is designed to be used directly in a throw-expression to enable the (:link </string>
+ <string>:) can be used as type-safe containers of arbitrary data objects, while complying with the no-throw requirements (15.5.1) of the ANSI C++ standard for exception types. Data can be added to a boost::(:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-6</id>
+ <id>-41</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:) support in Boost Exception. For example:&#10;&#10;[@class&#10;my_exception:&#10; public std::exception&#10; {&#10; };&#10;&#10;....&#10;throw boost::(:link </string>
+ <string>:) at the time of the throw, or at a later time.&#10;&#10;(:include </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-38</id>
+ <id>-36</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:)(my_exception());@]&#10;&#10;Unless (:link </string>
+ <string>:)&#10;(:include </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-38</id>
+ <id>-17</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:) is called at the time an exception object is used in a throw-expression, an attempt to copy it using (:link </string>
+ <string>:)&#10;(:include </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-25</id>
+ <id>-32</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:) may return an (:link </string>
+ <string>:)&#10;</string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-40</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>17</size>
+ <variant>2</variant>
+ <string>(:auto !!:)&#10;&#10;Boost Exception provides a namespace-scope function (:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-6</id>
+ <id>-30</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:) which refers to an instance of (:link </string>
+ <string>:) which takes a boost::(:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-37</id>
+ <id>-41</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:). See (:link </string>
+ <string>:). The returned string contains:&#10;&#10;*the string representation of all data objects added to the boost::(:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-25</id>
+ <id>-41</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:) for details.&#10;&#10;!!!!Note:&#10;&#10;Instead of using the throw keyword directly, it is preferable to call boost::(:link </string>
+ <string>:) through (:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-43</id>
+ <id>-25</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:). This is guaranteed to throw an exception that derives from boost::(:link </string>
+ <string> mod=&quot;/&quot;:);&#10;*the output from std::exception::what;&#10;*additional platform-specific diagnostic information.&#10;&#10;The returned string is not presentable as a friendly user message, but because it is generated automatically, it is useful for debugging or logging purposes. Here is an example:&#10;&#10;[@#include &lt;(:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-15</id>
+ <id>-27</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:) and supports the (:link </string>
+ <string>:)&gt;&#10;#include &lt;iostream&gt;&#10;&#10;void f(); //throws unknown types that derive from boost::(:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-6</id>
+ <id>-41</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:) functionality.&#10;</string>
- </container>
- </pair>
- <pair>
- <weak_ptr>
- <expired>0</expired>
- <shared_ptr>
- <id>-39</id>
- </shared_ptr>
- </weak_ptr>
- <container>
- <size>0</size>
- </container>
- </pair>
- <pair>
- <weak_ptr>
- <expired>0</expired>
- <shared_ptr>
- <id>-40</id>
- </shared_ptr>
- </weak_ptr>
- <container>
- <size>5</size>
- <variant>2</variant>
- <string>(:auto !!!:)&#10;&#10;(:include synopsis:)&#10;&#10;!!!!Requirements:&#10;&#10;T must be a user-defined type with accessible no-throw copy constructor as per (15.5.1).&#10;&#10;!!!!Returns:&#10;&#10;* If T derives from boost::</string>
+ <string>:).&#10;&#10;void&#10;g()&#10; {&#10; try&#10; {&#10; f();&#10; }&#10; catch(&#10; boost::(:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-15</id>
+ <id>-41</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>, the returned object is of type T and is a copy of x.&#10;* Otherwise, the returned object is of an unspecified type that derives publicly from both T and boost::</string>
+ <string>:) &amp; e )&#10; {&#10; std::cerr &lt;&lt; (:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-15</id>
+ <id>-30</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>. The T sub-object is initialized from x by the T copy constructor.&#10;&#10;!!!!Throws:&#10;&#10;Nothing.&#10;</string>
+ <string>:)(e);&#10; }&#10; }@]&#10;</string>
                                                                                                 </container>
                                                                                         </pair>
                                                                                         <pair>
@@ -6121,54 +6318,63 @@
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
- <size>11</size>
+ <size>13</size>
                                                                                                         <variant>2</variant>
- <string>(:auto !!:)&#10;&#10;Boost Exception supports transporting of exception objects between threads through cloning. This system is similar to (:link http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2179.html|N2179:), but because Boost Exception can not rely on language support, the use of (:link </string>
+ <string>(:auto !!!:)&#10;&#10;(:include synopsis:)&#10;&#10;Class boost::(:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-38</id>
+ <id>-41</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:) at the time of the throw is required in order to use cloning.&#10;&#10;!!!!Note:&#10;&#10;All exceptions emitted by the familiar function boost::(:link </string>
+ <string>:) is designed to be used as a universal base for user-defined exception types.&#10;&#10;An object of any type deriving from boost::(:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-43</id>
+ <id>-41</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:) are guaranteed to derive from boost::(:link </string>
+ <string>:) can store data of arbitrary types, using the (:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-15</id>
+ <id>-35</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:) and to support cloning.&#10;&#10;(:include </string>
+ <string>:) wrapper and (:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-21</id>
+ <id>-25</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:)&#10;(:include </string>
+ <string> mod=&quot;/&quot;:).&#10;&#10;To retrieve data from a boost::(:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-30</id>
+ <id>-41</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:)&#10;</string>
+ <string>:) object, use the (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-34</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:) function template.&#10;</string>
                                                                                                 </container>
                                                                                         </pair>
                                                                                         <pair>
@@ -6179,74 +6385,76 @@
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
- <size>0</size>
- </container>
- </pair>
- <pair>
- <weak_ptr>
- <expired>0</expired>
- <shared_ptr>
- <id>-43</id>
- </shared_ptr>
- </weak_ptr>
- <container>
- <size>13</size>
- <variant>2</variant>
- <string>(:auto !!!:)&#10;&#10;(:include synopsis:)&#10;&#10;!!!!Requirements:&#10;&#10;E must derive publicly from std::exception.&#10;&#10;!!!!Effects:&#10;&#10;* If BOOST_NO_EXCEPTIONS is not defined, boost::(:link </string>
- <variant>1</variant>
- <weak_ptr>
- <expired>0</expired>
- <shared_ptr>
- <id>-43</id>
- </shared_ptr>
- </weak_ptr>
+ <size>11</size>
                                                                                                         <variant>2</variant>
- <string>:)(e) is equivalent to throw boost::(:link </string>
+ <string>(:auto !!!:)&#10;&#10;Here is how cloning can be enabled in a throw-expression (15.1):&#10;&#10;[@#include &lt;(:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-38</id>
+ <id>-19</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:)(boost::(:link </string>
+ <string>:)&gt;&#10;#include &lt;stdio.h&gt;&#10;#include &lt;errno.h&gt;&#10;&#10;typedef boost::error_info&lt;struct tag_errno,int&gt; errno_info;&#10;&#10;class file_read_error: public boost::(:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-40</id>
+ <id>-41</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:)(e)), unless BOOST_EXCEPTION_DISABLE is defined, in which case boost::(:link </string>
+ <string>:) { };&#10;&#10;void&#10;file_read( FILE * f, void * buffer, size_t size )&#10; {&#10; if( size!=fread(buffer,1,size,f) )&#10; throw boost::(:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-43</id>
+ <id>-13</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:)(e) is equivalent to throw e;&#10;* If BOOST_NO_EXCEPTIONS is defined, the function is left undefined, and the user is expected to supply an appropriate definition. Callers of </string>
+ <string>:)(file_read_error()) &lt;&lt;&#10; errno_info(errno);&#10; }@]&#10;&#10;Of course, (:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-43</id>
+ <id>-13</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string> are allowed to assume that the function never returns; therefore, if the user-defined </string>
+ <string>:) may be used with any exception type; there is no requirement that it should derive from boost::(:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-43</id>
+ <id>-41</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string> returns, the behavior is undefined.&#10;</string>
+ <string>:).&#10;</string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-43</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-44</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
                                                                                                 </container>
                                                                                         </pair>
                                                                                 </sorted>
@@ -6256,13 +6464,13 @@
                                                         <pair>
                                                                 <string>throws</string>
                                                                 <shared_ptr>
- <id>48</id>
+ <id>49</id>
                                                                         <type>
                                                                                 <string>reno_layer</string>
                                                                         </type>
                                                                         <object>
                                                                                 <sorted>
- <size>39</size>
+ <size>40</size>
                                                                                         <pair>
                                                                                                 <weak_ptr>
                                                                                                         <expired>0</expired>
@@ -6282,7 +6490,9 @@
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
- <size>0</size>
+ <size>1</size>
+ <variant>2</variant>
+ <string>!!!!Throws:&#10;&#10;std::bad_alloc, or any exception emitted by T1..TN copy constructor.&#10;</string>
                                                                                                 </container>
                                                                                         </pair>
                                                                                         <pair>
@@ -6469,9 +6679,7 @@
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
- <size>1</size>
- <variant>2</variant>
- <string>!!!!Throws:&#10;&#10;std::bad_alloc, or any exception emitted by the T copy constructor.&#10;</string>
+ <size>0</size>
                                                                                                 </container>
                                                                                         </pair>
                                                                                         <pair>
@@ -6482,9 +6690,7 @@
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
- <size>1</size>
- <variant>2</variant>
- <string>!!!!Throws:&#10;&#10;std::bad_alloc, or any exception emitted by T1..TN copy constructor.&#10;</string>
+ <size>0</size>
                                                                                                 </container>
                                                                                         </pair>
                                                                                         <pair>
@@ -6495,7 +6701,9 @@
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
- <size>0</size>
+ <size>1</size>
+ <variant>2</variant>
+ <string>!!!!Throws:&#10;&#10;std::bad_alloc, or any exception emitted by the T copy constructor.&#10;</string>
                                                                                                 </container>
                                                                                         </pair>
                                                                                         <pair>
@@ -6696,6 +6904,17 @@
                                                                                                         <size>0</size>
                                                                                                 </container>
                                                                                         </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-44</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
                                                                                 </sorted>
                                                                         </object>
                                                                 </shared_ptr>
@@ -6703,13 +6922,13 @@
                                                         <pair>
                                                                 <string>synopsis</string>
                                                                 <shared_ptr>
- <id>49</id>
+ <id>50</id>
                                                                         <type>
                                                                                 <string>reno_layer</string>
                                                                         </type>
                                                                         <object>
                                                                                 <sorted>
- <size>39</size>
+ <size>40</size>
                                                                                         <pair>
                                                                                                 <weak_ptr>
                                                                                                         <expired>0</expired>
@@ -6718,18 +6937,7 @@
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
- <size>3</size>
- <variant>2</variant>
- <string>`#include &lt;(:link </string>
- <variant>1</variant>
- <weak_ptr>
- <expired>0</expired>
- <shared_ptr>
- <id>-9</id>
- </shared_ptr>
- </weak_ptr>
- <variant>2</variant>
- <string>:)&gt;&#10;&#10;[@namespace&#10;boost&#10; {&#10;(:include decl pre_indent=&quot;4&quot;:)&#10; }@]&#10;</string>
+ <size>0</size>
                                                                                                 </container>
                                                                                         </pair>
                                                                                         <pair>
@@ -6740,18 +6948,27 @@
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
- <size>3</size>
+ <size>5</size>
                                                                                                         <variant>2</variant>
                                                                                                         <string>`#include &lt;(:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-9</id>
+ <id>-10</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:)&gt;&#10;&#10;[@namespace&#10;boost&#10; {&#10;(:include decl pre_indent=&quot;4&quot;:)&#10; }@]&#10;</string>
+ <string>:)&gt;&#10;&#10;[@namespace&#10;boost&#10; {&#10;(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-6</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> decl pre_indent=&quot;4&quot;:)&#10; }@]&#10;</string>
                                                                                                 </container>
                                                                                         </pair>
                                                                                         <pair>
@@ -6769,7 +6986,7 @@
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-20</id>
+ <id>-9</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
@@ -6819,18 +7036,9 @@
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
- <size>3</size>
- <variant>2</variant>
- <string>`#include &lt;(:link </string>
- <variant>1</variant>
- <weak_ptr>
- <expired>0</expired>
- <shared_ptr>
- <id>-20</id>
- </shared_ptr>
- </weak_ptr>
+ <size>1</size>
                                                                                                         <variant>2</variant>
- <string>:)&gt;&#10;&#10;[@namespace&#10;boost&#10; {&#10;(:include decl pre_indent=&quot;4&quot;:)&#10; }@]&#10;</string>
+ <string>[@#include &lt;boost/tuple/tuple.hpp&gt;&#10;&#10;namespace&#10;boost&#10; {&#10;(:include api pre_indent=&quot;4&quot;:)&#10; }@]&#10;</string>
                                                                                                 </container>
                                                                                         </pair>
                                                                                         <pair>
@@ -6841,7 +7049,9 @@
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
- <size>0</size>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include api:)&#10;</string>
                                                                                                 </container>
                                                                                         </pair>
                                                                                         <pair>
@@ -6852,7 +7062,9 @@
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
- <size>0</size>
+ <size>1</size>
+ <variant>2</variant>
+ <string>[@namespace&#10;boost&#10; {&#10;(:include api pre_indent=&quot;4&quot;:)&#10; }@]&#10;</string>
                                                                                                 </container>
                                                                                         </pair>
                                                                                         <pair>
@@ -6865,16 +7077,16 @@
                                                                                                 <container>
                                                                                                         <size>3</size>
                                                                                                         <variant>2</variant>
- <string>[@#include &lt;(:link </string>
+ <string>`#include &lt;</string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-8</id>
+ <id>-20</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:)&gt;&#10;&#10;namespace&#10;boost&#10; {&#10;(:include api pre_indent=&quot;4&quot;:)&#10; }@]&#10;</string>
+ <string>&gt;&#10;&#10;[@namespace&#10;boost&#10; {&#10;(:include decl pre_indent=&quot;4&quot;:)&#10; }@]&#10;</string>
                                                                                                 </container>
                                                                                         </pair>
                                                                                         <pair>
@@ -6914,11 +7126,11 @@
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-8</id>
+ <id>-9</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:)&gt;&#10;&#10;[@namespace&#10;boost&#10; {&#10;(:include def pre_indent=&quot;4&quot;:)&#10; }@]&#10;</string>
+ <string>:)&gt;&#10;&#10;[@namespace&#10;boost&#10; {&#10;(:include decl pre_indent=&quot;4&quot;:)&#10; }@]&#10;</string>
                                                                                                 </container>
                                                                                         </pair>
                                                                                         <pair>
@@ -6929,7 +7141,9 @@
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
- <size>0</size>
+ <size>1</size>
+ <variant>2</variant>
+ <string>[@#include &lt;boost/shared_ptr.hpp&gt;&#10;&#10;namespace&#10;boost&#10; {&#10;(:include api pre_indent=&quot;4&quot;:)&#10; }@]&#10;</string>
                                                                                                 </container>
                                                                                         </pair>
                                                                                         <pair>
@@ -6940,9 +7154,7 @@
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
- <size>1</size>
- <variant>2</variant>
- <string>[@(:include api:)@]&#10;</string>
+ <size>0</size>
                                                                                                 </container>
                                                                                         </pair>
                                                                                         <pair>
@@ -6964,7 +7176,18 @@
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
- <size>0</size>
+ <size>3</size>
+ <variant>2</variant>
+ <string>[@#include &lt;(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-8</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)&gt;&#10;#include &lt;boost/current_function.hpp&gt;&#10;#include &lt;boost/shared_ptr.hpp&gt;&#10;&#10;namespace&#10;boost&#10; {&#10;(:include api pre_indent=&quot;4&quot;:)&#10; }@]&#10;</string>
                                                                                                 </container>
                                                                                         </pair>
                                                                                         <pair>
@@ -6977,7 +7200,7 @@
                                                                                                 <container>
                                                                                                         <size>3</size>
                                                                                                         <variant>2</variant>
- <string>[@#include &lt;(:link </string>
+ <string>[@#include &lt;</string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
@@ -6986,7 +7209,7 @@
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:)&gt;&#10;#include &lt;boost/current_function.hpp&gt;&#10;#include &lt;boost/shared_ptr.hpp&gt;&#10;&#10;namespace&#10;boost&#10; {&#10;(:include api pre_indent=&quot;4&quot;:)&#10; }@]&#10;</string>
+ <string>&gt;&#10;&#10;namespace&#10;boost&#10; {&#10;(:include api pre_indent=&quot;4&quot;:)&#10; }@]&#10;</string>
                                                                                                 </container>
                                                                                         </pair>
                                                                                         <pair>
@@ -6997,7 +7220,18 @@
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
- <size>0</size>
+ <size>3</size>
+ <variant>2</variant>
+ <string>[@#include &lt;</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-8</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>&gt;&#10;&#10;namespace&#10;boost&#10; {&#10;(:include api pre_indent=&quot;4&quot;:)&#10; }@]&#10;</string>
                                                                                                 </container>
                                                                                         </pair>
                                                                                         <pair>
@@ -7015,11 +7249,11 @@
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-20</id>
+ <id>-9</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:)&gt;&#10;&#10;[@namespace&#10;boost&#10; {&#10;(:include def pre_indent=&quot;4&quot;:)&#10; }@]&#10;</string>
+ <string>:)&gt;&#10;&#10;[@namespace&#10;boost&#10; {&#10;(:include decl pre_indent=&quot;4&quot;:)&#10; }@]&#10;</string>
                                                                                                 </container>
                                                                                         </pair>
                                                                                         <pair>
@@ -7032,16 +7266,16 @@
                                                                                                 <container>
                                                                                                         <size>3</size>
                                                                                                         <variant>2</variant>
- <string>`#include &lt;(:link </string>
+ <string>`#include &lt;</string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-20</id>
+ <id>-11</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:)&gt;\\&#10;&#10;[@namespace&#10;boost&#10; {&#10;(:include decl pre_indent=&quot;4&quot;:)&#10; }@]&#10;</string>
+ <string>&gt;&#10;&#10;(:include decl:)&#10;</string>
                                                                                                 </container>
                                                                                         </pair>
                                                                                         <pair>
@@ -7052,27 +7286,18 @@
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
- <size>5</size>
- <variant>2</variant>
- <string>`#include &lt;(:link </string>
- <variant>1</variant>
- <weak_ptr>
- <expired>0</expired>
- <shared_ptr>
- <id>-34</id>
- </shared_ptr>
- </weak_ptr>
+ <size>3</size>
                                                                                                         <variant>2</variant>
- <string>:)&gt;&#10;&#10;[@namespace&#10;boost&#10; {&#10;(:include </string>
+ <string>[@#include &lt;string&gt;&#10;&#10;namespace&#10;boost&#10; {&#10;(:include </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-24</id>
+ <id>-41</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string> decl pre_indent=&quot;4&quot;:)&#10; }@]&#10;</string>
+ <string> decl pre_indent=&quot;4&quot;:)&#10;(:include api pre_indent=&quot;4&quot;:)&#10; }@]&#10;</string>
                                                                                                 </container>
                                                                                         </pair>
                                                                                         <pair>
@@ -7090,11 +7315,11 @@
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-9</id>
+ <id>-19</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:)&gt;&#10;&#10;[@namespace&#10;boost&#10; {&#10;(:include decl pre_indent=&quot;4&quot;:)&#10; }@]&#10;</string>
+ <string>:)&gt;\\&#10;&#10;[@namespace&#10;boost&#10; {&#10;(:include decl pre_indent=&quot;4&quot;:)&#10; }@]&#10;</string>
                                                                                                 </container>
                                                                                         </pair>
                                                                                         <pair>
@@ -7105,7 +7330,18 @@
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
- <size>0</size>
+ <size>3</size>
+ <variant>2</variant>
+ <string>`#include &lt;</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-21</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>&gt;&#10;&#10;[@namespace&#10;boost&#10; {&#10;(:include decl pre_indent=&quot;4&quot;:)&#10; }@]&#10;</string>
                                                                                                 </container>
                                                                                         </pair>
                                                                                         <pair>
@@ -7116,18 +7352,9 @@
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
- <size>3</size>
- <variant>2</variant>
- <string>`#include &lt;(:link </string>
- <variant>1</variant>
- <weak_ptr>
- <expired>0</expired>
- <shared_ptr>
- <id>-31</id>
- </shared_ptr>
- </weak_ptr>
+ <size>1</size>
                                                                                                         <variant>2</variant>
- <string>:)&gt;&#10;&#10;[@namespace&#10;boost&#10; {&#10;(:include decl pre_indent=&quot;4&quot;:)&#10; }@]&#10;</string>
+ <string>[@(:include api:)@]&#10;</string>
                                                                                                 </container>
                                                                                         </pair>
                                                                                         <pair>
@@ -7160,7 +7387,18 @@
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
- <size>0</size>
+ <size>3</size>
+ <variant>2</variant>
+ <string>`#include &lt;(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-24</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)&gt;\\&#10;&#10;[@namespace&#10;boost&#10; {&#10;(:include decl pre_indent=&quot;4&quot;:)&#10; }@]&#10;</string>
                                                                                                 </container>
                                                                                         </pair>
                                                                                         <pair>
@@ -7171,9 +7409,7 @@
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
- <size>1</size>
- <variant>2</variant>
- <string>[@#include &lt;exception&gt;&#10;&#10;namespace&#10;boost&#10; {&#10;(:include api pre_indent=&quot;4&quot;:)&#10; }@]&#10;</string>
+ <size>0</size>
                                                                                                 </container>
                                                                                         </pair>
                                                                                         <pair>
@@ -7184,18 +7420,7 @@
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
- <size>3</size>
- <variant>2</variant>
- <string>[@#include &lt;(:link </string>
- <variant>1</variant>
- <weak_ptr>
- <expired>0</expired>
- <shared_ptr>
- <id>-8</id>
- </shared_ptr>
- </weak_ptr>
- <variant>2</variant>
- <string>:)&gt;&#10;&#10;namespace&#10;boost&#10; {&#10;(:include api pre_indent=&quot;4&quot;:)&#10; }@]&#10;</string>
+ <size>0</size>
                                                                                                 </container>
                                                                                         </pair>
                                                                                         <pair>
@@ -7206,9 +7431,18 @@
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
- <size>1</size>
+ <size>3</size>
                                                                                                         <variant>2</variant>
- <string>[@namespace&#10;boost&#10; {&#10;(:include api pre_indent=&quot;4&quot;:)&#10; }@]&#10;</string>
+ <string>`#include &lt;(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-9</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)&gt;&#10;&#10;[@namespace&#10;boost&#10; {&#10;(:include decl pre_indent=&quot;4&quot;:)&#10; }@]&#10;</string>
                                                                                                 </container>
                                                                                         </pair>
                                                                                         <pair>
@@ -7219,9 +7453,18 @@
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
- <size>1</size>
+ <size>3</size>
                                                                                                         <variant>2</variant>
- <string>[@#include &lt;boost/tuple/tuple.hpp&gt;&#10;&#10;namespace&#10;boost&#10; {&#10;(:include api pre_indent=&quot;4&quot;:)&#10; }@]&#10;</string>
+ <string>`#include &lt;</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-16</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>&gt;&#10;&#10;[@namespace&#10;boost&#10; {&#10;(:include decl pre_indent=&quot;4&quot;:)&#10; }@]&#10;</string>
                                                                                                 </container>
                                                                                         </pair>
                                                                                         <pair>
@@ -7232,27 +7475,18 @@
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
- <size>5</size>
- <variant>2</variant>
- <string>[@#include &lt;(:link </string>
- <variant>1</variant>
- <weak_ptr>
- <expired>0</expired>
- <shared_ptr>
- <id>-13</id>
- </shared_ptr>
- </weak_ptr>
+ <size>3</size>
                                                                                                         <variant>2</variant>
- <string>:)&gt;&#10;#include &lt;(:link </string>
+ <string>`#include &lt;(:link </string>
                                                                                                         <variant>1</variant>
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-32</id>
+ <id>-19</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:)&gt;&#10;#include &lt;exception&gt;&#10;&#10;namespace&#10;boost&#10; {&#10;(:include api pre_indent=&quot;4&quot;:)&#10; }@]&#10;</string>
+ <string>:)&gt;&#10;&#10;[@namespace&#10;boost&#10; {&#10;(:include def pre_indent=&quot;4&quot;:)&#10; }@]&#10;</string>
                                                                                                 </container>
                                                                                         </pair>
                                                                                         <pair>
@@ -7274,18 +7508,7 @@
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
- <size>3</size>
- <variant>2</variant>
- <string>`#include &lt;(:link </string>
- <variant>1</variant>
- <weak_ptr>
- <expired>0</expired>
- <shared_ptr>
- <id>-9</id>
- </shared_ptr>
- </weak_ptr>
- <variant>2</variant>
- <string>:)&gt;&#10;&#10;[@namespace&#10;boost&#10; {&#10;(:include decl pre_indent=&quot;4&quot;:)&#10; }@]&#10;</string>
+ <size>0</size>
                                                                                                 </container>
                                                                                         </pair>
                                                                                         <pair>
@@ -7303,11 +7526,11 @@
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-13</id>
+ <id>-11</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:)&gt;&#10;&#10;[@namespace&#10;boost&#10; {&#10;(:include decl pre_indent=&quot;4&quot;:)&#10; }@]&#10;</string>
+ <string>:)&gt;&#10;&#10;[@namespace&#10;boost&#10; {&#10;(:include decl:)&#10; }@]&#10;</string>
                                                                                                 </container>
                                                                                         </pair>
                                                                                         <pair>
@@ -7329,6 +7552,17 @@
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-41</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
                                                                                                         <size>3</size>
                                                                                                         <variant>2</variant>
                                                                                                         <string>`#include &lt;(:link </string>
@@ -7336,18 +7570,18 @@
                                                                                                         <weak_ptr>
                                                                                                                 <expired>0</expired>
                                                                                                                 <shared_ptr>
- <id>-32</id>
+ <id>-8</id>
                                                                                                                 </shared_ptr>
                                                                                                         </weak_ptr>
                                                                                                         <variant>2</variant>
- <string>:)&gt;&#10;&#10;[@namespace&#10;boost&#10; {&#10;(:include decl pre_indent=&quot;4&quot;:)&#10; }@]&#10;</string>
+ <string>:)&gt;&#10;&#10;[@namespace&#10;boost&#10; {&#10;(:include def pre_indent=&quot;4&quot;:)&#10; }@]&#10;</string>
                                                                                                 </container>
                                                                                         </pair>
                                                                                         <pair>
                                                                                                 <weak_ptr>
                                                                                                         <expired>0</expired>
                                                                                                         <shared_ptr>
- <id>-41</id>
+ <id>-42</id>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
@@ -7358,7 +7592,7 @@
                                                                                                 <weak_ptr>
                                                                                                         <expired>0</expired>
                                                                                                         <shared_ptr>
- <id>-42</id>
+ <id>-43</id>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
@@ -7369,22 +7603,11 @@
                                                                                                 <weak_ptr>
                                                                                                         <expired>0</expired>
                                                                                                         <shared_ptr>
- <id>-43</id>
+ <id>-44</id>
                                                                                                         </shared_ptr>
                                                                                                 </weak_ptr>
                                                                                                 <container>
- <size>3</size>
- <variant>2</variant>
- <string>`#include &lt;(:link </string>
- <variant>1</variant>
- <weak_ptr>
- <expired>0</expired>
- <shared_ptr>
- <id>-35</id>
- </shared_ptr>
- </weak_ptr>
- <variant>2</variant>
- <string>:)&gt;&#10;&#10;[@namespace&#10;boost&#10; {&#10;(:include decl pre_indent=&quot;4&quot;:)&#10; }@]&#10;</string>
+ <size>0</size>
                                                                                                 </container>
                                                                                         </pair>
                                                                                 </sorted>
@@ -7397,14 +7620,14 @@
                         </layers>
                         <contexts>
                                 <shared_ptr>
- <id>50</id>
+ <id>51</id>
                                         <type>
                                                 <string>reno_context_map</string>
                                         </type>
                                         <object>
                                                 <contexts>
                                                         <sorted>
- <size>39</size>
+ <size>40</size>
                                                                 <shared_ptr>
                                                                         <id>-5</id>
                                                                 </shared_ptr>
@@ -7522,11 +7745,14 @@
                                                                 <shared_ptr>
                                                                         <id>-43</id>
                                                                 </shared_ptr>
+ <shared_ptr>
+ <id>-44</id>
+ </shared_ptr>
                                                         </sorted>
                                                 </contexts>
                                                 <index>
                                                         <sorted>
- <size>39</size>
+ <size>40</size>
                                                                 <pair>
                                                                         <hook>
                                                                                 <stream_hook_path>
@@ -7541,7 +7767,7 @@
                                                                                 </path>
                                                                         </file>
                                                                         <shared_ptr>
- <id>-42</id>
+ <id>-43</id>
                                                                         </shared_ptr>
                                                                 </pair>
                                                                 <pair>
@@ -7558,7 +7784,7 @@
                                                                                 </path>
                                                                         </file>
                                                                         <shared_ptr>
- <id>-41</id>
+ <id>-31</id>
                                                                         </shared_ptr>
                                                                 </pair>
                                                                 <pair>
@@ -7575,7 +7801,7 @@
                                                                                 </path>
                                                                         </file>
                                                                         <shared_ptr>
- <id>-18</id>
+ <id>-39</id>
                                                                         </shared_ptr>
                                                                 </pair>
                                                                 <pair>
@@ -7592,31 +7818,41 @@
                                                                                 </path>
                                                                         </file>
                                                                         <shared_ptr>
- <id>-39</id>
+ <id>-44</id>
                                                                         </shared_ptr>
                                                                 </pair>
                                                                 <pair>
                                                                         <hook>
                                                                                 <stream_hook_path>
                                                                                         <container>
- <size>1</size>
- <strong>07959353ADCC10CF96D16F87F2D01195D75C3A6A2A797513ED3DDFA2F80E2E09</strong>
- <weak>303643772</weak>
- <size>1838</size>
- <position>91</position>
+ <size>0</size>
                                                                                         </container>
                                                                                 </stream_hook_path>
                                                                         </hook>
                                                                         <file>
                                                                                 <path>
- <empty>0</empty>
- <string>../../../../boost/throw_exception.hpp</string>
- <type>0</type>
- <base>0</base>
+ <empty>1</empty>
                                                                                 </path>
                                                                         </file>
                                                                         <shared_ptr>
- <id>-35</id>
+ <id>-21</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>0</size>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>1</empty>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-20</id>
                                                                         </shared_ptr>
                                                                 </pair>
                                                                 <pair>
@@ -7640,7 +7876,7 @@
                                                                                 </path>
                                                                         </file>
                                                                         <shared_ptr>
- <id>-30</id>
+ <id>-28</id>
                                                                         </shared_ptr>
                                                                 </pair>
                                                                 <pair>
@@ -7648,41 +7884,41 @@
                                                                                 <stream_hook_path>
                                                                                         <container>
                                                                                                 <size>1</size>
- <strong>ECAD4A1E70A31D7F87F79F557D107AB0A3C5161CB370139974E08ECAFBE2D32F</strong>
- <weak>1816954312</weak>
- <size>457</size>
- <position>323</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/diagnostic_information.hpp</string>
+ <string>../../example/enable_error_info.cpp</string>
                                                                                         <type>0</type>
                                                                                         <base>0</base>
                                                                                 </path>
                                                                         </file>
                                                                         <shared_ptr>
- <id>-31</id>
+ <id>-37</id>
                                                                         </shared_ptr>
                                                                 </pair>
                                                                 <pair>
                                                                         <hook>
                                                                                 <stream_hook_path>
- <container>
- <size>1</size>
- <strong>D9B8E6AA12A4F33953B1A961FA590C5A3840234B6531CA8C04AC985AD5800835</strong>
- <weak>2432554768</weak>
- <size>702</size>
- <position>408</position>
+ <container>
+ <size>1</size>
+ <strong>8DC5E3F51F580F74905ADF7542CBFBE23989808ACFF69E8C2B98B5092C633B42</strong>
+ <weak>378737885</weak>
+ <size>4007</size>
+ <position>323</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>
@@ -7696,47 +7932,51 @@
                                                                                 <stream_hook_path>
                                                                                         <container>
                                                                                                 <size>1</size>
- <strong>0C00BEB179039380247D771B12C728884E9A3E5B483AC63CD5789852C7A5CC35</strong>
- <weak>2506662970</weak>
- <size>2467</size>
- <position>323</position>
+ <strong>17FF6C63843EE64ED66CB038DD95B4C4D6BA1B0FD36B27BEFD84A909161D2853</strong>
+ <weak>1237535165</weak>
+ <size>231</size>
+ <position>1171</position>
                                                                                         </container>
                                                                                 </stream_hook_path>
                                                                         </hook>
                                                                         <file>
                                                                                 <path>
                                                                                         <empty>0</empty>
- <string>../../../../boost/exception/enable_error_info.hpp</string>
+ <string>../../../../boost/throw_exception.hpp</string>
                                                                                         <type>0</type>
                                                                                         <base>0</base>
                                                                                 </path>
                                                                         </file>
                                                                         <shared_ptr>
- <id>-32</id>
+ <id>-23</id>
                                                                         </shared_ptr>
                                                                 </pair>
                                                                 <pair>
                                                                         <hook>
                                                                                 <stream_hook_path>
                                                                                         <container>
- <size>1</size>
- <strong>5373E336DC4892A41D31694BCA1146382FC3137819A04689CA1F9FFAF1CFAB3B</strong>
- <weak>4050491732</weak>
- <size>466</size>
- <position>307</position>
+ <size>2</size>
+ <strong>439278045C9E304238B86C5BD4DA9CA64630D4CC73D442089068A186A28CA55A</strong>
+ <weak>3686240039</weak>
+ <size>1522</size>
+ <position>433</position>
+ <strong>6FE1F0AF570A010E8FDA1647DE61E0CC3AA979C8A8638722DAACDF8FBC4790D2</strong>
+ <weak>1246830037</weak>
+ <size>1023</size>
+ <position>493</position>
                                                                                         </container>
                                                                                 </stream_hook_path>
                                                                         </hook>
                                                                         <file>
                                                                                 <path>
                                                                                         <empty>0</empty>
- <string>../../example/cloning_1.cpp</string>
+ <string>../../../../boost/exception/diagnostic_information.hpp</string>
                                                                                         <type>0</type>
                                                                                         <base>0</base>
                                                                                 </path>
                                                                         </file>
                                                                         <shared_ptr>
- <id>-21</id>
+ <id>-30</id>
                                                                         </shared_ptr>
                                                                 </pair>
                                                                 <pair>
@@ -7744,23 +7984,23 @@
                                                                                 <stream_hook_path>
                                                                                         <container>
                                                                                                 <size>1</size>
- <strong>49D31376D97691F7C84A134B5D8C7C66EF1ED6901D376CA250D634AE2B38AB5E</strong>
- <weak>549270010</weak>
- <size>163</size>
- <position>572</position>
+ <strong>7116AEECEA666794E31DC99390ADEC1BA6AF74B2398067A0739767B4B76FA97A</strong>
+ <weak>4128134227</weak>
+ <size>307</size>
+ <position>302</position>
                                                                                         </container>
                                                                                 </stream_hook_path>
                                                                         </hook>
                                                                         <file>
                                                                                 <path>
                                                                                         <empty>0</empty>
- <string>../../../../boost/exception/info.hpp</string>
+ <string>../../example/logging.cpp</string>
                                                                                         <type>0</type>
                                                                                         <base>0</base>
                                                                                 </path>
                                                                         </file>
                                                                         <shared_ptr>
- <id>-10</id>
+ <id>-40</id>
                                                                         </shared_ptr>
                                                                 </pair>
                                                                 <pair>
@@ -7768,23 +8008,23 @@
                                                                                 <stream_hook_path>
                                                                                         <container>
                                                                                                 <size>1</size>
- <strong>A9C65F105342D728DE9C996079E82DF25408B94A272090039FAAC12D29659F69</strong>
- <weak>2378831669</weak>
- <size>94</size>
- <position>227</position>
+ <strong>F6A7A960DE8CB8740E206D2585D4C83854DE073ABDAFFB8BD1C9A6B73428197D</strong>
+ <weak>129904804</weak>
+ <size>4115</size>
+ <position>323</position>
                                                                                         </container>
                                                                                 </stream_hook_path>
                                                                         </hook>
                                                                         <file>
                                                                                 <path>
                                                                                         <empty>0</empty>
- <string>../../../../boost/exception/enable_current_exception.hpp</string>
+ <string>../../../../boost/exception/get_error_info.hpp</string>
                                                                                         <type>0</type>
                                                                                         <base>0</base>
                                                                                 </path>
                                                                         </file>
                                                                         <shared_ptr>
- <id>-13</id>
+ <id>-16</id>
                                                                         </shared_ptr>
                                                                 </pair>
                                                                 <pair>
@@ -7792,9 +8032,9 @@
                                                                                 <stream_hook_path>
                                                                                         <container>
                                                                                                 <size>1</size>
- <strong>429F0DE3599A4CC08B9458E2AECA2EAC202AB3471554FE82C307493805E6676E</strong>
- <weak>4224422781</weak>
- <size>401</size>
+ <strong>67D64FAD0AB7CA6B2173A14F363D19B27F59EEBDB5C1076F8BCCA1B54D4CCD7D</strong>
+ <weak>2241687287</weak>
+ <size>303</size>
                                                                                                 <position>323</position>
                                                                                         </container>
                                                                                 </stream_hook_path>
@@ -7808,35 +8048,31 @@
                                                                                 </path>
                                                                         </file>
                                                                         <shared_ptr>
- <id>-17</id>
+ <id>-27</id>
                                                                         </shared_ptr>
                                                                 </pair>
                                                                 <pair>
                                                                         <hook>
                                                                                 <stream_hook_path>
                                                                                         <container>
- <size>2</size>
- <strong>FA5027D9799B8059059C23397F469D6EF6328DC23E92E0BE0FF5BE019A576174</strong>
- <weak>1806359597</weak>
- <size>3234</size>
- <position>506</position>
- <strong>DF9EA87B0140AACF4422F1B76F6A6A409C15F32858BBBA85A35981A824C56BA9</strong>
- <weak>1137981799</weak>
- <size>192</size>
- <position>3036</position>
+ <size>1</size>
+ <strong>265AFB67CCEF87EC9B58DB910ED23C0B1A5546C44767E2FFD6829ABADAF4828B</strong>
+ <weak>1235989793</weak>
+ <size>1632</size>
+ <position>323</position>
                                                                                         </container>
                                                                                 </stream_hook_path>
                                                                         </hook>
                                                                         <file>
                                                                                 <path>
                                                                                         <empty>0</empty>
- <string>../../../../boost/exception/enable_current_exception.hpp</string>
+ <string>../../../../boost/exception/diagnostic_information.hpp</string>
                                                                                         <type>0</type>
                                                                                         <base>0</base>
                                                                                 </path>
                                                                         </file>
                                                                         <shared_ptr>
- <id>-38</id>
+ <id>-24</id>
                                                                         </shared_ptr>
                                                                 </pair>
                                                                 <pair>
@@ -7844,51 +8080,59 @@
                                                                                 <stream_hook_path>
                                                                                         <container>
                                                                                                 <size>2</size>
- <strong>7ACC4E316D4EDB3EC7AEC35FED3ADB47DDF75D575028D7BCD11C5233E4F4A277</strong>
- <weak>4268848542</weak>
- <size>2333</size>
- <position>457</position>
- <strong>61DE70107961C0B9A65674017F91FF85190CF84B4F3B0CA7AC04A7E16DE80B37</strong>
- <weak>3187961206</weak>
- <size>2301</size>
- <position>26</position>
+ <strong>612485E090D76B2CC43C1A296F813075BA165C2496082E78E939F10B3DA8E09A</strong>
+ <weak>1770110914</weak>
+ <size>587</size>
+ <position>1482</position>
+ <strong>60F3F48B87487FA6E0D2CCC0750AF435CC92CEC80BBBF609AC71295031AADD0D</strong>
+ <weak>3929437933</weak>
+ <size>361</size>
+ <position>213</position>
                                                                                         </container>
                                                                                 </stream_hook_path>
                                                                         </hook>
                                                                         <file>
                                                                                 <path>
                                                                                         <empty>0</empty>
- <string>../../../../boost/exception/enable_error_info.hpp</string>
+ <string>../../../../boost/throw_exception.hpp</string>
                                                                                         <type>0</type>
                                                                                         <base>0</base>
                                                                                 </path>
                                                                         </file>
                                                                         <shared_ptr>
- <id>-40</id>
+ <id>-38</id>
                                                                         </shared_ptr>
                                                                 </pair>
                                                                 <pair>
                                                                         <hook>
                                                                                 <stream_hook_path>
                                                                                         <container>
- <size>1</size>
- <strong>E312FADF4C02B7A6CB1BE1EC16F05A21C20CBA3282D4EAFC8EBE0BA151F24779</strong>
- <weak>2820045995</weak>
- <size>5108</size>
- <position>323</position>
+ <size>3</size>
+ <strong>612485E090D76B2CC43C1A296F813075BA165C2496082E78E939F10B3DA8E09A</strong>
+ <weak>1770110914</weak>
+ <size>587</size>
+ <position>1482</position>
+ <strong>60F3F48B87487FA6E0D2CCC0750AF435CC92CEC80BBBF609AC71295031AADD0D</strong>
+ <weak>3929437933</weak>
+ <size>361</size>
+ <position>213</position>
+ <strong>CD1241D84950468704F3C3F04116B8DA5162A8BEA4364F10951232F49113C5DE</strong>
+ <weak>1658463867</weak>
+ <size>121</size>
+ <position>238</position>
                                                                                         </container>
                                                                                 </stream_hook_path>
                                                                         </hook>
                                                                         <file>
                                                                                 <path>
                                                                                         <empty>0</empty>
- <string>../../../../boost/exception_ptr.hpp</string>
+ <string>../../../../boost/throw_exception.hpp</string>
                                                                                         <type>0</type>
                                                                                         <base>0</base>
                                                                                 </path>
                                                                         </file>
                                                                         <shared_ptr>
- <id>-9</id>
+ <id>-5</id>
                                                                         </shared_ptr>
                                                                 </pair>
                                                                 <pair>
@@ -7896,27 +8140,27 @@
                                                                                 <stream_hook_path>
                                                                                         <container>
                                                                                                 <size>2</size>
- <strong>05061ED1DD1B33224DE28BF86AB10D99286A48DC055D54A19FF93B36F22E8A90</strong>
- <weak>3225446538</weak>
- <size>372</size>
- <position>408</position>
- <strong>ED09AD72D3766F261A0044B58B9B73AA355EB50B1A8F602E5EE7F68D0D928596</strong>
- <weak>328425570</weak>
- <size>340</size>
- <position>26</position>
+ <strong>8F178D422EC1891AEDF90A4DCA7BCEC96D29D1B0A70726C222513D699679F59D</strong>
+ <weak>3253069900</weak>
+ <size>3913</size>
+ <position>525</position>
+ <strong>BB8AF986C96801345719855FEA083AF5684FBC349F6520E150F19A6370019265</strong>
+ <weak>3731478139</weak>
+ <size>686</size>
+ <position>3221</position>
                                                                                         </container>
                                                                                 </stream_hook_path>
                                                                         </hook>
                                                                         <file>
                                                                                 <path>
                                                                                         <empty>0</empty>
- <string>../../../../boost/exception/diagnostic_information.hpp</string>
+ <string>../../../../boost/exception/get_error_info.hpp</string>
                                                                                         <type>0</type>
                                                                                         <base>0</base>
                                                                                 </path>
                                                                         </file>
                                                                         <shared_ptr>
- <id>-27</id>
+ <id>-34</id>
                                                                         </shared_ptr>
                                                                 </pair>
                                                                 <pair>
@@ -7924,27 +8168,27 @@
                                                                                 <stream_hook_path>
                                                                                         <container>
                                                                                                 <size>2</size>
- <strong>612485E090D76B2CC43C1A296F813075BA165C2496082E78E939F10B3DA8E09A</strong>
- <weak>1770110914</weak>
- <size>587</size>
- <position>1322</position>
- <strong>60F3F48B87487FA6E0D2CCC0750AF435CC92CEC80BBBF609AC71295031AADD0D</strong>
- <weak>3929437933</weak>
- <size>361</size>
- <position>213</position>
+ <strong>126BB1D8971585CBE7D78EF3C12259D72FD5E973A84626AA9FC3234220A11CAB</strong>
+ <weak>3471702891</weak>
+ <size>969</size>
+ <position>344</position>
+ <strong>A7FD310E1340E103081DA2A7899DA0E213C696C84D52C17ADA09F6942EE97D47</strong>
+ <weak>2978648279</weak>
+ <size>530</size>
+ <position>433</position>
                                                                                         </container>
                                                                                 </stream_hook_path>
                                                                         </hook>
                                                                         <file>
                                                                                 <path>
                                                                                         <empty>0</empty>
- <string>../../../../boost/throw_exception.hpp</string>
+ <string>../../../../boost/exception/detail/error_info_impl.hpp</string>
                                                                                         <type>0</type>
                                                                                         <base>0</base>
                                                                                 </path>
                                                                         </file>
                                                                         <shared_ptr>
- <id>-43</id>
+ <id>-35</id>
                                                                         </shared_ptr>
                                                                 </pair>
                                                                 <pair>
@@ -7952,23 +8196,23 @@
                                                                                 <stream_hook_path>
                                                                                         <container>
                                                                                                 <size>1</size>
- <strong>9CC0F5ADB1C04555FD571DABD1D7D6775D8B11977ECC8320AD4451FC435E89A1</strong>
- <weak>1325628148</weak>
- <size>3147</size>
- <position>323</position>
+ <strong>772781E5C169713B0AAF4BF73D567AB51C65D3D2DE185E43BDD75B8C3E0090AE</strong>
+ <weak>2533913088</weak>
+ <size>1998</size>
+ <position>91</position>
                                                                                         </container>
                                                                                 </stream_hook_path>
                                                                         </hook>
                                                                         <file>
                                                                                 <path>
                                                                                         <empty>0</empty>
- <string>../../../../boost/exception/exception.hpp</string>
+ <string>../../../../boost/throw_exception.hpp</string>
                                                                                         <type>0</type>
                                                                                         <base>0</base>
                                                                                 </path>
                                                                         </file>
                                                                         <shared_ptr>
- <id>-8</id>
+ <id>-11</id>
                                                                         </shared_ptr>
                                                                 </pair>
                                                                 <pair>
@@ -7976,23 +8220,23 @@
                                                                                 <stream_hook_path>
                                                                                         <container>
                                                                                                 <size>1</size>
- <strong>CAB4D823BD4720B71E1CA5BE482AC95B42A9E07CD5E08671EA23184635F281A2</strong>
- <weak>3077708282</weak>
- <size>89</size>
- <position>323</position>
+ <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/error_info.hpp</string>
+ <string>../../../../boost/exception/info_tuple.hpp</string>
                                                                                         <type>0</type>
                                                                                         <base>0</base>
                                                                                 </path>
                                                                         </file>
                                                                         <shared_ptr>
- <id>-33</id>
+ <id>-10</id>
                                                                         </shared_ptr>
                                                                 </pair>
                                                                 <pair>
@@ -8000,23 +8244,23 @@
                                                                                 <stream_hook_path>
                                                                                         <container>
                                                                                                 <size>1</size>
- <strong>749C8E4B47A3FD6A90DD8418BF64C4556537CE6E17ACEB2317D9F81DBEBBB0B0</strong>
- <weak>1688004766</weak>
- <size>6783</size>
- <position>323</position>
+ <strong>4ED9709788BBAB4DE7CF336561606B8C0B41F70877A3395F4EE026F4AEB66CC6</strong>
+ <weak>743998427</weak>
+ <size>409</size>
+ <position>307</position>
                                                                                         </container>
                                                                                 </stream_hook_path>
                                                                         </hook>
                                                                         <file>
                                                                                 <path>
                                                                                         <empty>0</empty>
- <string>../../../../boost/exception/info.hpp</string>
+ <string>../../example/cloning_1.cpp</string>
                                                                                         <type>0</type>
                                                                                         <base>0</base>
                                                                                 </path>
                                                                         </file>
                                                                         <shared_ptr>
- <id>-20</id>
+ <id>-42</id>
                                                                         </shared_ptr>
                                                                 </pair>
                                                                 <pair>
@@ -8024,23 +8268,23 @@
                                                                                 <stream_hook_path>
                                                                                         <container>
                                                                                                 <size>1</size>
- <strong>CAD6C404CB725D336A44920D2341ECA131149AB02C368B59028F8147F16737BF</strong>
- <weak>2258638601</weak>
- <size>94</size>
- <position>227</position>
+ <strong>25DF01CCA9425952104C6606C336BB091879E4A22680790BBB352670DFB0E0CD</strong>
+ <weak>4271502180</weak>
+ <size>8870</size>
+ <position>323</position>
                                                                                         </container>
                                                                                 </stream_hook_path>
                                                                         </hook>
                                                                         <file>
                                                                                 <path>
                                                                                         <empty>0</empty>
- <string>../../../../boost/exception/info_tuple.hpp</string>
+ <string>../../../../boost/exception_ptr.hpp</string>
                                                                                         <type>0</type>
                                                                                         <base>0</base>
                                                                                 </path>
                                                                         </file>
                                                                         <shared_ptr>
- <id>-34</id>
+ <id>-9</id>
                                                                         </shared_ptr>
                                                                 </pair>
                                                                 <pair>
@@ -8064,31 +8308,35 @@
                                                                                 </path>
                                                                         </file>
                                                                         <shared_ptr>
- <id>-11</id>
+ <id>-17</id>
                                                                         </shared_ptr>
                                                                 </pair>
                                                                 <pair>
                                                                         <hook>
                                                                                 <stream_hook_path>
                                                                                         <container>
- <size>1</size>
- <strong>CE411E21EE9878B55B5906D033A0FC52574FB59D8A8CECB75405E9B1C9D782DB</strong>
- <weak>1173443713</weak>
- <size>308</size>
- <position>302</position>
+ <size>2</size>
+ <strong>86E1196533E771AEFD141DA43FCD980AE3D7689A45EDD54A2DF28B1943E0E7DB</strong>
+ <weak>941210061</weak>
+ <size>8706</size>
+ <position>487</position>
+ <strong>E23085202D084CBB50F289988A6A592F06D923B77D0AB25D7A98A7188DF5BE3B</strong>
+ <weak>1414247481</weak>
+ <size>766</size>
+ <position>7370</position>
                                                                                         </container>
                                                                                 </stream_hook_path>
                                                                         </hook>
                                                                         <file>
                                                                                 <path>
                                                                                         <empty>0</empty>
- <string>../../example/logging.cpp</string>
+ <string>../../../../boost/exception_ptr.hpp</string>
                                                                                         <type>0</type>
                                                                                         <base>0</base>
                                                                                 </path>
                                                                         </file>
                                                                         <shared_ptr>
- <id>-16</id>
+ <id>-22</id>
                                                                         </shared_ptr>
                                                                 </pair>
                                                                 <pair>
@@ -8096,27 +8344,27 @@
                                                                                 <stream_hook_path>
                                                                                         <container>
                                                                                                 <size>2</size>
- <strong>35F026FF4EC46450D19A8F970D6E39B881DA6B0FC2E95774CCADC5E34C9D57F1</strong>
- <weak>1990614462</weak>
- <size>6369</size>
- <position>737</position>
- <strong>F839AFD37DC086BB1231B8E87D8EEBD28129649A06FC685AC7DF65595871AE30</strong>
- <weak>2291609923</weak>
- <size>1204</size>
- <position>243</position>
+ <strong>86E1196533E771AEFD141DA43FCD980AE3D7689A45EDD54A2DF28B1943E0E7DB</strong>
+ <weak>941210061</weak>
+ <size>8706</size>
+ <position>487</position>
+ <strong>F86EB07D04CD0D0645080D1121DA899746D0C45137E17E1D9BE605E75396F047</strong>
+ <weak>1983537541</weak>
+ <size>1346</size>
+ <position>148</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>
                                                                         <shared_ptr>
- <id>-22</id>
+ <id>-33</id>
                                                                         </shared_ptr>
                                                                 </pair>
                                                                 <pair>
@@ -8124,21 +8372,21 @@
                                                                                 <stream_hook_path>
                                                                                         <container>
                                                                                                 <size>2</size>
- <strong>35F026FF4EC46450D19A8F970D6E39B881DA6B0FC2E95774CCADC5E34C9D57F1</strong>
- <weak>1990614462</weak>
- <size>6369</size>
- <position>737</position>
- <strong>61B57D0AE5F1033900B7DE4401AC1633F4639471A19194D5660F6C43465FCE3D</strong>
- <weak>1668078447</weak>
- <size>724</size>
- <position>1712</position>
+ <strong>86E1196533E771AEFD141DA43FCD980AE3D7689A45EDD54A2DF28B1943E0E7DB</strong>
+ <weak>941210061</weak>
+ <size>8706</size>
+ <position>487</position>
+ <strong>448B6444D4B3E46F822F56C14FDA3F6F96B869543EBA1E291C5E3D36F73AF24B</strong>
+ <weak>2443226110</weak>
+ <size>700</size>
+ <position>1496</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>
@@ -8152,27 +8400,27 @@
                                                                                 <stream_hook_path>
                                                                                         <container>
                                                                                                 <size>2</size>
- <strong>35F026FF4EC46450D19A8F970D6E39B881DA6B0FC2E95774CCADC5E34C9D57F1</strong>
- <weak>1990614462</weak>
- <size>6369</size>
- <position>737</position>
- <strong>C5A5927411FB16BB27418CF87226A27D6EC66958BD46DC87F97E571CB492E49D</strong>
- <weak>2066106304</weak>
- <size>261</size>
- <position>1449</position>
+ <strong>86E1196533E771AEFD141DA43FCD980AE3D7689A45EDD54A2DF28B1943E0E7DB</strong>
+ <weak>941210061</weak>
+ <size>8706</size>
+ <position>487</position>
+ <strong>0E9DF8366080712A816BE91ABCEF1E2044145B63D75B0B995B537900F378189E</strong>
+ <weak>1069696031</weak>
+ <size>255</size>
+ <position>8445</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>
                                                                         <shared_ptr>
- <id>-23</id>
+ <id>-15</id>
                                                                         </shared_ptr>
                                                                 </pair>
                                                                 <pair>
@@ -8180,14 +8428,14 @@
                                                                                 <stream_hook_path>
                                                                                         <container>
                                                                                                 <size>2</size>
- <strong>D1AA2FC554CD67A50917905B0E9CCA2EBC1A9BA97368757B36ADF8419756ECF1</strong>
- <weak>85276724</weak>
- <size>4917</size>
- <position>514</position>
- <strong>F87D7E0321BDDAE23D5A6667CB12116411468AEC54E3B35FB9C8CA94BFECA41E</strong>
- <weak>1149388739</weak>
- <size>296</size>
- <position>4496</position>
+ <strong>86E1196533E771AEFD141DA43FCD980AE3D7689A45EDD54A2DF28B1943E0E7DB</strong>
+ <weak>941210061</weak>
+ <size>8706</size>
+ <position>487</position>
+ <strong>0066D4E6E6B189906E6DE04F08509F3737511701A1B1355B37511EC18E8371F4</strong>
+ <weak>2078296250</weak>
+ <size>305</size>
+ <position>8138</position>
                                                                                         </container>
                                                                                 </stream_hook_path>
                                                                         </hook>
@@ -8207,28 +8455,24 @@
                                                                         <hook>
                                                                                 <stream_hook_path>
                                                                                         <container>
- <size>2</size>
- <strong>D1AA2FC554CD67A50917905B0E9CCA2EBC1A9BA97368757B36ADF8419756ECF1</strong>
- <weak>85276724</weak>
- <size>4917</size>
- <position>514</position>
- <strong>A098B6FA5BC8E72E0E69C0323195FCC142AE807564C6892FCBD88588F2FBE049</strong>
- <weak>2579522516</weak>
- <size>405</size>
- <position>26</position>
+ <size>1</size>
+ <strong>A7B38E57D7A0B8823D9FE49F434B6B61D2C300ED96FA97BBAE9CED40660241DF</strong>
+ <weak>882254800</weak>
+ <size>9168</size>
+ <position>323</position>
                                                                                         </container>
                                                                                 </stream_hook_path>
                                                                         </hook>
                                                                         <file>
                                                                                 <path>
                                                                                         <empty>0</empty>
- <string>../../../../boost/exception_ptr.hpp</string>
+ <string>../../../../boost/exception/exception.hpp</string>
                                                                                         <type>0</type>
                                                                                         <base>0</base>
                                                                                 </path>
                                                                         </file>
                                                                         <shared_ptr>
- <id>-37</id>
+ <id>-8</id>
                                                                         </shared_ptr>
                                                                 </pair>
                                                                 <pair>
@@ -8236,27 +8480,27 @@
                                                                                 <stream_hook_path>
                                                                                         <container>
                                                                                                 <size>2</size>
- <strong>D1AA2FC554CD67A50917905B0E9CCA2EBC1A9BA97368757B36ADF8419756ECF1</strong>
- <weak>85276724</weak>
- <size>4917</size>
- <position>514</position>
- <strong>9DEEF8ED70BF74F501A96BA5DE5BFD42FAD16DE333ABE189E512C332586FC465</strong>
- <weak>2250569940</weak>
- <size>1893</size>
- <position>2601</position>
+ <strong>A7B38E57D7A0B8823D9FE49F434B6B61D2C300ED96FA97BBAE9CED40660241DF</strong>
+ <weak>882254800</weak>
+ <size>9168</size>
+ <position>323</position>
+ <strong>17E691632123EB67BA67D590B49EB8094F462F5A10A66A1C5438E1867EF1478E</strong>
+ <weak>765399792</weak>
+ <size>77</size>
+ <position>5917</position>
                                                                                         </container>
                                                                                 </stream_hook_path>
                                                                         </hook>
                                                                         <file>
                                                                                 <path>
                                                                                         <empty>0</empty>
- <string>../../../../boost/exception_ptr.hpp</string>
+ <string>../../../../boost/exception/exception.hpp</string>
                                                                                         <type>0</type>
                                                                                         <base>0</base>
                                                                                 </path>
                                                                         </file>
                                                                         <shared_ptr>
- <id>-25</id>
+ <id>-18</id>
                                                                         </shared_ptr>
                                                                 </pair>
                                                                 <pair>
@@ -8264,27 +8508,27 @@
                                                                                 <stream_hook_path>
                                                                                         <container>
                                                                                                 <size>2</size>
- <strong>D1AA2FC554CD67A50917905B0E9CCA2EBC1A9BA97368757B36ADF8419756ECF1</strong>
- <weak>85276724</weak>
- <size>4917</size>
- <position>514</position>
- <strong>156B870761DB092CE4269C1173B479A344A1041BA2B883765AF19A72B371D776</strong>
- <weak>3239976720</weak>
- <size>117</size>
- <position>4794</position>
+ <strong>A7B38E57D7A0B8823D9FE49F434B6B61D2C300ED96FA97BBAE9CED40660241DF</strong>
+ <weak>882254800</weak>
+ <size>9168</size>
+ <position>323</position>
+ <strong>DF9EA87B0140AACF4422F1B76F6A6A409C15F32858BBBA85A35981A824C56BA9</strong>
+ <weak>1137981799</weak>
+ <size>192</size>
+ <position>8970</position>
                                                                                         </container>
                                                                                 </stream_hook_path>
                                                                         </hook>
                                                                         <file>
                                                                                 <path>
                                                                                         <empty>0</empty>
- <string>../../../../boost/exception_ptr.hpp</string>
+ <string>../../../../boost/exception/exception.hpp</string>
                                                                                         <type>0</type>
                                                                                         <base>0</base>
                                                                                 </path>
                                                                         </file>
                                                                         <shared_ptr>
- <id>-5</id>
+ <id>-13</id>
                                                                         </shared_ptr>
                                                                 </pair>
                                                                 <pair>
@@ -8292,27 +8536,27 @@
                                                                                 <stream_hook_path>
                                                                                         <container>
                                                                                                 <size>2</size>
- <strong>D1AA2FC554CD67A50917905B0E9CCA2EBC1A9BA97368757B36ADF8419756ECF1</strong>
- <weak>85276724</weak>
- <size>4917</size>
- <position>514</position>
- <strong>ED09F845070FF7D381BE5EFB6B55313FD09FBA16B64B69992410380EFA45519C</strong>
- <weak>2051939590</weak>
- <size>78</size>
- <position>433</position>
+ <strong>A7B38E57D7A0B8823D9FE49F434B6B61D2C300ED96FA97BBAE9CED40660241DF</strong>
+ <weak>882254800</weak>
+ <size>9168</size>
+ <position>323</position>
+ <strong>B4D37C317A3B45825DDA1A8C8B1CE71CC2E530D15090D05995FCBEC4247F49C4</strong>
+ <weak>2742768198</weak>
+ <size>258</size>
+ <position>7305</position>
                                                                                         </container>
                                                                                 </stream_hook_path>
                                                                         </hook>
                                                                         <file>
                                                                                 <path>
                                                                                         <empty>0</empty>
- <string>../../../../boost/exception_ptr.hpp</string>
+ <string>../../../../boost/exception/exception.hpp</string>
                                                                                         <type>0</type>
                                                                                         <base>0</base>
                                                                                 </path>
                                                                         </file>
                                                                         <shared_ptr>
- <id>-6</id>
+ <id>-26</id>
                                                                         </shared_ptr>
                                                                 </pair>
                                                                 <pair>
@@ -8320,45 +8564,53 @@
                                                                                 <stream_hook_path>
                                                                                         <container>
                                                                                                 <size>2</size>
- <strong>F7633FDCF6615C0199645701EE6E7ACE5CBCD7A7CF6838573791E91ABB3C09F2</strong>
- <weak>1668435395</weak>
- <size>1332</size>
- <position>396</position>
- <strong>A1F443AF571973A12005D2F7D4AE09A32AAF686FEEAE272EC21512A65EB943E8</strong>
- <weak>3879093659</weak>
- <size>1300</size>
- <position>26</position>
+ <strong>A7B38E57D7A0B8823D9FE49F434B6B61D2C300ED96FA97BBAE9CED40660241DF</strong>
+ <weak>882254800</weak>
+ <size>9168</size>
+ <position>323</position>
+ <strong>65D35B8A2063883A53E9D0DCC3FF8E5CA3573A58451A653CDE3003FFBEC576D3</strong>
+ <weak>1693870740</weak>
+ <size>2195</size>
+ <position>3720</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>
                                                                         <shared_ptr>
- <id>-24</id>
+ <id>-41</id>
                                                                         </shared_ptr>
                                                                 </pair>
                                                                 <pair>
                                                                         <hook>
                                                                                 <stream_hook_path>
                                                                                         <container>
- <size>1</size>
- <strong>187BFD2B78A0DD006717B5B06FFD465E2468F521C32A86FB793F7A68AB5417F3</strong>
- <weak>4276724153</weak>
- <size>574</size>
- <position>382</position>
+ <size>3</size>
+ <strong>A7B38E57D7A0B8823D9FE49F434B6B61D2C300ED96FA97BBAE9CED40660241DF</strong>
+ <weak>882254800</weak>
+ <size>9168</size>
+ <position>323</position>
+ <strong>65D35B8A2063883A53E9D0DCC3FF8E5CA3573A58451A653CDE3003FFBEC576D3</strong>
+ <weak>1693870740</weak>
+ <size>2195</size>
+ <position>3720</position>
+ <strong>DA154372D8C23BD9EDC30005CA7959CE686D198891097A837D006B5222F04DE9</strong>
+ <weak>2768248809</weak>
+ <size>143</size>
+ <position>60</position>
                                                                                         </container>
                                                                                 </stream_hook_path>
                                                                         </hook>
                                                                         <file>
                                                                                 <path>
                                                                                         <empty>0</empty>
- <string>../../example/error_info_1.cpp</string>
+ <string>../../../../boost/exception/exception.hpp</string>
                                                                                         <type>0</type>
                                                                                         <base>0</base>
                                                                                 </path>
@@ -8371,18 +8623,22 @@
                                                                         <hook>
                                                                                 <stream_hook_path>
                                                                                         <container>
- <size>1</size>
- <strong>E444EE9697EEADFDE0767E1D0242FC0E70D98E61FB1F0FFA099648DE509B82F3</strong>
- <weak>94503238</weak>
- <size>773</size>
- <position>374</position>
+ <size>2</size>
+ <strong>9A4ECF9A49A73AED83C1565CB8C67AE1519E8AFE6818F968B4C4733CB9E86CEF</strong>
+ <weak>1615599655</weak>
+ <size>68</size>
+ <position>227</position>
+ <strong>34F0583BC8DE767CE2D79721E1F956895E43E5397473B1050F59BE7E26C773DB</strong>
+ <weak>805836816</weak>
+ <size>66</size>
+ <position>1</position>
                                                                                         </container>
                                                                                 </stream_hook_path>
                                                                         </hook>
                                                                         <file>
                                                                                 <path>
                                                                                         <empty>0</empty>
- <string>../../example/info_tuple.cpp</string>
+ <string>../../../../boost/exception/error_info.hpp</string>
                                                                                         <type>0</type>
                                                                                         <base>0</base>
                                                                                 </path>
@@ -8396,127 +8652,103 @@
                                                                                 <stream_hook_path>
                                                                                         <container>
                                                                                                 <size>2</size>
- <strong>13F58566E4D9F20B49F3F30B28528AEE562CD709108ADC1AE19A2F01D86C62F4</strong>
- <weak>1430141721</weak>
- <size>2967</size>
- <position>503</position>
- <strong>09CB6839AC1E71887371FB8159C2BFCD273A397C54E07B25CEF2EEF2FA24286A</strong>
- <weak>4111403263</weak>
- <size>1924</size>
- <position>878</position>
+ <strong>F7633FDCF6615C0199645701EE6E7ACE5CBCD7A7CF6838573791E91ABB3C09F2</strong>
+ <weak>1668435395</weak>
+ <size>1332</size>
+ <position>396</position>
+ <strong>A1F443AF571973A12005D2F7D4AE09A32AAF686FEEAE272EC21512A65EB943E8</strong>
+ <weak>3879093659</weak>
+ <size>1300</size>
+ <position>26</position>
                                                                                         </container>
                                                                                 </stream_hook_path>
                                                                         </hook>
                                                                         <file>
                                                                                 <path>
                                                                                         <empty>0</empty>
- <string>../../../../boost/exception/exception.hpp</string>
+ <string>../../../../boost/exception/info_tuple.hpp</string>
                                                                                         <type>0</type>
                                                                                         <base>0</base>
                                                                                 </path>
                                                                         </file>
                                                                         <shared_ptr>
- <id>-15</id>
+ <id>-6</id>
                                                                         </shared_ptr>
                                                                 </pair>
                                                                 <pair>
                                                                         <hook>
                                                                                 <stream_hook_path>
                                                                                         <container>
- <size>4</size>
- <strong>13F58566E4D9F20B49F3F30B28528AEE562CD709108ADC1AE19A2F01D86C62F4</strong>
- <weak>1430141721</weak>
- <size>2967</size>
- <position>503</position>
- <strong>09CB6839AC1E71887371FB8159C2BFCD273A397C54E07B25CEF2EEF2FA24286A</strong>
- <weak>4111403263</weak>
- <size>1924</size>
- <position>878</position>
- <strong>85EE1980CFB24E054EDB1B3BDFA61FD4D65AD0EF248A1A42D4C2552700459327</strong>
- <weak>2238151539</weak>
- <size>428</size>
- <position>923</position>
- <strong>AD3F339F7126003907BCBDB3EF846FCACA895132E1100D202DA67D2B7846EE65</strong>
- <weak>3032091776</weak>
- <size>60</size>
- <position>369</position>
+ <size>1</size>
+ <strong>187BFD2B78A0DD006717B5B06FFD465E2468F521C32A86FB793F7A68AB5417F3</strong>
+ <weak>4276724153</weak>
+ <size>574</size>
+ <position>382</position>
                                                                                         </container>
                                                                                 </stream_hook_path>
                                                                         </hook>
                                                                         <file>
                                                                                 <path>
                                                                                         <empty>0</empty>
- <string>../../../../boost/exception/exception.hpp</string>
+ <string>../../example/error_info_1.cpp</string>
                                                                                         <type>0</type>
                                                                                         <base>0</base>
                                                                                 </path>
                                                                         </file>
                                                                         <shared_ptr>
- <id>-28</id>
+ <id>-36</id>
                                                                         </shared_ptr>
                                                                 </pair>
                                                                 <pair>
                                                                         <hook>
                                                                                 <stream_hook_path>
                                                                                         <container>
- <size>3</size>
- <strong>13F58566E4D9F20B49F3F30B28528AEE562CD709108ADC1AE19A2F01D86C62F4</strong>
- <weak>1430141721</weak>
- <size>2967</size>
- <position>503</position>
- <strong>09CB6839AC1E71887371FB8159C2BFCD273A397C54E07B25CEF2EEF2FA24286A</strong>
- <weak>4111403263</weak>
- <size>1924</size>
- <position>878</position>
- <strong>BAC52AC87CFA3174B3352140A8DC10BB7F48C945FC87787C3AC96F0FC2CFDB40</strong>
- <weak>1066412964</weak>
- <size>165</size>
- <position>57</position>
+ <size>1</size>
+ <strong>E444EE9697EEADFDE0767E1D0242FC0E70D98E61FB1F0FFA099648DE509B82F3</strong>
+ <weak>94503238</weak>
+ <size>773</size>
+ <position>374</position>
                                                                                         </container>
                                                                                 </stream_hook_path>
                                                                         </hook>
                                                                         <file>
                                                                                 <path>
                                                                                         <empty>0</empty>
- <string>../../../../boost/exception/exception.hpp</string>
+ <string>../../example/info_tuple.cpp</string>
                                                                                         <type>0</type>
                                                                                         <base>0</base>
                                                                                 </path>
                                                                         </file>
                                                                         <shared_ptr>
- <id>-26</id>
+ <id>-32</id>
                                                                         </shared_ptr>
                                                                 </pair>
                                                                 <pair>
                                                                         <hook>
                                                                                 <stream_hook_path>
                                                                                         <container>
- <size>3</size>
- <strong>13F58566E4D9F20B49F3F30B28528AEE562CD709108ADC1AE19A2F01D86C62F4</strong>
- <weak>1430141721</weak>
- <size>2967</size>
- <position>503</position>
- <strong>09CB6839AC1E71887371FB8159C2BFCD273A397C54E07B25CEF2EEF2FA24286A</strong>
- <weak>4111403263</weak>
- <size>1924</size>
- <position>878</position>
- <strong>BACD79DFB4C710C1A67687FC6344DF2251E2379613C2DF5B2729B2CD37E24EA3</strong>
- <weak>458367129</weak>
- <size>154</size>
- <position>246</position>
+ <size>2</size>
+ <strong>8C77439A1F52A50CF8C4131A44CC7FA9CF5E02508CB32C4FF40B565613A396F4</strong>
+ <weak>476106477</weak>
+ <size>3812</size>
+ <position>518</position>
+ <strong>D31BCE814DF5B8B718E7EB67A194AD08EF716A26D422E436596ABA1F145007D8</strong>
+ <weak>4055211476</weak>
+ <size>525</size>
+ <position>3281</position>
                                                                                         </container>
                                                                                 </stream_hook_path>
                                                                         </hook>
                                                                         <file>
                                                                                 <path>
                                                                                         <empty>0</empty>
- <string>../../../../boost/exception/exception.hpp</string>
+ <string>../../../../boost/exception/info.hpp</string>
                                                                                         <type>0</type>
                                                                                         <base>0</base>
                                                                                 </path>
                                                                         </file>
                                                                         <shared_ptr>
- <id>-36</id>
+ <id>-25</id>
                                                                         </shared_ptr>
                                                                 </pair>
                                                         </sorted>
@@ -8526,7 +8758,7 @@
                         </contexts>
                         <index>
                                 <shared_ptr>
- <id>51</id>
+ <id>52</id>
                                         <type>
                                                 <string>tag_index</string>
                                         </type>
@@ -8544,19 +8776,10 @@
                                                                         <weak_ptr>
                                                                                 <expired>0</expired>
                                                                                 <shared_ptr>
- <id>-5</id>
- </shared_ptr>
- </weak_ptr>
- <string>exception_ptr,free,function,rethrow_exception</string>
- </pair>
- <pair>
- <weak_ptr>
- <expired>0</expired>
- <shared_ptr>
                                                                                         <id>-6</id>
                                                                                 </shared_ptr>
                                                                         </weak_ptr>
- <string>exception_ptr,type</string>
+ <string>error_info free function</string>
                                                                 </pair>
                                                                 <pair>
                                                                         <weak_ptr>
@@ -8565,7 +8788,7 @@
                                                                                         <id>-7</id>
                                                                                 </shared_ptr>
                                                                         </weak_ptr>
- <string>error_info,free,function,get_error_info</string>
+ <string>exception_ptr type</string>
                                                                 </pair>
                                                                 <pair>
                                                                         <weak_ptr>
@@ -8574,7 +8797,7 @@
                                                                                         <id>-8</id>
                                                                                 </shared_ptr>
                                                                         </weak_ptr>
- <string>boost/exception/exception.hpp,exception,header</string>
+ <string></string>
                                                                 </pair>
                                                                 <pair>
                                                                         <weak_ptr>
@@ -8583,7 +8806,7 @@
                                                                                         <id>-9</id>
                                                                                 </shared_ptr>
                                                                         </weak_ptr>
- <string>boost/exception_ptr.hpp,exception_ptr,header</string>
+ <string></string>
                                                                 </pair>
                                                                 <pair>
                                                                         <weak_ptr>
@@ -8592,7 +8815,7 @@
                                                                                         <id>-10</id>
                                                                                 </shared_ptr>
                                                                         </weak_ptr>
- <string>BOOST_ERROR_INFO,error_info,macro</string>
+ <string></string>
                                                                 </pair>
                                                                 <pair>
                                                                         <weak_ptr>
@@ -8601,7 +8824,7 @@
                                                                                         <id>-11</id>
                                                                                 </shared_ptr>
                                                                         </weak_ptr>
- <string>noalso,noindex,tutorial</string>
+ <string></string>
                                                                 </pair>
                                                                 <pair>
                                                                         <weak_ptr>
@@ -8610,7 +8833,7 @@
                                                                                         <id>-12</id>
                                                                                 </shared_ptr>
                                                                         </weak_ptr>
- <string>noalso,noindex,tutorial</string>
+ <string></string>
                                                                 </pair>
                                                                 <pair>
                                                                         <weak_ptr>
@@ -8619,7 +8842,7 @@
                                                                                         <id>-13</id>
                                                                                 </shared_ptr>
                                                                         </weak_ptr>
- <string>boost/exception/enable_current_exception.hpp,enable_current_exception,exception_ptr,header</string>
+ <string>exception_ptr free function</string>
                                                                 </pair>
                                                                 <pair>
                                                                         <weak_ptr>
@@ -8628,7 +8851,7 @@
                                                                                         <id>-14</id>
                                                                                 </shared_ptr>
                                                                         </weak_ptr>
- <string>copy_exception,exception_ptr,free,function</string>
+ <string>exception_ptr free function</string>
                                                                 </pair>
                                                                 <pair>
                                                                         <weak_ptr>
@@ -8637,7 +8860,7 @@
                                                                                         <id>-15</id>
                                                                                 </shared_ptr>
                                                                         </weak_ptr>
- <string>exception,type</string>
+ <string>exception_ptr free function</string>
                                                                 </pair>
                                                                 <pair>
                                                                         <weak_ptr>
@@ -8646,7 +8869,7 @@
                                                                                         <id>-16</id>
                                                                                 </shared_ptr>
                                                                         </weak_ptr>
- <string>tutorial</string>
+ <string>error_info</string>
                                                                 </pair>
                                                                 <pair>
                                                                         <weak_ptr>
@@ -8655,7 +8878,7 @@
                                                                                         <id>-17</id>
                                                                                 </shared_ptr>
                                                                         </weak_ptr>
- <string>boost/exception.hpp,header</string>
+ <string>noalso noindex tutorial</string>
                                                                 </pair>
                                                                 <pair>
                                                                         <weak_ptr>
@@ -8664,7 +8887,7 @@
                                                                                         <id>-18</id>
                                                                                 </shared_ptr>
                                                                         </weak_ptr>
- <string>tutorial</string>
+ <string>function</string>
                                                                 </pair>
                                                                 <pair>
                                                                         <weak_ptr>
@@ -8673,7 +8896,7 @@
                                                                                         <id>-19</id>
                                                                                 </shared_ptr>
                                                                         </weak_ptr>
- <string>tutorial</string>
+ <string></string>
                                                                 </pair>
                                                                 <pair>
                                                                         <weak_ptr>
@@ -8682,7 +8905,7 @@
                                                                                         <id>-20</id>
                                                                                 </shared_ptr>
                                                                         </weak_ptr>
- <string>boost/exception/info.hpp,error_info,header,info</string>
+ <string>exception_ptr</string>
                                                                 </pair>
                                                                 <pair>
                                                                         <weak_ptr>
@@ -8691,7 +8914,7 @@
                                                                                         <id>-21</id>
                                                                                 </shared_ptr>
                                                                         </weak_ptr>
- <string>noalso,noindex,tutorial</string>
+ <string>error_info</string>
                                                                 </pair>
                                                                 <pair>
                                                                         <weak_ptr>
@@ -8700,7 +8923,7 @@
                                                                                         <id>-22</id>
                                                                                 </shared_ptr>
                                                                         </weak_ptr>
- <string>error_info,free,type</string>
+ <string>exception_ptr free function</string>
                                                                 </pair>
                                                                 <pair>
                                                                         <weak_ptr>
@@ -8709,7 +8932,7 @@
                                                                                         <id>-23</id>
                                                                                 </shared_ptr>
                                                                         </weak_ptr>
- <string>error_info,free,function,operator&lt;&lt;,operator&lt;&lt;/exception</string>
+ <string></string>
                                                                 </pair>
                                                                 <pair>
                                                                         <weak_ptr>
@@ -8718,7 +8941,7 @@
                                                                                         <id>-24</id>
                                                                                 </shared_ptr>
                                                                         </weak_ptr>
- <string>error_info,free,function,operator&lt;&lt;,operator&lt;&lt;/tuple</string>
+ <string></string>
                                                                 </pair>
                                                                 <pair>
                                                                         <weak_ptr>
@@ -8727,7 +8950,7 @@
                                                                                         <id>-25</id>
                                                                                 </shared_ptr>
                                                                         </weak_ptr>
- <string>current_exception,exception_ptr,free,function</string>
+ <string>error_info free function</string>
                                                                 </pair>
                                                                 <pair>
                                                                         <weak_ptr>
@@ -8736,7 +8959,7 @@
                                                                                         <id>-26</id>
                                                                                 </shared_ptr>
                                                                         </weak_ptr>
- <string>diagnostic_information,exception,exception::diagnostic_information,function,member</string>
+ <string>error_info free function</string>
                                                                 </pair>
                                                                 <pair>
                                                                         <weak_ptr>
@@ -8745,7 +8968,7 @@
                                                                                         <id>-27</id>
                                                                                 </shared_ptr>
                                                                         </weak_ptr>
- <string>diagnostic_information,free,function</string>
+ <string></string>
                                                                 </pair>
                                                                 <pair>
                                                                         <weak_ptr>
@@ -8754,7 +8977,7 @@
                                                                                         <id>-28</id>
                                                                                 </shared_ptr>
                                                                         </weak_ptr>
- <string>exception,exception::~exception,function,member</string>
+ <string>noalso noindex tutorial</string>
                                                                 </pair>
                                                                 <pair>
                                                                         <weak_ptr>
@@ -8763,7 +8986,7 @@
                                                                                         <id>-29</id>
                                                                                 </shared_ptr>
                                                                         </weak_ptr>
- <string>noalso,noindex,tutorial</string>
+ <string>function</string>
                                                                 </pair>
                                                                 <pair>
                                                                         <weak_ptr>
@@ -8772,7 +8995,7 @@
                                                                                         <id>-30</id>
                                                                                 </shared_ptr>
                                                                         </weak_ptr>
- <string>noalso,noindex,tutorial</string>
+ <string>diagnostic_information free function</string>
                                                                 </pair>
                                                                 <pair>
                                                                         <weak_ptr>
@@ -8781,7 +9004,7 @@
                                                                                         <id>-31</id>
                                                                                 </shared_ptr>
                                                                         </weak_ptr>
- <string>boost/exception/diagnostic_information.hpp,diagnostic_information,header</string>
+ <string>tutorial</string>
                                                                 </pair>
                                                                 <pair>
                                                                         <weak_ptr>
@@ -8790,7 +9013,7 @@
                                                                                         <id>-32</id>
                                                                                 </shared_ptr>
                                                                         </weak_ptr>
- <string>boost/exception/enable_error_info.hpp,enable_error_info,error_info,header</string>
+ <string>noalso noindex tutorial</string>
                                                                 </pair>
                                                                 <pair>
                                                                         <weak_ptr>
@@ -8799,7 +9022,7 @@
                                                                                         <id>-33</id>
                                                                                 </shared_ptr>
                                                                         </weak_ptr>
- <string>boost/exception/error_info.hpp,error_info,header</string>
+ <string>type</string>
                                                                 </pair>
                                                                 <pair>
                                                                         <weak_ptr>
@@ -8808,7 +9031,7 @@
                                                                                         <id>-34</id>
                                                                                 </shared_ptr>
                                                                         </weak_ptr>
- <string>boost/exception/info_tuple.hpp,error_info,header,info_tuple</string>
+ <string>error_info free function</string>
                                                                 </pair>
                                                                 <pair>
                                                                         <weak_ptr>
@@ -8817,7 +9040,7 @@
                                                                                         <id>-35</id>
                                                                                 </shared_ptr>
                                                                         </weak_ptr>
- <string>boost/throw_exception.hpp,header,throw_exception</string>
+ <string>type</string>
                                                                 </pair>
                                                                 <pair>
                                                                         <weak_ptr>
@@ -8826,7 +9049,7 @@
                                                                                         <id>-36</id>
                                                                                 </shared_ptr>
                                                                         </weak_ptr>
- <string>exception,exception::exception,function,member</string>
+ <string>noalso noindex tutorial</string>
                                                                 </pair>
                                                                 <pair>
                                                                         <weak_ptr>
@@ -8835,7 +9058,7 @@
                                                                                         <id>-37</id>
                                                                                 </shared_ptr>
                                                                         </weak_ptr>
- <string>exception_ptr,type,unknown_exception</string>
+ <string>tutorial</string>
                                                                 </pair>
                                                                 <pair>
                                                                         <weak_ptr>
@@ -8844,7 +9067,7 @@
                                                                                         <id>-38</id>
                                                                                 </shared_ptr>
                                                                         </weak_ptr>
- <string>enable_current_exception,exception_ptr,free,function</string>
+ <string>free function</string>
                                                                 </pair>
                                                                 <pair>
                                                                         <weak_ptr>
@@ -8853,7 +9076,7 @@
                                                                                         <id>-39</id>
                                                                                 </shared_ptr>
                                                                         </weak_ptr>
- <string>index,noindex</string>
+ <string>tutorial</string>
                                                                 </pair>
                                                                 <pair>
                                                                         <weak_ptr>
@@ -8862,7 +9085,7 @@
                                                                                         <id>-40</id>
                                                                                 </shared_ptr>
                                                                         </weak_ptr>
- <string>enable_error_info,error_info,free,function</string>
+ <string>diagnostic_information tutorial</string>
                                                                 </pair>
                                                                 <pair>
                                                                         <weak_ptr>
@@ -8871,7 +9094,7 @@
                                                                                         <id>-41</id>
                                                                                 </shared_ptr>
                                                                         </weak_ptr>
- <string>tutorial</string>
+ <string>type</string>
                                                                 </pair>
                                                                 <pair>
                                                                         <weak_ptr>
@@ -8880,7 +9103,7 @@
                                                                                         <id>-42</id>
                                                                                 </shared_ptr>
                                                                         </weak_ptr>
- <string>noindex</string>
+ <string>noalso noindex tutorial</string>
                                                                 </pair>
                                                                 <pair>
                                                                         <weak_ptr>
@@ -8889,7 +9112,16 @@
                                                                                         <id>-43</id>
                                                                                 </shared_ptr>
                                                                         </weak_ptr>
- <string>free,function,throw_exception</string>
+ <string>noindex</string>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-44</id>
+ </shared_ptr>
+ </weak_ptr>
+ <string>index noindex</string>
                                                                 </pair>
                                                         </sorted>
                                                 </tag_index>

Modified: branches/release/libs/exception/doc/throw_exception.html
==============================================================================
--- branches/release/libs/exception/doc/throw_exception.html (original)
+++ branches/release/libs/exception/doc/throw_exception.html 2008-09-19 16:29:26 EDT (Fri, 19 Sep 2008)
@@ -25,16 +25,12 @@
 <pre>namespace
 boost
     {
-<span class="RenoIncludeSPAN"> #ifdef BOOST_NO_EXCEPTIONS
-
+<span class="RenoIncludeSPAN">#ifdef BOOST_NO_EXCEPTIONS
     void <span class="RenoLink">throw_exception</span>( std::exception const &amp; e ); // user defined
-
- #else
-
+#else
     template &lt;class E&gt;
     void <span class="RenoLink">throw_exception</span>( E const &amp; e );
-
- #endif</span>
+#endif</span>
     }</pre>
 </div><h4>Requirements:</h4>
 <p>E must derive publicly from std::exception.</p>
@@ -44,8 +40,10 @@
 </ul></div>
 </div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
 <h3>See Also:</h3>
-<div class="RenoPageList"><a href="boost-exception.html">Boost Exception<br/>
+<div class="RenoPageList"><a href="BOOST_THROW_EXCEPTION.html">BOOST_THROW_EXCEPTION<br/>
+</a><a href="boost-exception.html">Boost Exception<br/>
 </a><a href="throw_exception_hpp.html">boost/throw_exception.hpp<br/>
+</a><a href="configuration_macros.html">Configuration Macros<br/>
 </a><a href="enable_current_exception.html">enable_current_exception<br/>
 </a><a href="tutorial_exception_ptr.html">Transporting of Exceptions Between Threads<br/>
 </a></div>

Modified: branches/release/libs/exception/doc/throw_exception_hpp.html
==============================================================================
--- branches/release/libs/exception/doc/throw_exception_hpp.html (original)
+++ branches/release/libs/exception/doc/throw_exception_hpp.html 2008-09-19 16:29:26 EDT (Fri, 19 Sep 2008)
@@ -22,28 +22,33 @@
 <div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h2>boost/throw_exception.hpp</h2>
 </div>
 <h3>Synopsis</h3>
-<div class="RenoIncludeDIV"><pre>#include &lt;<span class="RenoLink">boost/exception/enable_current_exception.hpp</span>&gt;
-#include &lt;<span class="RenoLink">boost/exception/enable_error_info.hpp</span>&gt;
-#include &lt;exception&gt;
+<div class="RenoIncludeDIV"><div class="RenoIncludeDIV"><pre><span class="RenoIncludeSPAN">#if !defined( BOOST_NO_EXCEPTIONS ) &amp;&amp; !defined( BOOST_EXCEPTION_DISABLE )
+ #include &lt;<span class="RenoLink">boost/exception/exception.hpp</span>&gt;
+ #include &lt;boost/current_function.hpp&gt;
+ #define <span class="RenoLink">BOOST_THROW_EXCEPTION</span>(x)\
+ ::boost::<span class="RenoLink">throw_exception</span>( ::boost::<span class="RenoLink">enable_error_info</span>(x) &lt;&lt;\
+ ::boost::<span class="RenoLink">throw_function</span>(BOOST_CURRENT_FUNCTION) &lt;&lt;\
+ ::boost::<span class="RenoLink">throw_file</span>(__FILE__) &lt;&lt;\
+ ::boost::<span class="RenoLink">throw_line</span>((int)__LINE__) )
+#else
+ #define <span class="RenoLink">BOOST_THROW_EXCEPTION</span>(x) ::boost::<span class="RenoLink">throw_exception</span>(x)
+#endif</span>
 
 namespace
 boost
     {
-<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">#ifdef BOOST_NO_EXCEPTIONS
-
+<span class="RenoIncludeSPAN">#ifdef BOOST_NO_EXCEPTIONS
     void <span class="RenoLink">throw_exception</span>( std::exception const &amp; e ); // user defined
-
- #else
-
+#else
     template &lt;class E&gt;
     void <span class="RenoLink">throw_exception</span>( E const &amp; e );
-
- #endif</span></span>
+#endif</span>
     }</pre>
-</div></div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+</div></div></div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
 <h3>See Also:</h3>
-<div class="RenoPageList"><a href="boost-exception.html">Boost Exception<br/>
-</a><a href="exception_hpp.html">boost/exception.hpp<br/>
+<div class="RenoPageList"><a href="BOOST_THROW_EXCEPTION.html">BOOST_THROW_EXCEPTION<br/>
+</a><a href="boost-exception.html">Boost Exception<br/>
+</a><a href="configuration_macros.html">Configuration Macros<br/>
 </a><a href="throw_exception.html">throw_exception<br/>
 </a></div>
 </div>

Added: branches/release/libs/exception/doc/tuple_operator_shl.html
==============================================================================
--- (empty file)
+++ branches/release/libs/exception/doc/tuple_operator_shl.html 2008-09-19 16:29:26 EDT (Fri, 19 Sep 2008)
@@ -0,0 +1,66 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>tuple/operator&lt;&lt;</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="boost_logo">
+Boost
+</div>
+<h1>Boost Exception</h1>
+</div>
+<!-- Copyright (c) 2006-2008 Emil Dotchevski and Reverge Studios, Inc. -->
+<!-- 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>tuple/operator&lt;&lt;</h3>
+</div>
+<div class="RenoIncludeDIV"><p><span class="RenoEscape">&#35;<!--<wiki>`&#35;</wiki>--></span>include &lt;<span class="RenoLink">boost/exception/info_tuple.hpp</span>&gt;</p>
+<pre>namespace
+boost
+ {
+<span class="RenoIncludeSPAN"> template &lt;class E, class Tag1, class T1, ..., class TagN, class TN&gt;
+ E const &amp; <span class="RenoLink">operator<<</span>( E const &amp; x,
+ <span class="RenoLink">tuple</span>&lt;
+ <span class="RenoLink">error_info</span>&lt;Tag1,T1&gt;,
+ ...,
+ <span class="RenoLink">error_info</span>&lt;TagN,TN&gt; &gt; const &amp; v );</span>
+ }</pre>
+</div><h4>Requirements:</h4>
+<p>E must be boost::<span class="RenoLink">exception</span>, or a type that derives (indirectly) from boost::<span class="RenoLink">exception</span>.</p>
+<h4>Effects:</h4>
+<p>Equivalent to x &lt;&lt; v.<span class="RenoLink">get</span>&lt;0&gt;() &lt;&lt; ... &lt;&lt; v.<span class="RenoLink">get</span>&lt;N&gt;().</p>
+<h4>Returns:</h4>
+<p>x.</p>
+<div class="RenoIncludeDIV"><h4>Throws:</h4>
+<p>std::bad_alloc, or any exception emitted by T1..TN copy constructor.</p>
+</div></div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+<h3>See Also:</h3>
+<div class="RenoPageList"><a href="boost-exception.html">Boost Exception<br/>
+</a><a href="exception_error_info_group_hpp.html">boost/exception/info_tuple.hpp<br/>
+</a></div>
+</div>
+<!-- Copyright (c) 2006-2008 Emil Dotchevski and Reverge Studios, Inc. -->
+<!-- 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) -->
+<div id="footer">
+<p>&nbsp;</p>
+<hr/>
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/validator?uri=http://revergestudios.com/boost-exception/reno.css"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2006-2008 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>

Modified: branches/release/libs/exception/doc/tutorial_diagnostic_information.html
==============================================================================
--- branches/release/libs/exception/doc/tutorial_diagnostic_information.html (original)
+++ branches/release/libs/exception/doc/tutorial_diagnostic_information.html 2008-09-19 16:29:26 EDT (Fri, 19 Sep 2008)
@@ -21,7 +21,12 @@
 <!-- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -->
 <div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h2>Diagnostic Information</h2>
 </div>
-<p>Class boost::<span class="RenoLink">exception</span> provides a virtual member function <span class="RenoLink">diagnostic_information</span>, with a signature similar 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:</p>
+<p>Boost Exception provides a namespace-scope function <span class="RenoLink">diagnostic_information</span> which takes a boost::<span class="RenoLink">exception</span>. The returned string contains:</p>
+<div><ul><li>the string representation of all data objects added to the boost::<span class="RenoLink">exception</span> through <span class="RenoLink">operator<<</span>;</li>
+<li>the output from std::exception::what;</li>
+<li>additional platform-specific diagnostic information.</li>
+</ul></div>
+<p>The returned string 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:</p>
 <pre>#include &lt;<span class="RenoLink">boost/exception.hpp</span>&gt;
 #include &lt;iostream&gt;
 
@@ -37,17 +42,12 @@
     catch(
     boost::<span class="RenoLink">exception</span> &amp; e )
         {
- std::cerr &lt;&lt; e.<span class="RenoLink">diagnostic_information</span>();
+ std::cerr &lt;&lt; <span class="RenoLink">diagnostic_information</span>(e);
         }
     }</pre>
-<p>The <span class="RenoLink">diagnostic_information</span> member function iterates over all data objects stored in the boost::<span class="RenoLink">exception</span> through <span class="RenoLink">operator<<</span>. The returned string is constructed by converting each data object to string and then concatenating these strings together.</p>
-<p>When the <span class="RenoLink">error_info</span>&lt;Tag,T&gt; template is instantiated, the system attempts overload resolution for an unqualified call to to_string(x), where x is of type T. If this is successful, the to_string overload is expected to return std::string and is used to convert objects of type T to string.</p>
-<p>Otherwise, the system attempts overload resolution for s &lt;&lt; x, where s is a std::ostringstream and x is of type T. If this is successful, the operator&lt;&lt; overload is used to convert objects of type T to string.</p>
-<p>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.</p>
 </div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
 <h3>See Also:</h3>
 <div class="RenoPageList"><a href="boost-exception.html">Boost Exception<br/>
-</a><a href="exception_diagnostic_information.html">exception::diagnostic_information<br/>
 </a></div>
 </div>
 <!-- Copyright (c) 2006-2008 Emil Dotchevski and Reverge Studios, Inc. -->

Modified: branches/release/libs/exception/doc/tutorial_enable_error_info.html
==============================================================================
--- branches/release/libs/exception/doc/tutorial_enable_error_info.html (original)
+++ branches/release/libs/exception/doc/tutorial_enable_error_info.html 2008-09-19 16:29:26 EDT (Fri, 19 Sep 2008)
@@ -49,7 +49,7 @@
         }
     };
 </pre>
-<p>The call to <span class="RenoLink">enable_error_info</span>&lt;T&gt; gets us an object of <i>unspecified type</i> which is guaranteed to derive from both boost::<span class="RenoLink">exception</span> and T. This makes it possible to use <span class="RenoLink">operator<<</span> to store additional information in the exception object. The exception can be intercepted as T &amp;, so existing exception handling will not break. It can also be intercepted as boost::<span class="RenoLink">exception</span> &amp;, so that <span class="RenoLink">more information can be added to the exception at a later time</span>.</p>
+<p>The call to <span class="RenoLink">enable_error_info</span>&lt;T&gt; gets us an object of <i>unspecified type</i> which is guaranteed to derive from both boost::<span class="RenoLink">exception</span> and T. This makes it possible to use <span class="RenoLink">operator<<</span> to store additional information in the exception object. The exception can be intercepted as T &amp;, so existing exception handling will not break. It can also be intercepted as boost::<span class="RenoLink">exception</span> &amp;, so that <span class="RenoLink">more information can be added to the exception at a later time</span>.</p>
 </div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
 <h3>See Also:</h3>
 <div class="RenoPageList"><a href="boost-exception.html">Boost Exception<br/>

Modified: branches/release/libs/exception/doc/tutorial_exception_ptr.html
==============================================================================
--- branches/release/libs/exception/doc/tutorial_exception_ptr.html (original)
+++ branches/release/libs/exception/doc/tutorial_exception_ptr.html 2008-09-19 16:29:26 EDT (Fri, 19 Sep 2008)
@@ -27,8 +27,7 @@
 <div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>Using enable_current_exception at the Time of the Throw</h3>
 </div>
 <p>Here is how cloning can be enabled in a throw-expression (15.1):</p>
-<pre>#include &lt;<span class="RenoLink">boost/exception/enable_current_exception.hpp</span>&gt;
-#include &lt;<span class="RenoLink">boost/exception/info.hpp</span>&gt;
+<pre>#include &lt;<span class="RenoLink">boost/exception/info.hpp</span>&gt;
 #include &lt;stdio.h&gt;
 #include &lt;errno.h&gt;
 

Modified: branches/release/libs/exception/doc/tutorial_transporting_data.html
==============================================================================
--- branches/release/libs/exception/doc/tutorial_transporting_data.html (original)
+++ branches/release/libs/exception/doc/tutorial_transporting_data.html 2008-09-19 16:29:26 EDT (Fri, 19 Sep 2008)
@@ -41,7 +41,7 @@
 </pre>
 <p>First, we instantiate the <span class="RenoLink">error_info</span> template using a unique identifier -- tag_errno, and the type of the info it identifies -- int. This provides compile-time type safety for the various values stored in exception objects.</p>
 <p>Second, we define class my_error, which derives from boost::<span class="RenoLink">exception</span>.</p>
-<p>Finally, (3) illustrates how the typedef from (1) can be used with <span class="RenoLink">operator<<</span> to store values in exception objects at the point of the throw.</p>
+<p>Finally, (3) illustrates how the typedef from (1) can be used with <span class="RenoLink">operator<<</span> to store values in exception objects at the point of the throw.</p>
 <p>The stored errno value can be recovered at a later time like this:</p>
 <pre>// ...continued
 

Modified: branches/release/libs/exception/example/cloning_1.cpp
==============================================================================
--- branches/release/libs/exception/example/cloning_1.cpp (original)
+++ branches/release/libs/exception/example/cloning_1.cpp 2008-09-19 16:29:26 EDT (Fri, 19 Sep 2008)
@@ -5,7 +5,6 @@
 
 //This example shows how to enable cloning when throwing a boost::exception.
 
-#include <boost/exception/enable_current_exception.hpp>
 #include <boost/exception/info.hpp>
 #include <stdio.h>
 #include <errno.h>

Modified: branches/release/libs/exception/example/example_io.cpp
==============================================================================
--- branches/release/libs/exception/example/example_io.cpp (original)
+++ branches/release/libs/exception/example/example_io.cpp 2008-09-19 16:29:26 EDT (Fri, 19 Sep 2008)
@@ -41,7 +41,7 @@
     char const *
     what() const throw()
         {
- return boost::exception::diagnostic_information();
+ return "example_io error";
         }
 
     protected:
@@ -66,11 +66,11 @@
     if( FILE * f = ::fopen(name,mode) )
         return boost::shared_ptr<FILE>(f,fclose);
     else
- throw fopen_error() << BOOST_ERROR_INFO <<
+ BOOST_THROW_EXCEPTION(fopen_error() <<
             errno_info(errno) <<
             file_name_info(name) <<
             open_mode_info(mode) <<
- function_info("fopen");
+ function_info("fopen"));
     }
 
 void
@@ -78,10 +78,10 @@
     {
     assert(stream);
     if( count!=fread(buffer,size,count,stream.get()) || ferror(stream.get()) )
- throw fread_error() << BOOST_ERROR_INFO <<
+ BOOST_THROW_EXCEPTION(fread_error() <<
             function_info("fread") <<
             errno_info(errno) <<
- file_stream_info(boost::weak_ptr<FILE>(stream));
+ file_stream_info(boost::weak_ptr<FILE>(stream)));
     }
 
 void
@@ -89,10 +89,10 @@
     {
     assert(stream);
     if( count!=fwrite(buffer,size,count,stream.get()) || ferror(stream.get()) )
- throw fwrite_error() << BOOST_ERROR_INFO <<
+ BOOST_THROW_EXCEPTION(fwrite_error() <<
             function_info("fwrite") <<
             errno_info(errno) <<
- file_stream_info(boost::weak_ptr<FILE>(stream));
+ file_stream_info(boost::weak_ptr<FILE>(stream)));
     }
 
 void
@@ -150,7 +150,7 @@
 dump_file_info( boost::exception const & x )
     {
     if( boost::shared_ptr<std::string const> fn = boost::get_error_info<file_name_info>(x) )
- std::cout << "Source file name: " << *fn << "\n";
+ std::cout << "File name: " << *fn << "\n";
     }
 
 void
@@ -170,7 +170,7 @@
     dump_file_info(x);
     dump_clib_info(x);
     std::cout << "\nOutput from diagnostic_information():\n";
- std::cout << x.diagnostic_information();
+ std::cout << diagnostic_information(x);
     }
 
 int

Modified: branches/release/libs/exception/example/logging.cpp
==============================================================================
--- branches/release/libs/exception/example/logging.cpp (original)
+++ branches/release/libs/exception/example/logging.cpp 2008-09-19 16:29:26 EDT (Fri, 19 Sep 2008)
@@ -20,6 +20,6 @@
     catch(
     boost::exception & e )
         {
- std::cerr << e.diagnostic_information();
+ std::cerr << diagnostic_information(e);
         }
     }

Added: branches/release/libs/exception/test/1-throw_exception_test.cpp
==============================================================================
--- (empty file)
+++ branches/release/libs/exception/test/1-throw_exception_test.cpp 2008-09-19 16:29:26 EDT (Fri, 19 Sep 2008)
@@ -0,0 +1,29 @@
+//Copyright (c) 2006-2008 Emil Dotchevski and Reverge Studios, Inc.
+
+//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)
+
+#include <boost/throw_exception.hpp>
+#include <boost/detail/lightweight_test.hpp>
+
+class my_exception: public std::exception { };
+
+int
+main()
+ {
+ try
+ {
+ boost::throw_exception(my_exception());
+ BOOST_ERROR("boost::throw_exception failed to throw.");
+ }
+ catch(
+ my_exception & )
+ {
+ }
+ catch(
+ ... )
+ {
+ BOOST_ERROR("boost::throw_exception malfunction.");
+ }
+ return boost::report_errors();
+ }

Added: branches/release/libs/exception/test/2-throw_exception_no_exceptions_test.cpp
==============================================================================
--- (empty file)
+++ branches/release/libs/exception/test/2-throw_exception_no_exceptions_test.cpp 2008-09-19 16:29:26 EDT (Fri, 19 Sep 2008)
@@ -0,0 +1,30 @@
+//Copyright (c) 2006-2008 Emil Dotchevski and Reverge Studios, Inc.
+
+//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)
+
+#define BOOST_NO_EXCEPTIONS
+#include <boost/throw_exception.hpp>
+#include <boost/detail/lightweight_test.hpp>
+
+class my_exception: public std::exception { };
+
+bool called=false;
+
+namespace
+boost
+ {
+ void
+ throw_exception( std::exception const & )
+ {
+ called=true;
+ }
+ }
+
+int
+main()
+ {
+ boost::throw_exception(my_exception());
+ BOOST_TEST(called);
+ return boost::report_errors();
+ }

Added: branches/release/libs/exception/test/3-throw_exception_no_integration_test.cpp
==============================================================================
--- (empty file)
+++ branches/release/libs/exception/test/3-throw_exception_no_integration_test.cpp 2008-09-19 16:29:26 EDT (Fri, 19 Sep 2008)
@@ -0,0 +1,30 @@
+//Copyright (c) 2006-2008 Emil Dotchevski and Reverge Studios, Inc.
+
+//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)
+
+#define BOOST_EXCEPTION_DISABLE
+#include <boost/throw_exception.hpp>
+#include <boost/detail/lightweight_test.hpp>
+
+class my_exception: public std::exception { };
+
+int
+main()
+ {
+ try
+ {
+ boost::throw_exception(my_exception());
+ BOOST_ERROR("boost::throw_exception failed to throw.");
+ }
+ catch(
+ my_exception & )
+ {
+ }
+ catch(
+ ... )
+ {
+ BOOST_ERROR("boost::throw_exception malfunction.");
+ }
+ return boost::report_errors();
+ }

Added: branches/release/libs/exception/test/4-throw_exception_no_both_test.cpp
==============================================================================
--- (empty file)
+++ branches/release/libs/exception/test/4-throw_exception_no_both_test.cpp 2008-09-19 16:29:26 EDT (Fri, 19 Sep 2008)
@@ -0,0 +1,31 @@
+//Copyright (c) 2006-2008 Emil Dotchevski and Reverge Studios, Inc.
+
+//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)
+
+#define BOOST_NO_EXCEPTIONS
+#define BOOST_EXCEPTION_DISABLE
+#include <boost/throw_exception.hpp>
+#include <boost/detail/lightweight_test.hpp>
+
+class my_exception: public std::exception { };
+
+bool called=false;
+
+namespace
+boost
+ {
+ void
+ throw_exception( std::exception const & )
+ {
+ called=true;
+ }
+ }
+
+int
+main()
+ {
+ boost::throw_exception(my_exception());
+ BOOST_TEST(called);
+ return boost::report_errors();
+ }

Modified: branches/release/libs/exception/test/Jamfile.v2
==============================================================================
--- branches/release/libs/exception/test/Jamfile.v2 (original)
+++ branches/release/libs/exception/test/Jamfile.v2 2008-09-19 16:29:26 EDT (Fri, 19 Sep 2008)
@@ -19,16 +19,20 @@
 
 #exception
 
+run 1-throw_exception_test.cpp ;
+run 2-throw_exception_no_exceptions_test.cpp ;
+run 3-throw_exception_no_integration_test.cpp ;
+run 4-throw_exception_no_both_test.cpp ;
 run cloning_test.cpp ;
 run copy_exception_test.cpp ;
 run unknown_exception_test.cpp ;
 run exception_test.cpp ;
-run boost_error_info_test.cpp ;
 run enable_error_info_test.cpp helper1.cpp ;
 run throw_exception_test.cpp helper2.cpp ;
 run errno_test.cpp ;
 run error_info_test.cpp ;
 run diagnostic_information_test.cpp ;
+run refcount_ptr_test.cpp ;
 compile-fail exception_fail.cpp ;
 compile-fail throw_exception_fail.cpp ;
 
@@ -36,10 +40,9 @@
 
 compile exception_ptr_hpp_test.cpp ;
 compile diagnostic_information_hpp_test.cpp ;
-compile enable_current_exception_hpp_test.cpp ;
-compile enable_error_info_hpp_test.cpp ;
 compile error_info_hpp_test.cpp ;
 compile exception_hpp_test.cpp ;
+compile get_error_info_hpp_test.cpp ;
 compile info_hpp_test.cpp ;
 compile info_tuple_hpp_test.cpp ;
 compile to_string_hpp_test.cpp ;

Deleted: branches/release/libs/exception/test/boost_error_info_test.cpp
==============================================================================
--- branches/release/libs/exception/test/boost_error_info_test.cpp 2008-09-19 16:29:26 EDT (Fri, 19 Sep 2008)
+++ (empty file)
@@ -1,40 +0,0 @@
-//Copyright (c) 2006-2008 Emil Dotchevski and Reverge Studios, Inc.
-
-//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)
-
-#include <boost/exception/info.hpp>
-#include <boost/detail/lightweight_test.hpp>
-#include <stdexcept>
-
-namespace
-test
- {
- class my_exception: public boost::exception { };
-
- typedef boost::error_info<struct tag_my_info,int> my_info;
-
- void
- test_boost_error_info()
- {
- try
- {
- throw my_exception() << BOOST_ERROR_INFO << my_info(1);
- }
- catch(
- my_exception & x )
- {
- BOOST_TEST(1==*boost::get_error_info<my_info>(x));
- BOOST_TEST(boost::get_error_info<boost::throw_function>(x));
- BOOST_TEST(boost::get_error_info<boost::throw_file>(x));
- BOOST_TEST(boost::get_error_info<boost::throw_line>(x));
- }
- }
- }
-
-int
-main()
- {
- test::test_boost_error_info();
- return boost::report_errors();
- }

Modified: branches/release/libs/exception/test/cloning_test.cpp
==============================================================================
--- branches/release/libs/exception/test/cloning_test.cpp (original)
+++ branches/release/libs/exception/test/cloning_test.cpp 2008-09-19 16:29:26 EDT (Fri, 19 Sep 2008)
@@ -4,33 +4,314 @@
 //file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
 #include <boost/exception_ptr.hpp>
+#include <boost/exception/get_error_info.hpp>
+#include <boost/exception/info.hpp>
 #include <boost/detail/lightweight_test.hpp>
+#include <string>
+
+typedef boost::error_info<struct my_tag,int> my_info;
+
+template <class T>
+struct
+may_throw_on_copy
+ {
+ may_throw_on_copy():
+ throw_(false)
+ {
+ }
+
+ may_throw_on_copy( may_throw_on_copy const & x ):
+ throw_(x.throw_)
+ {
+ if( throw_ )
+ throw T();
+ }
+
+ bool throw_;
+ };
+
+struct
+derives_nothing
+ {
+ int & count;
+
+ explicit
+ derives_nothing( int & count ):
+ count(count)
+ {
+ ++count;
+ }
+
+ derives_nothing( derives_nothing const & x ):
+ count(x.count)
+ {
+ ++count;
+ }
+
+ ~derives_nothing()
+ {
+ --count;
+ }
+ };
 
 struct
-test_exception:
+derives_std_exception:
     std::exception
     {
     };
 
+struct
+derives_std_boost_exception:
+ std::exception,
+ boost::exception
+ {
+ };
+
+struct
+derives_boost_exception:
+ boost::exception
+ {
+ };
+
+template <class T>
+void
+test_std_exception()
+ {
+ try
+ {
+ throw T();
+ }
+ catch(
+ ... )
+ {
+ boost::exception_ptr p = boost::current_exception();
+ BOOST_TEST(!(p==boost::exception_ptr()));
+ BOOST_TEST(p!=boost::exception_ptr());
+ BOOST_TEST(p);
+ try
+ {
+ rethrow_exception(p);
+ BOOST_TEST(false);
+ }
+ catch(
+ T & )
+ {
+ boost::exception_ptr p = boost::current_exception();
+ BOOST_TEST(!(p==boost::exception_ptr()));
+ BOOST_TEST(p!=boost::exception_ptr());
+ BOOST_TEST(p);
+ try
+ {
+ rethrow_exception(p);
+ BOOST_TEST(false);
+ }
+ catch(
+ T & )
+ {
+ }
+ catch(
+ ... )
+ {
+ BOOST_TEST(false);
+ }
+ }
+ catch(
+ ... )
+ {
+ BOOST_TEST(false);
+ }
+ }
+ }
+
+template <class T>
+void
+test_std_exception_what()
+ {
+ try
+ {
+ throw T("what");
+ }
+ catch(
+ ... )
+ {
+ boost::exception_ptr p = boost::current_exception();
+ BOOST_TEST(!(p==boost::exception_ptr()));
+ BOOST_TEST(p!=boost::exception_ptr());
+ BOOST_TEST(p);
+ try
+ {
+ rethrow_exception(p);
+ BOOST_TEST(false);
+ }
+ catch(
+ T & x )
+ {
+ BOOST_TEST(std::string("what")==x.what());
+ boost::exception_ptr p = boost::current_exception();
+ BOOST_TEST(!(p==boost::exception_ptr()));
+ BOOST_TEST(p!=boost::exception_ptr());
+ BOOST_TEST(p);
+ try
+ {
+ rethrow_exception(p);
+ BOOST_TEST(false);
+ }
+ catch(
+ T & x )
+ {
+ BOOST_TEST(std::string("what")==x.what());
+ }
+ catch(
+ ... )
+ {
+ BOOST_TEST(false);
+ }
+ }
+ catch(
+ ... )
+ {
+ BOOST_TEST(false);
+ }
+ }
+ }
+
+template <class Throw,class Catch>
+void
+test_throw_on_copy()
+ {
+ try
+ {
+ try
+ {
+ throw boost::enable_current_exception(may_throw_on_copy<Throw>());
+ }
+ catch(
+ may_throw_on_copy<Throw> & x )
+ {
+ x.throw_=true;
+ throw;
+ }
+ catch(
+ ... )
+ {
+ BOOST_TEST(false);
+ }
+ }
+ catch(
+ ... )
+ {
+ boost::exception_ptr p = boost::current_exception();
+ BOOST_TEST(!(p==boost::exception_ptr()));
+ BOOST_TEST(p!=boost::exception_ptr());
+ BOOST_TEST(p);
+ try
+ {
+ rethrow_exception(p);
+ BOOST_TEST(false);
+ }
+ catch(
+ Catch & )
+ {
+ boost::exception_ptr p = boost::current_exception();
+ BOOST_TEST(!(p==boost::exception_ptr()));
+ BOOST_TEST(p!=boost::exception_ptr());
+ BOOST_TEST(p);
+ try
+ {
+ boost::rethrow_exception(p);
+ BOOST_TEST(false);
+ }
+ catch(
+ Catch & )
+ {
+ }
+ catch(
+ ... )
+ {
+ BOOST_TEST(false);
+ }
+ }
+ catch(
+ ... )
+ {
+ BOOST_TEST(false);
+ }
+ }
+ }
+
 int
 main()
     {
+ BOOST_TEST( boost::exception_ptr()==boost::exception_ptr() );
+ BOOST_TEST( !(boost::exception_ptr()!=boost::exception_ptr()) );
+ BOOST_TEST( !boost::exception_ptr() );
+
+ int count=0;
+ try
+ {
+ throw boost::enable_current_exception(derives_nothing(count));
+ }
+ catch(
+ ... )
+ {
+ boost::exception_ptr p = boost::current_exception();
+ BOOST_TEST(!(p==boost::exception_ptr()));
+ BOOST_TEST(p!=boost::exception_ptr());
+ BOOST_TEST(p);
+ try
+ {
+ rethrow_exception(p);
+ BOOST_TEST(false);
+ }
+ catch(
+ derives_nothing & )
+ {
+ }
+ catch(
+ ... )
+ {
+ BOOST_TEST(false);
+ }
+ }
+ BOOST_TEST(count==0);
+
     try
         {
- throw boost::enable_current_exception(test_exception());
+ throw boost::enable_current_exception(derives_std_exception());
         }
     catch(
     ... )
         {
         boost::exception_ptr p = boost::current_exception();
+ BOOST_TEST(!(p==boost::exception_ptr()));
+ BOOST_TEST(p!=boost::exception_ptr());
+ BOOST_TEST(p);
         try
             {
             rethrow_exception(p);
             BOOST_TEST(false);
             }
         catch(
- test_exception & )
+ derives_std_exception & )
             {
+ boost::exception_ptr p = boost::current_exception();
+ BOOST_TEST(!(p==boost::exception_ptr()));
+ BOOST_TEST(p!=boost::exception_ptr());
+ BOOST_TEST(p);
+ try
+ {
+ rethrow_exception(p);
+ BOOST_TEST(false);
+ }
+ catch(
+ derives_std_exception & )
+ {
+ }
+ catch(
+ ... )
+ {
+ BOOST_TEST(false);
+ }
             }
         catch(
         ... )
@@ -38,5 +319,148 @@
             BOOST_TEST(false);
             }
         }
+
+ try
+ {
+ throw derives_std_exception();
+ }
+ catch(
+ ... )
+ {
+ boost::exception_ptr p = boost::current_exception();
+ BOOST_TEST(!(p==boost::exception_ptr()));
+ BOOST_TEST(p!=boost::exception_ptr());
+ BOOST_TEST(p);
+ try
+ {
+ rethrow_exception(p);
+ BOOST_TEST(false);
+ }
+ catch(
+ boost::unknown_exception & )
+ {
+ }
+ catch(
+ ... )
+ {
+ BOOST_TEST(false);
+ }
+ }
+
+ test_std_exception_what<std::invalid_argument>();
+ test_std_exception_what<std::out_of_range>();
+ test_std_exception_what<std::logic_error>();
+ test_std_exception<std::bad_alloc>();
+#ifndef BOOST_NO_TYPEID
+ test_std_exception<std::bad_cast>();
+ test_std_exception<std::bad_typeid>();
+#endif
+ test_std_exception<std::bad_exception>();
+
+ try
+ {
+ throw derives_std_boost_exception() << my_info(42);
+ }
+ catch(
+ ... )
+ {
+ boost::exception_ptr p = boost::current_exception();
+ BOOST_TEST(!(p==boost::exception_ptr()));
+ BOOST_TEST(p!=boost::exception_ptr());
+ BOOST_TEST(p);
+ try
+ {
+ rethrow_exception(p);
+ BOOST_TEST(false);
+ }
+ catch(
+ boost::unknown_exception & x )
+ {
+ BOOST_TEST(boost::get_error_info<my_info>(x));
+ if( boost::shared_ptr<int const> p=boost::get_error_info<my_info>(x) )
+ BOOST_TEST(*p==42);
+ boost::exception_ptr p = boost::current_exception();
+ BOOST_TEST(!(p==boost::exception_ptr()));
+ BOOST_TEST(p!=boost::exception_ptr());
+ BOOST_TEST(p);
+ try
+ {
+ rethrow_exception(p);
+ BOOST_TEST(false);
+ }
+ catch(
+ boost::unknown_exception & x )
+ {
+ BOOST_TEST(boost::get_error_info<my_info>(x));
+ if( boost::shared_ptr<int const> p=boost::get_error_info<my_info>(x) )
+ BOOST_TEST(*p==42);
+ }
+ catch(
+ ... )
+ {
+ BOOST_TEST(false);
+ }
+ }
+ catch(
+ ... )
+ {
+ BOOST_TEST(false);
+ }
+ }
+
+ try
+ {
+ throw derives_boost_exception() << my_info(42);
+ }
+ catch(
+ ... )
+ {
+ boost::exception_ptr p = boost::current_exception();
+ BOOST_TEST(!(p==boost::exception_ptr()));
+ BOOST_TEST(p!=boost::exception_ptr());
+ BOOST_TEST(p);
+ try
+ {
+ rethrow_exception(p);
+ BOOST_TEST(false);
+ }
+ catch(
+ boost::unknown_exception & x )
+ {
+ BOOST_TEST(boost::get_error_info<my_info>(x));
+ if( boost::shared_ptr<int const> p=boost::get_error_info<my_info>(x) )
+ BOOST_TEST(*p==42);
+ boost::exception_ptr p = boost::current_exception();
+ BOOST_TEST(!(p==boost::exception_ptr()));
+ BOOST_TEST(p!=boost::exception_ptr());
+ BOOST_TEST(p);
+ try
+ {
+ rethrow_exception(p);
+ BOOST_TEST(false);
+ }
+ catch(
+ boost::unknown_exception & x )
+ {
+ BOOST_TEST(boost::get_error_info<my_info>(x));
+ if( boost::shared_ptr<int const> p=boost::get_error_info<my_info>(x) )
+ BOOST_TEST(*p==42);
+ }
+ catch(
+ ... )
+ {
+ BOOST_TEST(false);
+ }
+ }
+ catch(
+ ... )
+ {
+ BOOST_TEST(false);
+ }
+ }
+
+ test_throw_on_copy<std::bad_alloc,std::bad_alloc>();
+ test_throw_on_copy<int,std::bad_exception>();
+
     return boost::report_errors();
     }

Modified: branches/release/libs/exception/test/diagnostic_information_hpp_test.cpp
==============================================================================
--- branches/release/libs/exception/test/diagnostic_information_hpp_test.cpp (original)
+++ branches/release/libs/exception/test/diagnostic_information_hpp_test.cpp 2008-09-19 16:29:26 EDT (Fri, 19 Sep 2008)
@@ -4,3 +4,4 @@
 //file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
 #include <boost/exception/diagnostic_information.hpp>
+#include <boost/exception/diagnostic_information.hpp>

Modified: branches/release/libs/exception/test/diagnostic_information_test.cpp
==============================================================================
--- branches/release/libs/exception/test/diagnostic_information_test.cpp (original)
+++ branches/release/libs/exception/test/diagnostic_information_test.cpp 2008-09-19 16:29:26 EDT (Fri, 19 Sep 2008)
@@ -7,68 +7,71 @@
 #include <boost/exception/info.hpp>
 #include <boost/detail/lightweight_test.hpp>
 
-typedef boost::error_info<struct tag,int> tag_int;
+typedef boost::error_info<struct test_tag,int> tag_int;
 
 struct
 error1:
- public std::exception
- {
- char const *
- what() const throw()
- {
- return "error1";
- }
- };
-
-struct
-error2:
     public std::exception,
     public boost::exception
     {
     char const *
     what() const throw()
         {
- return "error2";
+ return "error1";
         }
     };
 
 struct
-error3:
+error2:
     public boost::exception
     {
     };
 
-std::string
-get_diagnostic_information( std::exception const & x )
- {
- return boost::diagnostic_information(x);
- }
-
 int
 main()
     {
     using namespace boost;
+ try
         {
- error1 x;
+ error1 x; x << tag_int(42);
         BOOST_TEST(x.what()==std::string("error1"));
- std::string di=get_diagnostic_information(x);
+ throw x;
+ }
+ catch(
+ boost::exception & x )
+ {
+ std::string di=boost::diagnostic_information(x);
+#ifndef BOOST_NO_RTTI
         BOOST_TEST(di.find("type:")!=std::string::npos);
         BOOST_TEST(di.find("error1")!=std::string::npos);
+#endif
+ BOOST_TEST(di.find("test_tag")!=std::string::npos);
         }
+ catch(
+ ... )
         {
- error2 x; x << tag_int(42);
- BOOST_TEST(x.what()==std::string("error2"));
- std::string di=get_diagnostic_information(x);
- BOOST_TEST(di.find("type:")!=std::string::npos);
- BOOST_TEST(di.find("error2")!=std::string::npos);
+ BOOST_TEST(false);
         }
+ try
         {
- error3 x;
+ error2 x;
         x << tag_int(1);
- std::string w1 = x.diagnostic_information();
+ throw x;
+ }
+ catch(
+ boost::exception & x )
+ {
+ std::string w1 = diagnostic_information(x);
         x << tag_int(2);
- std::string w2 = x.diagnostic_information();
+ std::string w2 = diagnostic_information(x);
         BOOST_TEST( w1!=w2 );
+ BOOST_TEST(w1.find("test_tag")!=std::string::npos);
+ BOOST_TEST(w2.find("test_tag")!=std::string::npos);
+ }
+ catch(
+ ... )
+ {
+ BOOST_TEST(false);
         }
     return boost::report_errors();
     }

Deleted: branches/release/libs/exception/test/enable_current_exception_hpp_test.cpp
==============================================================================
--- branches/release/libs/exception/test/enable_current_exception_hpp_test.cpp 2008-09-19 16:29:26 EDT (Fri, 19 Sep 2008)
+++ (empty file)
@@ -1,6 +0,0 @@
-//Copyright (c) 2006-2008 Emil Dotchevski and Reverge Studios, Inc.
-
-//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)
-
-#include <boost/exception/enable_current_exception.hpp>

Deleted: branches/release/libs/exception/test/enable_error_info_hpp_test.cpp
==============================================================================
--- branches/release/libs/exception/test/enable_error_info_hpp_test.cpp 2008-09-19 16:29:26 EDT (Fri, 19 Sep 2008)
+++ (empty file)
@@ -1,6 +0,0 @@
-//Copyright (c) 2006-2008 Emil Dotchevski and Reverge Studios, Inc.
-
-//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)
-
-#include <boost/exception/enable_error_info.hpp>

Modified: branches/release/libs/exception/test/enable_error_info_test.cpp
==============================================================================
--- branches/release/libs/exception/test/enable_error_info_test.cpp (original)
+++ branches/release/libs/exception/test/enable_error_info_test.cpp 2008-09-19 16:29:26 EDT (Fri, 19 Sep 2008)
@@ -4,6 +4,7 @@
 //file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
 #include "helper1.hpp"
+#include <boost/exception/get_error_info.hpp>
 #include <boost/exception/info.hpp>
 #include <boost/exception/diagnostic_information.hpp>
 #include <boost/detail/lightweight_test.hpp>
@@ -44,7 +45,26 @@
     catch(
     std::exception & x )
         {
- BOOST_TEST( 42==*boost::get_error_info<test_int>(x) );
+#ifdef BOOST_NO_RTTI
+ try
+ {
+ throw;
+ }
+ catch(
+ boost::exception & x )
+ {
+#endif
+ BOOST_TEST( boost::get_error_info<test_int>(x) );
+ if( boost::shared_ptr<int const> p=boost::get_error_info<test_int>(x) )
+ BOOST_TEST( 42==*p );
+#ifdef BOOST_NO_RTTI
+ }
+ catch(
+ ... )
+ {
+ BOOST_TEST(false);
+ }
+#endif
         BOOST_TEST( std::string(x.what())==std::string("exception test length error") );
         }
     catch(

Modified: branches/release/libs/exception/test/errno_test.cpp
==============================================================================
--- branches/release/libs/exception/test/errno_test.cpp (original)
+++ branches/release/libs/exception/test/errno_test.cpp 2008-09-19 16:29:26 EDT (Fri, 19 Sep 2008)
@@ -3,6 +3,7 @@
 //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)
 
+#include <boost/exception/get_error_info.hpp>
 #include <boost/exception/info.hpp>
 #include <boost/detail/lightweight_test.hpp>
 #include <errno.h>

Modified: branches/release/libs/exception/test/error_info_hpp_test.cpp
==============================================================================
--- branches/release/libs/exception/test/error_info_hpp_test.cpp (original)
+++ branches/release/libs/exception/test/error_info_hpp_test.cpp 2008-09-19 16:29:26 EDT (Fri, 19 Sep 2008)
@@ -4,3 +4,4 @@
 //file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
 #include <boost/exception/error_info.hpp>
+#include <boost/exception/error_info.hpp>

Modified: branches/release/libs/exception/test/error_info_test.cpp
==============================================================================
--- branches/release/libs/exception/test/error_info_test.cpp (original)
+++ branches/release/libs/exception/test/error_info_test.cpp 2008-09-19 16:29:26 EDT (Fri, 19 Sep 2008)
@@ -3,18 +3,44 @@
 //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)
 
+#include <boost/exception/get_error_info.hpp>
 #include <boost/exception/info_tuple.hpp>
 #include <boost/detail/lightweight_test.hpp>
 
 struct throws_on_copy;
 struct non_printable { };
 
+struct
+user_data
+ {
+ int & count;
+
+ explicit
+ user_data( int & count ):
+ count(count)
+ {
+ ++count;
+ }
+
+ user_data( user_data const & x ):
+ count(x.count)
+ {
+ ++count;
+ }
+
+ ~user_data()
+ {
+ --count;
+ }
+ };
+
 typedef boost::error_info<struct tag_test_1,int> test_1;
 typedef boost::error_info<struct tag_test_2,unsigned int> test_2;
 typedef boost::error_info<struct tag_test_3,float> test_3;
 typedef boost::error_info<struct tag_test_4,throws_on_copy> test_4;
 typedef boost::error_info<struct tag_test_5,std::string> test_5;
 typedef boost::error_info<struct tag_test_6,non_printable> test_6;
+typedef boost::error_info<struct tag_user_data,user_data> test_7;
 
 struct
 test_exception:
@@ -38,12 +64,20 @@
 void
 basic_test()
     {
- test_exception x;
- x << test_1(1) << test_2(2u) << test_3(3.14159f);
- BOOST_TEST(*boost::get_error_info<test_1>(x)==1);
- BOOST_TEST(*boost::get_error_info<test_2>(x)==2u);
- BOOST_TEST(*boost::get_error_info<test_3>(x)==3.14159f);
- BOOST_TEST(!boost::get_error_info<test_4>(x));
+ try
+ {
+ test_exception x;
+ x << test_1(1) << test_2(2u) << test_3(3.14159f);
+ throw x;
+ }
+ catch(
+ test_exception & x )
+ {
+ BOOST_TEST(*boost::get_error_info<test_1>(x)==1);
+ BOOST_TEST(*boost::get_error_info<test_2>(x)==2u);
+ BOOST_TEST(*boost::get_error_info<test_3>(x)==3.14159f);
+ BOOST_TEST(!boost::get_error_info<test_4>(x));
+ }
     }
 
 void
@@ -58,8 +92,8 @@
     catch(
     test_exception & )
         {
+ BOOST_TEST(!boost::get_error_info<test_4>(x));
         }
- BOOST_TEST(!boost::get_error_info<test_4>(x));
     }
 
 void
@@ -107,7 +141,9 @@
     catch(
     boost::exception & x )
         {
+#ifndef BOOST_NO_RTTI
         BOOST_TEST( dynamic_cast<test_exception *>(&x) );
+#endif
         BOOST_TEST( !boost::get_error_info<test_1>(x) );
         }
     catch(
@@ -124,7 +160,9 @@
     catch(
     test_exception & x )
         {
- BOOST_TEST( dynamic_cast<boost::exception *>(&x) );
+#ifndef BOOST_NO_RTTI
+ BOOST_TEST( dynamic_cast<boost::exception const *>(&x)!=0 );
+#endif
         }
     catch(
     ... )
@@ -245,6 +283,29 @@
         }
     }
 
+void
+test_lifetime()
+ {
+ int count=0;
+ try
+ {
+ throw test_exception() << test_7(user_data(count));
+ BOOST_TEST(false);
+ }
+ catch(
+ boost::exception & x )
+ {
+ BOOST_TEST(count==1);
+ BOOST_TEST( boost::get_error_info<test_7>(x) );
+ }
+ catch(
+ ... )
+ {
+ BOOST_TEST(false);
+ }
+ BOOST_TEST(!count);
+ }
+
 int
 main()
     {
@@ -254,5 +315,6 @@
     test_basic_throw_catch();
     test_catch_add_info();
     test_add_tuple();
+ test_lifetime();
     return boost::report_errors();
     }

Modified: branches/release/libs/exception/test/exception_hpp_test.cpp
==============================================================================
--- branches/release/libs/exception/test/exception_hpp_test.cpp (original)
+++ branches/release/libs/exception/test/exception_hpp_test.cpp 2008-09-19 16:29:26 EDT (Fri, 19 Sep 2008)
@@ -4,3 +4,4 @@
 //file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
 #include <boost/exception.hpp>
+#include <boost/exception.hpp>

Modified: branches/release/libs/exception/test/exception_ptr_hpp_test.cpp
==============================================================================
--- branches/release/libs/exception/test/exception_ptr_hpp_test.cpp (original)
+++ branches/release/libs/exception/test/exception_ptr_hpp_test.cpp 2008-09-19 16:29:26 EDT (Fri, 19 Sep 2008)
@@ -4,3 +4,4 @@
 //file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
 #include <boost/exception_ptr.hpp>
+#include <boost/exception_ptr.hpp>

Added: branches/release/libs/exception/test/get_error_info_hpp_test.cpp
==============================================================================
--- (empty file)
+++ branches/release/libs/exception/test/get_error_info_hpp_test.cpp 2008-09-19 16:29:26 EDT (Fri, 19 Sep 2008)
@@ -0,0 +1,7 @@
+//Copyright (c) 2006-2008 Emil Dotchevski and Reverge Studios, Inc.
+
+//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)
+
+#include <boost/exception/get_error_info.hpp>
+#include <boost/exception/get_error_info.hpp>

Modified: branches/release/libs/exception/test/helper1.cpp
==============================================================================
--- branches/release/libs/exception/test/helper1.cpp (original)
+++ branches/release/libs/exception/test/helper1.cpp 2008-09-19 16:29:26 EDT (Fri, 19 Sep 2008)
@@ -3,7 +3,7 @@
 //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)
 
-#include <boost/exception/enable_error_info.hpp>
+#include <boost/exception/exception.hpp>
 #include <stdexcept>
 #include <string>
 

Modified: branches/release/libs/exception/test/info_hpp_test.cpp
==============================================================================
--- branches/release/libs/exception/test/info_hpp_test.cpp (original)
+++ branches/release/libs/exception/test/info_hpp_test.cpp 2008-09-19 16:29:26 EDT (Fri, 19 Sep 2008)
@@ -4,3 +4,4 @@
 //file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
 #include <boost/exception/info.hpp>
+#include <boost/exception/info.hpp>

Modified: branches/release/libs/exception/test/info_tuple_hpp_test.cpp
==============================================================================
--- branches/release/libs/exception/test/info_tuple_hpp_test.cpp (original)
+++ branches/release/libs/exception/test/info_tuple_hpp_test.cpp 2008-09-19 16:29:26 EDT (Fri, 19 Sep 2008)
@@ -4,3 +4,4 @@
 //file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
 #include <boost/exception/info_tuple.hpp>
+#include <boost/exception/info_tuple.hpp>

Added: branches/release/libs/exception/test/refcount_ptr_test.cpp
==============================================================================
--- (empty file)
+++ branches/release/libs/exception/test/refcount_ptr_test.cpp 2008-09-19 16:29:26 EDT (Fri, 19 Sep 2008)
@@ -0,0 +1,103 @@
+//Copyright (c) 2006-2008 Emil Dotchevski and Reverge Studios, Inc.
+
+//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)
+
+#include <boost/exception/exception.hpp>
+#include <boost/detail/lightweight_test.hpp>
+
+struct
+test_type
+ {
+ test_type( int & count ):
+ count_(count)
+ {
+ BOOST_TEST(count_==42);
+ count_=0;
+ }
+
+ ~test_type()
+ {
+ BOOST_TEST(!count_);
+ count_=42;
+ }
+
+ void
+ add_ref()
+ {
+ ++count_;
+ }
+
+ void
+ release()
+ {
+ if( !--count_ )
+ delete this;
+ }
+
+ private:
+
+ test_type( test_type const & );
+ test_type & operator=( test_type const & );
+
+ int & count_;
+ };
+
+int
+main()
+ {
+ using boost::exception_detail::refcount_ptr;
+
+ {
+ refcount_ptr<test_type> x;
+ BOOST_TEST(!x.get());
+ }
+
+ {
+ int count=42;
+ test_type * a=new test_type(count);
+ BOOST_TEST(!count);
+ {
+ refcount_ptr<test_type> p;
+ BOOST_TEST(0==count);
+ p.adopt(a);
+ BOOST_TEST(p.get()==a);
+ BOOST_TEST(1==count);
+ {
+ refcount_ptr<test_type> q;
+ q.adopt(p.get());
+ BOOST_TEST(q.get()==a);
+ BOOST_TEST(2==count);
+ {
+ refcount_ptr<test_type> t(p);
+ BOOST_TEST(t.get()==a);
+ BOOST_TEST(3==count);
+ {
+ refcount_ptr<test_type> n;
+ n=t;
+ BOOST_TEST(n.get()==a);
+ BOOST_TEST(4==count);
+ int cb=42;
+ test_type * b=new test_type(cb);
+ BOOST_TEST(0==cb);
+ n.adopt(b);
+ BOOST_TEST(1==cb);
+ BOOST_TEST(n.get()==b);
+ BOOST_TEST(3==count);
+ n.adopt(0);
+ BOOST_TEST(42==cb);
+ }
+ BOOST_TEST(t.get()==a);
+ BOOST_TEST(3==count);
+ }
+ BOOST_TEST(q.get()==a);
+ BOOST_TEST(2==count);
+ }
+ BOOST_TEST(p.get()==a);
+ BOOST_TEST(1==count);
+ }
+ BOOST_TEST(42==count);
+ }
+
+ return boost::report_errors();
+ }

Modified: branches/release/libs/exception/test/throw_exception_test.cpp
==============================================================================
--- branches/release/libs/exception/test/throw_exception_test.cpp (original)
+++ branches/release/libs/exception/test/throw_exception_test.cpp 2008-09-19 16:29:26 EDT (Fri, 19 Sep 2008)
@@ -4,12 +4,73 @@
 //file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
 #include "helper2.hpp"
+#include <boost/exception/get_error_info.hpp>
 #include <boost/exception/info.hpp>
 #include <boost/exception_ptr.hpp>
 #include <boost/detail/lightweight_test.hpp>
 
 typedef boost::error_info<struct tag_test_int,int> test_data;
 
+struct
+exception1:
+ std::exception
+ {
+ };
+
+struct
+exception2:
+ std::exception,
+ boost::exception
+ {
+ };
+
+void
+boost_throw_exception_test()
+ {
+ try
+ {
+ BOOST_THROW_EXCEPTION(exception1());
+ BOOST_TEST(false);
+ }
+ catch(
+ boost::exception & x )
+ {
+ boost::shared_ptr<char const * const> file=boost::get_error_info<boost::throw_function>(x);
+ boost::shared_ptr<char const * const> function=boost::get_error_info<boost::throw_file>(x);
+ boost::shared_ptr<int const> line=boost::get_error_info<boost::throw_line>(x);
+ BOOST_TEST( file && *file );
+ BOOST_TEST( function && *function );
+ BOOST_TEST( line && *line==32 );
+ }
+ catch(
+ ... )
+ {
+ BOOST_TEST(false);
+ }
+ try
+ {
+ BOOST_THROW_EXCEPTION(exception2() << test_data(42));
+ BOOST_TEST(false);
+ }
+ catch(
+ boost::exception & x )
+ {
+ boost::shared_ptr<char const * const> file=boost::get_error_info<boost::throw_function>(x);
+ boost::shared_ptr<char const * const> function=boost::get_error_info<boost::throw_file>(x);
+ boost::shared_ptr<int const> line=boost::get_error_info<boost::throw_line>(x);
+ boost::shared_ptr<int const> data=boost::get_error_info<test_data>(x);
+ BOOST_TEST( file && *file );
+ BOOST_TEST( function && *function );
+ BOOST_TEST( line && *line==52 );
+ BOOST_TEST( data && *data==42 );
+ }
+ catch(
+ ... )
+ {
+ BOOST_TEST(false);
+ }
+ }
+
 void
 throw_fwd( void (*thrower)(int) )
     {
@@ -46,9 +107,26 @@
         catch(
         T & y )
             {
- BOOST_TEST(boost::get_error_info<test_data>(y));
- if( boost::shared_ptr<int const> d=boost::get_error_info<test_data>(y) )
- BOOST_TEST(*d==42);
+#ifdef BOOST_NO_RTTI
+ try
+ {
+ throw;
+ }
+ catch(
+ boost::exception & y )
+ {
+#endif
+ BOOST_TEST(boost::get_error_info<test_data>(y));
+ if( boost::shared_ptr<int const> d=boost::get_error_info<test_data>(y) )
+ BOOST_TEST(*d==42);
+#ifdef BOOST_NO_RTTI
+ }
+ catch(
+ ... )
+ {
+ BOOST_TEST(false);
+ }
+#endif
             BOOST_TEST(y.x_==42);
             }
         catch(
@@ -62,6 +140,7 @@
 int
 main()
     {
+ boost_throw_exception_test();
     tester<boost::exception_test::derives_boost_exception>();
     tester<boost::exception_test::derives_boost_exception_virtually>();
     tester<boost::exception_test::derives_std_exception>();

Modified: branches/release/libs/exception/test/to_string_hpp_test.cpp
==============================================================================
--- branches/release/libs/exception/test/to_string_hpp_test.cpp (original)
+++ branches/release/libs/exception/test/to_string_hpp_test.cpp 2008-09-19 16:29:26 EDT (Fri, 19 Sep 2008)
@@ -4,3 +4,4 @@
 //file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
 #include <boost/exception/to_string.hpp>
+#include <boost/exception/to_string.hpp>

Modified: branches/release/libs/exception/test/to_string_stub_hpp_test.cpp
==============================================================================
--- branches/release/libs/exception/test/to_string_stub_hpp_test.cpp (original)
+++ branches/release/libs/exception/test/to_string_stub_hpp_test.cpp 2008-09-19 16:29:26 EDT (Fri, 19 Sep 2008)
@@ -4,3 +4,4 @@
 //file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
 #include <boost/exception/to_string_stub.hpp>
+#include <boost/exception/to_string_stub.hpp>

Modified: branches/release/libs/exception/test/unknown_exception_test.cpp
==============================================================================
--- branches/release/libs/exception/test/unknown_exception_test.cpp (original)
+++ branches/release/libs/exception/test/unknown_exception_test.cpp 2008-09-19 16:29:26 EDT (Fri, 19 Sep 2008)
@@ -4,6 +4,7 @@
 //file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
 #include <boost/exception_ptr.hpp>
+#include <boost/exception/get_error_info.hpp>
 #include <boost/exception/info.hpp>
 #include <boost/detail/lightweight_test.hpp>
 


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