|
Boost-Commit : |
From: eric_at_[hidden]
Date: 2008-04-16 01:50:45
Author: eric_niebler
Date: 2008-04-16 01:50:41 EDT (Wed, 16 Apr 2008)
New Revision: 44451
URL: http://svn.boost.org/trac/boost/changeset/44451
Log:
Merged revisions 44427,44431-44439,44441-44446,44448-44450 via svnmerge from
https://svn.boost.org/svn/boost/trunk
........
r44427 | schoepflin | 2008-04-15 00:58:48 -0700 (Tue, 15 Apr 2008) | 1 line
The thread start routine needs C linkage. This fixes a compilation error on Tru64/cxx.
........
r44431 | johnmaddock | 2008-04-15 09:32:28 -0700 (Tue, 15 Apr 2008) | 1 line
Fix IBM AIX compiler errors.
........
r44432 | johnmaddock | 2008-04-15 09:36:21 -0700 (Tue, 15 Apr 2008) | 1 line
Attempt fix for Intel on Darwin failures.
........
r44433 | johnmaddock | 2008-04-15 10:10:18 -0700 (Tue, 15 Apr 2008) | 2 lines
Fix error rates on Mac OS X.
Fix long double support for pow_test.cpp.
........
r44434 | johnmaddock | 2008-04-15 10:30:03 -0700 (Tue, 15 Apr 2008) | 1 line
Add some explicit casts from the FP_* macros to type int, so that comparisons actually work when building with GCC, this is GCC bug report: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20589.
........
r44435 | johnmaddock | 2008-04-15 10:35:07 -0700 (Tue, 15 Apr 2008) | 1 line
Try and fix one remaining zeta test failure.
........
r44436 | jurko | 2008-04-15 10:44:31 -0700 (Tue, 15 Apr 2008) | 1 line
Minor stylistic comment changes.
........
r44437 | johnmaddock | 2008-04-15 10:50:11 -0700 (Tue, 15 Apr 2008) | 1 line
Add explicit type cast to fix GCC-C++0X mode error.
........
r44438 | emildotchevski | 2008-04-15 11:24:46 -0700 (Tue, 15 Apr 2008) | 1 line
N2179 compliance (pending documentation update)
........
r44439 | emildotchevski | 2008-04-15 11:47:16 -0700 (Tue, 15 Apr 2008) | 1 line
introduced boost/exception_ptr.hpp, using Boost Exception
........
r44441 | pdimov | 2008-04-15 12:02:13 -0700 (Tue, 15 Apr 2008) | 1 line
Disabled sync use for hppa.
........
r44442 | emildotchevski | 2008-04-15 14:13:24 -0700 (Tue, 15 Apr 2008) | 1 line
Boost Exception header compilation tests added.
........
r44443 | emildotchevski | 2008-04-15 14:14:23 -0700 (Tue, 15 Apr 2008) | 1 line
Boost Exception documentation source
........
r44444 | emildotchevski | 2008-04-15 14:56:34 -0700 (Tue, 15 Apr 2008) | 1 line
Boost Exception documentation update
........
r44445 | emildotchevski | 2008-04-15 15:23:19 -0700 (Tue, 15 Apr 2008) | 1 line
Boost Exception documentation fix
........
r44446 | emildotchevski | 2008-04-15 15:25:11 -0700 (Tue, 15 Apr 2008) | 2 lines
Boost Exception documentation fix
........
r44448 | fmhess | 2008-04-15 17:06:29 -0700 (Tue, 15 Apr 2008) | 5 lines
Avoid needless overhead of wrapping owner's deleter in deleter_wrapper if
shared_from_this has not been called yet, as Peter suggested
earlier.
........
r44449 | djowel | 2008-04-15 20:07:06 -0700 (Tue, 15 Apr 2008) | 1 line
Andreas patch
........
r44450 | djowel | 2008-04-15 20:07:11 -0700 (Tue, 15 Apr 2008) | 1 line
Andreas indexing suite patch
........
Added:
branches/proto/v4/boost/exception/enable_current_exception.hpp
- copied unchanged from r44450, /trunk/boost/exception/enable_current_exception.hpp
branches/proto/v4/boost/exception_ptr.hpp
- copied unchanged from r44450, /trunk/boost/exception_ptr.hpp
branches/proto/v4/libs/exception/doc/adding_data_at_throw.html
- copied unchanged from r44450, /trunk/libs/exception/doc/adding_data_at_throw.html
branches/proto/v4/libs/exception/doc/adding_data_later.html
- copied unchanged from r44450, /trunk/libs/exception/doc/adding_data_later.html
branches/proto/v4/libs/exception/doc/cloning_and_rethrowing.html
- copied unchanged from r44450, /trunk/libs/exception/doc/cloning_and_rethrowing.html
branches/proto/v4/libs/exception/doc/copy_exception.html
- copied unchanged from r44450, /trunk/libs/exception/doc/copy_exception.html
branches/proto/v4/libs/exception/doc/current_exception.html
- copied unchanged from r44450, /trunk/libs/exception/doc/current_exception.html
branches/proto/v4/libs/exception/doc/enable_current_exception.html
- copied unchanged from r44450, /trunk/libs/exception/doc/enable_current_exception.html
branches/proto/v4/libs/exception/doc/grouping_data.html
- copied unchanged from r44450, /trunk/libs/exception/doc/grouping_data.html
branches/proto/v4/libs/exception/doc/source/
- copied from r44450, /trunk/libs/exception/doc/source/
branches/proto/v4/libs/exception/doc/source/boost-exception.reno
- copied unchanged from r44450, /trunk/libs/exception/doc/source/boost-exception.reno
branches/proto/v4/libs/exception/doc/source/html_prefix.txt
- copied unchanged from r44450, /trunk/libs/exception/doc/source/html_prefix.txt
branches/proto/v4/libs/exception/doc/source/html_suffix.txt
- copied unchanged from r44450, /trunk/libs/exception/doc/source/html_suffix.txt
branches/proto/v4/libs/exception/doc/using_enable_cloning.html
- copied unchanged from r44450, /trunk/libs/exception/doc/using_enable_cloning.html
branches/proto/v4/libs/exception/test/copy_exception_test.cpp
- copied unchanged from r44450, /trunk/libs/exception/test/copy_exception_test.cpp
branches/proto/v4/libs/exception/test/enable_current_exception_hpp_test.cpp
- copied unchanged from r44450, /trunk/libs/exception/test/enable_current_exception_hpp_test.cpp
branches/proto/v4/libs/exception/test/enable_error_info_hpp_test.cpp
- copied unchanged from r44450, /trunk/libs/exception/test/enable_error_info_hpp_test.cpp
branches/proto/v4/libs/exception/test/error_info_hpp_test.cpp
- copied unchanged from r44450, /trunk/libs/exception/test/error_info_hpp_test.cpp
branches/proto/v4/libs/exception/test/exception_hpp_test.cpp
- copied unchanged from r44450, /trunk/libs/exception/test/exception_hpp_test.cpp
branches/proto/v4/libs/exception/test/info_hpp_test.cpp
- copied unchanged from r44450, /trunk/libs/exception/test/info_hpp_test.cpp
branches/proto/v4/libs/exception/test/info_tuple_hpp_test.cpp
- copied unchanged from r44450, /trunk/libs/exception/test/info_tuple_hpp_test.cpp
branches/proto/v4/libs/exception/test/to_string_hpp_test.cpp
- copied unchanged from r44450, /trunk/libs/exception/test/to_string_hpp_test.cpp
branches/proto/v4/libs/exception/test/to_string_stub_hpp_test.cpp
- copied unchanged from r44450, /trunk/libs/exception/test/to_string_stub_hpp_test.cpp
Removed:
branches/proto/v4/boost/exception/cloning.hpp
branches/proto/v4/boost/exception/enable_exception_cloning.hpp
Properties modified:
branches/proto/v4/ (props changed)
Text files modified:
branches/proto/v4/boost/detail/sp_counted_base.hpp | 5 --
branches/proto/v4/boost/enable_shared_from_this.hpp | 22 +++++++----
branches/proto/v4/boost/exception.hpp | 2
branches/proto/v4/boost/math/special_functions/fpclassify.hpp | 10 ++--
branches/proto/v4/boost/math/special_functions/gamma.hpp | 6 +-
branches/proto/v4/boost/python/suite/indexing/container_utils.hpp | 13 ++++--
branches/proto/v4/boost/regex/pending/object_cache.hpp | 2
branches/proto/v4/libs/config/test/boost_has_pthreads.ipp | 2
branches/proto/v4/libs/exception/doc/boost-exception.html | 74 +++++++++++++++++++++++----------------
branches/proto/v4/libs/exception/doc/cloning.html | 24 ++++++------
branches/proto/v4/libs/exception/doc/exception.html | 5 +-
branches/proto/v4/libs/exception/doc/exception_cloning_hpp.html | 7 ++-
branches/proto/v4/libs/exception/doc/exception_enable_exception_cloning_hpp.html | 6 +-
branches/proto/v4/libs/exception/doc/exception_hpp.html | 4 +-
branches/proto/v4/libs/exception/doc/exception_ptr.html | 12 +++--
branches/proto/v4/libs/exception/doc/name_idx.html | 9 ++--
branches/proto/v4/libs/exception/doc/rethrow_exception.html | 2
branches/proto/v4/libs/exception/doc/throw_exception.html | 4 +-
branches/proto/v4/libs/exception/doc/transporting_data.html | 2
branches/proto/v4/libs/exception/doc/unknown_exception.html | 9 ++--
branches/proto/v4/libs/exception/example/cloning_1.cpp | 5 +-
branches/proto/v4/libs/exception/example/cloning_2.cpp | 8 ++--
branches/proto/v4/libs/exception/test/Jamfile.v2 | 11 +++++
branches/proto/v4/libs/exception/test/cloning_test.cpp | 8 ++--
branches/proto/v4/libs/exception/test/throw_exception_test.cpp | 11 +----
branches/proto/v4/libs/exception/test/unknown_exception_test.cpp | 37 +++++++++++++++++--
branches/proto/v4/libs/math/test/Jamfile.v2 | 3 +
branches/proto/v4/libs/math/test/pow_test.cpp | 2 +
branches/proto/v4/libs/math/test/test_expint.cpp | 38 ++++++++++++++++++++
branches/proto/v4/libs/math/test/test_nc_chi_squared.cpp | 7 +++
branches/proto/v4/libs/math/test/test_zeta.cpp | 8 +++-
branches/proto/v4/libs/python/test/vector_indexing_suite.py | 13 +++++++
branches/proto/v4/tools/build/v2/tools/common.jam | 4 +-
33 files changed, 247 insertions(+), 128 deletions(-)
Modified: branches/proto/v4/boost/detail/sp_counted_base.hpp
==============================================================================
--- branches/proto/v4/boost/detail/sp_counted_base.hpp (original)
+++ branches/proto/v4/boost/detail/sp_counted_base.hpp 2008-04-16 01:50:41 EDT (Wed, 16 Apr 2008)
@@ -46,10 +46,7 @@
#elif defined( __GNUC__ ) && ( defined( __powerpc__ ) || defined( __ppc__ ) || defined( __ppc ) )
# include <boost/detail/sp_counted_base_gcc_ppc.hpp>
-#elif defined(__GNUC__) && defined( __arm__ )
-# include <boost/detail/sp_counted_base_spin.hpp>
-
-#elif defined(__GNUC__) && ( __GNUC__ * 100 + __GNUC_MINOR__ >= 401 )
+#elif defined(__GNUC__) && ( __GNUC__ * 100 + __GNUC_MINOR__ >= 401 ) && !defined( __arm__ ) && !defined( __hppa )
# include <boost/detail/sp_counted_base_sync.hpp>
#elif defined(__GNUC__) && ( defined( __sparcv8 ) || defined( __sparcv9 ) )
Modified: branches/proto/v4/boost/enable_shared_from_this.hpp
==============================================================================
--- branches/proto/v4/boost/enable_shared_from_this.hpp (original)
+++ branches/proto/v4/boost/enable_shared_from_this.hpp 2008-04-16 01:50:41 EDT (Wed, 16 Apr 2008)
@@ -93,17 +93,21 @@
template<typename U>
void _internal_accept_owner(shared_ptr<U> &owner) const
{
- init_internal_shared_once();
-
if( !_owned )
{
- detail::sp_deleter_wrapper * pd = get_deleter<detail::sp_deleter_wrapper>(_internal_shared_this);
- BOOST_ASSERT( pd != 0 );
- pd->set_deleter(owner);
-
- owner.reset( _internal_shared_this, owner.get() );
- _internal_shared_this.reset();
-
+ if( !_internal_shared_this )
+ {
+ T * p = dynamic_cast<T *>(const_cast<enable_shared_from_this*>(this));
+ _internal_weak_this = shared_ptr<T>(owner, p);
+ }else
+ {
+ detail::sp_deleter_wrapper * pd = get_deleter<detail::sp_deleter_wrapper>(_internal_shared_this);
+ BOOST_ASSERT( pd != 0 );
+ pd->set_deleter(owner);
+
+ owner.reset( _internal_shared_this, owner.get() );
+ _internal_shared_this.reset();
+ }
_owned = true;
}
}
Modified: branches/proto/v4/boost/exception.hpp
==============================================================================
--- branches/proto/v4/boost/exception.hpp (original)
+++ branches/proto/v4/boost/exception.hpp 2008-04-16 01:50:41 EDT (Wed, 16 Apr 2008)
@@ -7,7 +7,7 @@
#define UUID_1D94A7C6054E11DB9804B622A1EF5492
#include <boost/exception/info_tuple.hpp>
-#include <boost/exception/cloning.hpp>
+#include <boost/exception_ptr.hpp>
#include <boost/throw_exception.hpp>
#endif
Deleted: branches/proto/v4/boost/exception/cloning.hpp
==============================================================================
--- branches/proto/v4/boost/exception/cloning.hpp 2008-04-16 01:50:41 EDT (Wed, 16 Apr 2008)
+++ (empty file)
@@ -1,59 +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)
-
-#ifndef UUID_FA5836A2CADA11DC8CD47C8555D89593
-#define UUID_FA5836A2CADA11DC8CD47C8555D89593
-
-#include <boost/exception/enable_exception_cloning.hpp>
-#include <boost/exception/exception.hpp>
-#include <boost/exception/detail/cloning_base.hpp>
-#include <exception>
-
-namespace
-boost
- {
- class
- unknown_exception:
- public exception,
- public std::exception
- {
- public:
-
- explicit
- unknown_exception()
- {
- }
-
- explicit
- unknown_exception( boost::exception const & x ):
- boost::exception(x)
- {
- }
- };
-
- typedef intrusive_ptr<exception_detail::clone_base const> exception_ptr;
-
- template <class T>
- exception_ptr
- clone_exception( T const & e )
- {
- if( boost::exception_detail::cloning_base const * cb = dynamic_cast<boost::exception_detail::cloning_base const *>(&e) )
- if( exception_detail::clone_base const * c = cb->clone() )
- return exception_ptr(c);
- if( boost::exception const * be = dynamic_cast<boost::exception const *>(&e) )
- return exception_ptr(exception_detail::make_clone(unknown_exception(*be)));
- else
- return exception_ptr(exception_detail::make_clone(unknown_exception()));
- }
-
- inline
- void
- rethrow_exception( exception_ptr const & p )
- {
- p->rethrow();
- }
- }
-
-#endif
Deleted: branches/proto/v4/boost/exception/enable_exception_cloning.hpp
==============================================================================
--- branches/proto/v4/boost/exception/enable_exception_cloning.hpp 2008-04-16 01:50:41 EDT (Wed, 16 Apr 2008)
+++ (empty file)
@@ -1,148 +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)
-
-#ifndef UUID_78CC85B2914F11DC8F47B48E55D89593
-#define UUID_78CC85B2914F11DC8F47B48E55D89593
-
-#include <boost/exception/detail/counted_base.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)
- {
- }
-
- 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)
- {
- }
-
- 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>
- 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>
- exception_detail::clone_impl<T>
- enable_exception_cloning( T const & x )
- {
- return exception_detail::clone_impl<T>(x);
- }
- }
-
-#endif
Modified: branches/proto/v4/boost/math/special_functions/fpclassify.hpp
==============================================================================
--- branches/proto/v4/boost/math/special_functions/fpclassify.hpp (original)
+++ branches/proto/v4/boost/math/special_functions/fpclassify.hpp 2008-04-16 01:50:41 EDT (Wed, 16 Apr 2008)
@@ -73,7 +73,7 @@
#ifdef isnan
return isnan(t);
#else // BOOST_HAS_FPCLASSIFY
- return (BOOST_FPCLASSIFY_PREFIX fpclassify(t) == FP_NAN);
+ return (BOOST_FPCLASSIFY_PREFIX fpclassify(t) == (int)FP_NAN);
#endif
}
@@ -200,19 +200,19 @@
inline bool isfinite BOOST_NO_MACRO_EXPAND(T z)
{
int t = (::boost::math::fpclassify)(z);
- return (t != FP_NAN) && (t != FP_INFINITE);
+ return (t != (int)FP_NAN) && (t != (int)FP_INFINITE);
}
template <class T>
inline bool isinf BOOST_NO_MACRO_EXPAND(T t)
{
- return (::boost::math::fpclassify)(t) == FP_INFINITE;
+ return (::boost::math::fpclassify)(t) == (int)FP_INFINITE;
}
template <class T>
inline bool isnan BOOST_NO_MACRO_EXPAND(T t)
{
- return (::boost::math::fpclassify)(t) == FP_NAN;
+ return (::boost::math::fpclassify)(t) == (int)FP_NAN;
}
#ifdef isnan
template <> inline bool isnan BOOST_NO_MACRO_EXPAND<float>(float t){ return ::boost::math_detail::is_nan_helper(t, boost::true_type()); }
@@ -232,7 +232,7 @@
template <class T>
inline bool isnormal BOOST_NO_MACRO_EXPAND(T t)
{
- return (::boost::math::fpclassify)(t) == FP_NORMAL;
+ return (::boost::math::fpclassify)(t) == (int)FP_NORMAL;
}
} // namespace math
Modified: branches/proto/v4/boost/math/special_functions/gamma.hpp
==============================================================================
--- branches/proto/v4/boost/math/special_functions/gamma.hpp (original)
+++ branches/proto/v4/boost/math/special_functions/gamma.hpp 2008-04-16 01:50:41 EDT (Wed, 16 Apr 2008)
@@ -152,7 +152,7 @@
result = -boost::math::constants::pi<T>() / result;
if(result == 0)
return policies::raise_underflow_error<T>(function, "Result of tgamma is too small to represent.", pol);
- if((boost::math::fpclassify)(result) == FP_SUBNORMAL)
+ if((boost::math::fpclassify)(result) == (int)FP_SUBNORMAL)
return policies::raise_denorm_error<T>(function, "Result of tgamma is denormalized.", result, pol);
return result;
}
@@ -352,7 +352,7 @@
result = -boost::math::constants::pi<T>() / result;
if(result == 0)
return policies::raise_underflow_error<T>(function, "Result of tgamma is too small to represent.", pol);
- if((boost::math::fpclassify)(result) == FP_SUBNORMAL)
+ if((boost::math::fpclassify)(result) == (int)FP_SUBNORMAL)
return policies::raise_denorm_error<T>(function, "Result of tgamma is denormalized.", result, pol);
return result;
}
@@ -584,7 +584,7 @@
// This error handling isn't very good: it happens after the fact
// rather than before it...
//
- if((boost::math::fpclassify)(prefix) == FP_INFINITE)
+ if((boost::math::fpclassify)(prefix) == (int)FP_INFINITE)
policies::raise_overflow_error<T>("boost::math::detail::full_igamma_prefix<%1%>(%1%, %1%)", "Result of incomplete gamma function is too large to represent.", pol);
return prefix;
Modified: branches/proto/v4/boost/python/suite/indexing/container_utils.hpp
==============================================================================
--- branches/proto/v4/boost/python/suite/indexing/container_utils.hpp (original)
+++ branches/proto/v4/boost/python/suite/indexing/container_utils.hpp 2008-04-16 01:50:41 EDT (Wed, 16 Apr 2008)
@@ -7,9 +7,12 @@
#ifndef PY_CONTAINER_UTILS_JDG20038_HPP
# define PY_CONTAINER_UTILS_JDG20038_HPP
+# include <utility>
+# include <boost/foreach.hpp>
# include <boost/python/object.hpp>
# include <boost/python/handle.hpp>
# include <boost/python/extract.hpp>
+# include <boost/python/stl_iterator.hpp>
namespace boost { namespace python { namespace container_utils {
@@ -19,11 +22,13 @@
{
typedef typename Container::value_type data_type;
- // l must be a list or some container
-
- for (int i = 0; i < l.attr("__len__")(); i++)
+ // l must be iterable
+ BOOST_FOREACH(object elem,
+ std::make_pair(
+ boost::python::stl_input_iterator<object>(l),
+ boost::python::stl_input_iterator<object>()
+ ))
{
- object elem(l[i]);
extract<data_type const&> x(elem);
// try if elem is an exact data_type type
if (x.check())
Modified: branches/proto/v4/boost/regex/pending/object_cache.hpp
==============================================================================
--- branches/proto/v4/boost/regex/pending/object_cache.hpp (original)
+++ branches/proto/v4/boost/regex/pending/object_cache.hpp 2008-04-16 01:50:41 EDT (Wed, 16 Apr 2008)
@@ -119,7 +119,7 @@
//
// Add it to the list, and index it:
//
- s_data.cont.push_back(value_type(result, 0));
+ s_data.cont.push_back(value_type(result, static_cast<Key const*>(0)));
s_data.index.insert(std::make_pair(k, --(s_data.cont.end())));
s_data.cont.back().second = &(s_data.index.find(k)->first);
map_size_type s = s_data.index.size();
Modified: branches/proto/v4/libs/config/test/boost_has_pthreads.ipp
==============================================================================
--- branches/proto/v4/libs/config/test/boost_has_pthreads.ipp (original)
+++ branches/proto/v4/libs/config/test/boost_has_pthreads.ipp 2008-04-16 01:50:41 EDT (Wed, 16 Apr 2008)
@@ -14,7 +14,7 @@
namespace boost_has_pthreads{
-void* thread_proc(void* arg)
+extern "C" void* thread_proc(void* arg)
{
return arg;
}
Modified: branches/proto/v4/libs/exception/doc/boost-exception.html
==============================================================================
--- branches/proto/v4/libs/exception/doc/boost-exception.html (original)
+++ branches/proto/v4/libs/exception/doc/boost-exception.html 2008-04-16 01:50:41 EDT (Wed, 16 Apr 2008)
@@ -22,7 +22,7 @@
<p>The ability to add data to exception objects after they have been passed to <tt>throw</tt> is important, because often some of the information needed to handle an exception is unavailable in the context where the failure is detected. </p>
<p>Boost Exception also supports <span class="RenoLink">cloning</span> of exception objects, implemented non-intrusively and automatically by the <tt>boost::<span class="RenoLink">throw_exception</span>()</tt> function.</p>
<h4>Note:</h4>
-<p>Boost Exception was accepted as a Boost library on November 7, 2007; however it has not yet been part of an official Boost release.</p>
+<p>Boost Exception was accepted as a Boost library on November 7 2007, however it has not yet been part of an official Boost release. Current version can be downloaded from <span class="RenoLink"> Boost SVN</span>.</p>
<h2>Contents</h2>
<div><ol><li>Tutorial<div><ol><li><span class="RenoLink">Tutorial: Transporting of Arbitrary Data to the Catch Site</span></li>
<li><span class="RenoLink">Tutorial: Integrating Boost Exception in Existing Exception Class Hierarchies</span></li>
@@ -39,28 +39,28 @@
</ol></div>
</li>
<li>Transporting of Exceptions between Threads<div><ol><li><tt><span class="RenoLink">exception_ptr</span></tt></li>
-<li><tt><span class="RenoLink">enable_exception_cloning</span>()</tt></li>
-<li><tt><span class="RenoLink">clone_exception</span>()</tt></li>
+<li><tt><span class="RenoLink">enable_current_exception</span>()</tt></li>
+<li><tt><span class="RenoLink">current_exception</span>()</tt></li>
+<li><tt><span class="RenoLink">copy_exception</span>()</tt></li>
<li><tt><span class="RenoLink">rethrow_exception</span>()</tt></li>
<li><tt><span class="RenoLink">unknown_exception</span></tt></li>
</ol></div>
</li>
<li><tt><span class="RenoLink">throw_exception</span>()</tt></li>
<li>Headers<div><ol><li><tt><span class="RenoLink">boost/exception.hpp</span></tt></li>
-<li><tt><span class="RenoLink">boost/exception/enable_exception_cloning.hpp</span></tt></li>
+<li><tt><span class="RenoLink">boost/exception_ptr.hpp</span></tt></li>
+<li><tt><span class="RenoLink">boost/throw_exception.hpp</span></tt></li>
+<li><tt><span class="RenoLink">boost/exception/enable_current_exception.hpp</span></tt></li>
<li><tt><span class="RenoLink">boost/exception/enable_error_info.hpp</span></tt></li>
<li><tt><span class="RenoLink">boost/exception/info.hpp</span></tt></li>
<li><tt><span class="RenoLink">boost/exception/info_tuple.hpp</span></tt></li>
<li><tt><span class="RenoLink">boost/exception/error_info.hpp</span></tt></li>
<li><tt><span class="RenoLink">boost/exception/exception.hpp</span></tt></li>
-<li><tt><span class="RenoLink">boost/throw_exception.hpp</span></tt></li>
</ol></div>
</li>
</ol></div>
</li>
<li><span class="RenoLink">Index</span></li>
-<li><span class="RenoLink">Download</span></li>
-<li><span class="RenoLink">Browse source code</span></li>
</ol></div>
<h2>Synopsis</h2>
<p><tt>#include <<span class="RenoLink">boost/exception.hpp</span>></tt></p>
@@ -128,10 +128,11 @@
<span class="RenoIncludeSPAN"> typedef ---unspecified--- <span class="RenoLink">exception_ptr</span>;</span>
<span class="RenoIncludeSPAN"> template <class T>
- ---unspecified--- <span class="RenoLink">enable_exception_cloning</span>( T const & e );</span>
+ ---unspecified--- <span class="RenoLink">enable_current_exception</span>( T const & e );</span>
+<span class="RenoIncludeSPAN"> <span class="RenoLink">exception_ptr</span> <span class="RenoLink">current_exception</span>();</span>
<span class="RenoIncludeSPAN"> template <class T>
- <span class="RenoLink">exception_ptr</span> <span class="RenoLink">clone_exception</span>( T const & e );</span>
+ <span class="RenoLink">exception_ptr</span> <span class="RenoLink">copy_exception</span>( T const & e );</span>
<span class="RenoIncludeSPAN"> void <span class="RenoLink">rethrow_exception</span>( <span class="RenoLink">exception_ptr</span> const & ep );</span>
<span class="RenoIncludeSPAN"> class
@@ -299,22 +300,24 @@
</div><p>This macro is designed to be used with <tt><span class="RenoLink">operator<<</span>()</tt> when throwing a <tt>boost::<span class="RenoLink">exception</span></tt>, to store information about the location of the throw statement. It can be chained with other <tt><span class="RenoLink">error_info</span></tt>s in a single throw expression.</p>
</div><h2>Transporting of Exceptions between Threads</h2>
<div class="RenoIncludeDIV"><h3>exception_ptr</h3>
-<div class="RenoIncludeDIV"><p><tt>#include <<span class="RenoLink">boost/exception/cloning.hpp</span>></tt></p>
+<div class="RenoIncludeDIV"><p><tt>#include <<span class="RenoLink">boost/exception_ptr.hpp</span>></tt></p>
<pre>namespace
boost
{
<span class="RenoIncludeSPAN"> typedef ---unspecified--- <span class="RenoLink">exception_ptr</span>;</span>
}</pre>
-</div><p>The <tt><span class="RenoLink">exception_ptr</span></tt> type can be used to refer to a copy of a <tt>boost::<span class="RenoLink">exception</span></tt> object. It is Default Constructible, Copy Constructible, Assignable and Equality Comparable; <tt><span class="RenoLink">exception_ptr</span></tt>'s operations do not throw.</p>
+</div><p>The <tt><span class="RenoLink">exception_ptr</span></tt> type can be used to refer to a copy of an exception object. It is Default Constructible, Copy Constructible, Assignable and Equality Comparable; <tt><span class="RenoLink">exception_ptr</span></tt>'s operations do not throw.</p>
<p>Two instances of <tt><span class="RenoLink">exception_ptr</span></tt> are equivalent and compare equal if and only if they refer to the same exception.</p>
<p>The default constructor of <tt><span class="RenoLink">exception_ptr</span></tt> produces the null value of the type. The null value is equivalent only to itself.</p>
-</div><div class="RenoIncludeDIV"><h3>enable_exception_cloning()</h3>
-<div class="RenoIncludeDIV"><p><tt>#include <<span class="RenoLink">boost/exception/enable_exception_cloning.hpp</span>></tt></p>
+<h4>Note:</h4>
+<p><tt><span class="RenoLink">exception_ptr</span></tt> objects are returned by <tt><span class="RenoLink">current_exception</span>()</tt> and <tt><span class="RenoLink">copy_exception</span>()</tt>.</p>
+</div><div class="RenoIncludeDIV"><h3>enable_current_exception()</h3>
+<div class="RenoIncludeDIV"><p><tt>#include <<span class="RenoLink">boost/exception/enable_current_exception.hpp</span>></tt></p>
<pre>namespace
boost
{
<span class="RenoIncludeSPAN"> template <class T>
- ---unspecified--- <span class="RenoLink">enable_exception_cloning</span>( T const & e );</span>
+ ---unspecified--- <span class="RenoLink">enable_current_exception</span>( T const & e );</span>
}</pre>
</div><h4>Requirements:</h4>
<p><tt>T</tt> must have an accessible no-throw copy constructor</p>
@@ -329,29 +332,39 @@
};
....
-throw boost::<span class="RenoLink">enable_exception_cloning</span>(my_exception());</pre>
-<p>Unless <tt><span class="RenoLink">enable_exception_cloning</span>()</tt> is called at the time an exception object is used in a throw-expression, any attempt to copy it using <tt><span class="RenoLink">clone_exception</span>()</tt> returns an <tt><span class="RenoLink">exception_ptr</span></tt> which refers to an instance of <tt><span class="RenoLink">unknown_exception</span></tt>.</p>
+throw boost::<span class="RenoLink">enable_current_exception</span>(my_exception());</pre>
+<p>Unless <tt><span class="RenoLink">enable_current_exception</span>()</tt> is called at the time an exception object is used in a throw-expression, any attempt to copy it using <tt><span class="RenoLink">current_exception</span>()</tt> returns an <tt><span class="RenoLink">exception_ptr</span></tt> which refers to an instance of <tt><span class="RenoLink">unknown_exception</span></tt>.</p>
<h4>Note:</h4>
<p>Instead of using the <tt>throw</tt> keyword directly, it is preferable to call <tt>boost::<span class="RenoLink">throw_exception</span>()</tt>. This is guaranteed to throw an exception that derives from <tt>boost::<span class="RenoLink">exception</span></tt> and supports cloning.</p>
-</div><div class="RenoIncludeDIV"><h3>clone_exception()</h3>
-<div class="RenoIncludeDIV"><p><tt>#include <<span class="RenoLink">boost/exception/cloning.hpp</span>></tt></p>
+</div><div class="RenoIncludeDIV"><h3>current_exception()</h3>
+<div class="RenoIncludeDIV"><p><tt>#include <<span class="RenoLink">boost/exception_ptr.hpp</span>></tt></p>
<pre>namespace
boost
{
-<span class="RenoIncludeSPAN"> template <class T>
- <span class="RenoLink">exception_ptr</span> <span class="RenoLink">clone_exception</span>( T const & e );</span>
+<span class="RenoIncludeSPAN"> <span class="RenoLink">exception_ptr</span> <span class="RenoLink">current_exception</span>();</span>
}</pre>
</div><h4>Requirements:</h4>
-<p><tt>T</tt> must be polymorphic.</p>
+<p>The <tt><span class="RenoLink">current_exception</span>()</tt> function must not be called outside of a <tt>catch</tt> block.</p>
<h4>Returns:</h4>
-<div><ul><li> If <tt><span class="RenoLink">enable_exception_cloning</span>()</tt> was not used at the time the exception object was passed to <tt>throw</tt>, the returned <tt><span class="RenoLink">exception_ptr</span></tt> refers to an instance of <tt><span class="RenoLink">unknown_exception</span></tt>. In this case, if the original exception object derives from <tt>boost::<span class="RenoLink">exception</span></tt>, then the <tt>boost::<span class="RenoLink">exception</span></tt> sub-object of the <tt><span class="RenoLink">unknown_exception</span></tt> object is initialized by the <tt>boost::<span class="RenoLink">exception</span></tt> copy constructor;</li>
-<li> Otherwise, if the attempt to clone the exception results in a <tt>std::bad_alloc</tt> exception, the returned <tt><span class="RenoLink">exception_ptr</span></tt> refers to an instance of <tt>std::bad_alloc</tt>;</li>
-<li> Otherwise, the returned <tt><span class="RenoLink">exception_ptr</span></tt> refers to a copy of <tt>e</tt>.</li>
+<div><ul><li> An <tt><span class="RenoLink">exception_ptr</span></tt> that refers to the currently handled exception or a copy of the currently handled exception.</li>
+<li> If the function needs to allocate memory and the attempt fails, it returns an <tt><span class="RenoLink">exception_ptr</span></tt> that refers to an instance of <tt>std::bad_alloc</tt>.</li>
</ul></div>
-<h4>Note:</h4>
-<p>It is unspecified whether the return values of two successive calls to <tt><span class="RenoLink">clone_exception</span>()</tt> refer to the same exception object.</p>
+<h4>Notes:</h4>
+<div><ul><li> It is unspecified whether the return values of two successive calls to <tt><span class="RenoLink">current_exception</span>()</tt> refer to the same exception object.</li>
+<li> Correct implementation of <tt><span class="RenoLink">current_exception</span>()</tt> may require compiler support, unless <tt><span class="RenoLink">enable_current_exception</span>()</tt> is used at the time the currently handled exception object was passed to <tt>throw</tt>. If <tt><span class="RenoLink">enable_current_exception</span>()</tt> is not used, and if the compiler does not provide the necessary support, then <tt><span class="RenoLink">current_exception</span>()</tt> may return an <tt><span class="RenoLink">exception_ptr</span></tt> that refers to an instance of <tt><span class="RenoLink">unknown_exception</span></tt>. In this case, if the original exception object derives from <tt>boost::<span class="RenoLink">exception</span></tt>, t
hen the <tt>boost::<span class="RenoLink">exception</span></tt> sub-object of the <tt><span class="RenoLink">unknown_exception</span></tt> object is initialized by the <tt>boost::<span class="RenoLink">exception</span></tt> copy constructor.</li>
+</ul></div>
+</div><div class="RenoIncludeDIV"><h3>copy_exception()</h3>
+<div class="RenoIncludeDIV"><p><tt>#include <<span class="RenoLink">boost/exception_ptr.hpp</span>></tt></p>
+<pre>namespace
+boost
+ {
+<span class="RenoIncludeSPAN"> template <class T>
+ <span class="RenoLink">exception_ptr</span> <span class="RenoLink">copy_exception</span>( T const & e );</span>
+ }</pre>
+</div><h4>Effects:</h4>
+<p>As if <tt>try { throw e; } catch( ... ) { return <span class="RenoLink">current_exception</span>(); }</tt></p>
</div><div class="RenoIncludeDIV"><h3>rethrow_exception()</h3>
-<div class="RenoIncludeDIV"><p><tt>#include <<span class="RenoLink">boost/exception/cloning.hpp</span>></tt></p>
+<div class="RenoIncludeDIV"><p><tt>#include <<span class="RenoLink">boost/exception_ptr.hpp</span>></tt></p>
<pre>namespace
boost
{
@@ -362,7 +375,7 @@
<h4>Throws:</h4>
<p>The exception to which <tt>ep</tt> refers.</p>
</div><div class="RenoIncludeDIV"><h3>unknown_exception</h3>
-<div class="RenoIncludeDIV"><p><tt>#include <<span class="RenoLink">boost/exception/cloning.hpp</span>></tt></p>
+<div class="RenoIncludeDIV"><p><tt>#include <<span class="RenoLink">boost/exception_ptr.hpp</span>></tt></p>
<pre>namespace
boost
{
@@ -374,8 +387,7 @@
---unspecified---
};</span>
}</pre>
-</div><p>This type is used by the <span class="RenoLink">cloning</span> support in Boost Exception.</p>
-<p>To allow an exception to be cloned, <tt><span class="RenoLink">enable_exception_cloning</span>()</tt> must be used at the time the exception object is passed to <tt>throw</tt>. Otherwise, calling <tt><span class="RenoLink">clone_exception</span>()</tt> returns an <tt><span class="RenoLink">exception_ptr</span></tt> which refers to an instance of <tt><span class="RenoLink">unknown_exception</span></tt>.</p>
+</div><p>This type is used by the <span class="RenoLink">cloning</span> support in Boost Exception. Please see <tt><span class="RenoLink">current_exception</span>()</tt>.</p>
</div><h2>Throwing Exceptions</h2>
<div class="RenoIncludeDIV"><h3>throw_exception()</h3>
<div class="RenoIncludeDIV"><p><tt>#include <<span class="RenoLink">boost/throw_exception.hpp</span>></tt></p>
@@ -390,7 +402,7 @@
#endif</span>
}</pre>
</div><h4>Effects:</h4>
-<div><ul><li> If <tt>BOOST_NO_EXCEPTIONS</tt> is not defined, <tt>boost::<span class="RenoLink">throw_exception</span>(e)</tt> is equivalent to <tt>throw boost::<span class="RenoLink">enable_exception_cloning</span>(boost::<span class="RenoLink">enable_error_info</span>(e))</tt>, unless <tt>BOOST_EXCEPTION_DISABLE</tt> is defined, in which case <tt>boost::<span class="RenoLink">throw_exception</span>(e)</tt> is equivalent to <tt>throw e;</tt></li>
+<div><ul><li> If <tt>BOOST_NO_EXCEPTIONS</tt> is not defined, <tt>boost::<span class="RenoLink">throw_exception</span>(e)</tt> is equivalent to <tt>throw boost::<span class="RenoLink">enable_current_exception</span>(boost::<span class="RenoLink">enable_error_info</span>(e))</tt>, unless <tt>BOOST_EXCEPTION_DISABLE</tt> is defined, in which case <tt>boost::<span class="RenoLink">throw_exception</span>(e)</tt> is equivalent to <tt>throw e;</tt></li>
<li> If <tt>BOOST_NO_EXCEPTIONS</tt> is defined, the function is left undefined, and the user is expected to supply an appropriate definition. Callers of <tt>throw_exception</tt> are allowed to assume that the function never returns; therefore, if the user-defined <tt>throw_exception</tt> returns, the behavior is undefined.</li>
</ul></div>
</div><div id="footer">
Modified: branches/proto/v4/libs/exception/doc/cloning.html
==============================================================================
--- branches/proto/v4/libs/exception/doc/cloning.html (original)
+++ branches/proto/v4/libs/exception/doc/cloning.html 2008-04-16 01:50:41 EDT (Wed, 16 Apr 2008)
@@ -17,12 +17,12 @@
<h1>Boost Exception</h1>
</div>
<div class="RenoIncludeDIV"><h2>Transporting of Exceptions between Threads</h2>
-<p>Boost Exception supports transporting of exception objects between threads through cloning. This system is similar to <span class="RenoLink">N2179</span>, but because Boost Exception can not rely on language support, the use of <tt><span class="RenoLink">enable_exception_cloning</span>()</tt> at the time of the throw is required in order to use cloning.</p>
+<p>Boost Exception supports transporting of exception objects between threads through cloning. This system is similar to <span class="RenoLink">N2179</span>, but because Boost Exception can not rely on language support, the use of <tt><span class="RenoLink">enable_current_exception</span>()</tt> at the time of the throw is required in order to use cloning.</p>
<h4>Note:</h4>
<p>All exceptions emitted by the familiar function <tt>boost::<span class="RenoLink">throw_exception</span>()</tt> are guaranteed to derive from <tt>boost::<span class="RenoLink">exception</span></tt> and to support cloning.</p>
-<div class="RenoIncludeDIV"><h3>Using enable_exception_cloning() at the Time of the Throw</h3>
+<div class="RenoIncludeDIV"><h3>Using enable_current_exception() at the Time of the Throw</h3>
<p>Here is how cloning can be enabled in a throw-expression (15.1):</p>
-<pre>#include <<span class="RenoLink">boost/exception/enable_exception_cloning.hpp</span>>
+<pre>#include <<span class="RenoLink">boost/exception/enable_current_exception.hpp</span>>
#include <<span class="RenoLink">boost/exception/info.hpp</span>>
#include <stdio.h>
#include <errno.h>
@@ -35,12 +35,12 @@
file_read( FILE * f, void * buffer, size_t size )
{
if( size!=fread(buffer,1,size,f) )
- throw boost::<span class="RenoLink">enable_exception_cloning</span>(file_read_error()) <<
+ throw boost::<span class="RenoLink">enable_current_exception</span>(file_read_error()) <<
errno_info(errno);
}</pre>
</div><div class="RenoIncludeDIV"><h3>Cloning and Re-throwing an Exception</h3>
-<p>When you catch a <tt>boost::<span class="RenoLink">exception</span></tt>, you can call <tt><span class="RenoLink">clone_exception</span>()</tt> to get an <tt><span class="RenoLink">exception_ptr</span></tt> object:</p>
-<pre>#include <<span class="RenoLink">boost/exception/cloning.hpp</span>>
+<p>When you catch a <tt>boost::<span class="RenoLink">exception</span></tt>, you can call <tt><span class="RenoLink">current_exception</span>()</tt> to get an <tt><span class="RenoLink">exception_ptr</span></tt> object:</p>
+<pre>#include <<span class="RenoLink">boost/exception_ptr.hpp</span>>
#include <boost/thread.hpp>
#include <boost/bind.hpp>
@@ -55,12 +55,12 @@
error = boost::<span class="RenoLink">exception_ptr</span>();
}
catch(
- boost::<span class="RenoLink">exception</span> & e )
+ ... )
{
- error = boost::<span class="RenoLink">clone_exception</span>(e);
+ error = boost::<span class="RenoLink">current_exception</span>();
}
}</pre>
-<p>In the above example, note that <tt><span class="RenoLink">clone_exception</span>()</tt> captures the original type of the exception object, even though <tt>e</tt> refers to the base type <tt>boost::<span class="RenoLink">exception</span></tt>. This original type can be thrown again using the <tt><span class="RenoLink">rethrow_exception</span>()</tt> function:</p>
+<p>In the above example, note that <tt><span class="RenoLink">current_exception</span>()</tt> captures the original type of the exception object. The exception can be thrown again using the <tt><span class="RenoLink">rethrow_exception</span>()</tt> function:</p>
<pre>// ...continued
void
@@ -72,11 +72,11 @@
if( error )
boost::<span class="RenoLink">rethrow_exception</span>(error);
}</pre>
-<p><tt><span class="RenoLink">Clone_exception</span>()</tt> could fail to copy the original exception object in the following cases:</p>
+<p><tt><span class="RenoLink">current_exception</span>()</tt> could fail to copy the original exception object in the following cases:</p>
<div><ul><li> if there is not enough memory, in which case the returned <tt><span class="RenoLink">exception_ptr</span></tt> points to an instance of <tt>std::bad_alloc</tt>, or</li>
-<li> if <tt><span class="RenoLink">enable_exception_cloning</span>()</tt> was not used in the throw-expression passed to the original <tt>throw</tt> statement, in which case the returned <tt><span class="RenoLink">exception_ptr</span></tt> points to an instance of <tt><span class="RenoLink">unknown_exception</span></tt>.</li>
+<li> if <tt><span class="RenoLink">enable_current_exception</span>()</tt> was not used in the throw-expression passed to the original <tt>throw</tt> statement and the current implementation does not have the necessary compiler-specific support to copy the exception automatically, in which case the returned <tt><span class="RenoLink">exception_ptr</span></tt> points to an instance of <tt><span class="RenoLink">unknown_exception</span></tt>.</li>
</ul></div>
-<p>Regardless, the use of <tt><span class="RenoLink">clone_exception</span>()</tt> and <tt><span class="RenoLink">rethrow_exception</span>()</tt> in the above examples is well-formed.</p>
+<p>Regardless, the use of <tt><span class="RenoLink">current_exception</span>()</tt> and <tt><span class="RenoLink">rethrow_exception</span>()</tt> in the above examples is well-formed.</p>
</div></div><h3>See also:</h3>
<div class="RenoPageList"><a href="boost-exception.html">Boost Exception<br/>
</a><a href="unknown_exception.html">unknown_exception<br/>
Modified: branches/proto/v4/libs/exception/doc/exception.html
==============================================================================
--- branches/proto/v4/libs/exception/doc/exception.html (original)
+++ branches/proto/v4/libs/exception/doc/exception.html 2008-04-16 01:50:41 EDT (Wed, 16 Apr 2008)
@@ -68,11 +68,10 @@
</div></div></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="clone_exception.html">clone_exception<br/>
+</a><a href="current_exception.html">current_exception<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="enable_exception_cloning.html">enable_exception_cloning<br/>
</a><a href="error_info.html">error_info<br/>
-</a><a href="exception_ptr.html">exception_ptr<br/>
</a><a href="get_error_info.html">get_error_info<br/>
</a><a href="operator_shl_exception.html">operator<</exception<br/>
</a><a href="using_enable_error_info.html">Tutorial: Integrating Boost Exception in Existing Exception Class Hierarchies<br/>
Modified: branches/proto/v4/libs/exception/doc/exception_cloning_hpp.html
==============================================================================
--- branches/proto/v4/libs/exception/doc/exception_cloning_hpp.html (original)
+++ branches/proto/v4/libs/exception/doc/exception_cloning_hpp.html 2008-04-16 01:50:41 EDT (Wed, 16 Apr 2008)
@@ -3,7 +3,7 @@
<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/cloning.hpp</title>
+ <title>boost/exception_ptr.hpp</title>
<link href='reno.css' type='text/css' rel='stylesheet'/>
</head>
<body>
@@ -16,9 +16,10 @@
</div>
<h1>Boost Exception</h1>
</div>
-<h3>boost/exception/cloning.hpp</h3>
+<h3>boost/exception_ptr.hpp</h3>
<p>This header file contains the following definitions/declarations:</p>
-<div class="RenoPageList"><a href="clone_exception.html">clone_exception<br/>
+<div class="RenoPageList"><a href="copy_exception.html">copy_exception<br/>
+</a><a href="current_exception.html">current_exception<br/>
</a><a href="exception_ptr.html">exception_ptr<br/>
</a><a href="rethrow_exception.html">rethrow_exception<br/>
</a><a href="unknown_exception.html">unknown_exception<br/>
Modified: branches/proto/v4/libs/exception/doc/exception_enable_exception_cloning_hpp.html
==============================================================================
--- branches/proto/v4/libs/exception/doc/exception_enable_exception_cloning_hpp.html (original)
+++ branches/proto/v4/libs/exception/doc/exception_enable_exception_cloning_hpp.html 2008-04-16 01:50:41 EDT (Wed, 16 Apr 2008)
@@ -3,7 +3,7 @@
<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_exception_cloning.hpp</title>
+ <title>boost/exception/enable_current_exception.hpp</title>
<link href='reno.css' type='text/css' rel='stylesheet'/>
</head>
<body>
@@ -16,9 +16,9 @@
</div>
<h1>Boost Exception</h1>
</div>
-<h3>boost/exception/enable_exception_cloning.hpp</h3>
+<h3>boost/exception/enable_current_exception.hpp</h3>
<p>This header file contains the following definitions/declarations:</p>
-<div class="RenoPageList"><a href="enable_exception_cloning.html">enable_exception_cloning<br/>
+<div class="RenoPageList"><a href="enable_current_exception.html">enable_current_exception<br/>
</a></div>
<div id="footer">
<p> </p>
Modified: branches/proto/v4/libs/exception/doc/exception_hpp.html
==============================================================================
--- branches/proto/v4/libs/exception/doc/exception_hpp.html (original)
+++ branches/proto/v4/libs/exception/doc/exception_hpp.html 2008-04-16 01:50:41 EDT (Wed, 16 Apr 2008)
@@ -19,13 +19,13 @@
<h3>boost/exception.hpp</h3>
<p>This header file includes all other header files of Boost Exception:</p>
<div class="RenoPageList"><a href="exception_hpp.html">boost/exception.hpp<br/>
-</a><a href="exception_cloning_hpp.html">boost/exception/cloning.hpp<br/>
+</a><a href="exception_enable_exception_cloning_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_enable_exception_cloning_hpp.html">boost/exception/enable_exception_cloning.hpp<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="exception_error_info_group_hpp.html">boost/exception/info_tuple.hpp<br/>
+</a><a href="exception_cloning_hpp.html">boost/exception_ptr.hpp<br/>
</a><a href="throw_exception_hpp.html">boost/throw_exception.hpp<br/>
</a></div>
<div id="footer">
Modified: branches/proto/v4/libs/exception/doc/exception_ptr.html
==============================================================================
--- branches/proto/v4/libs/exception/doc/exception_ptr.html (original)
+++ branches/proto/v4/libs/exception/doc/exception_ptr.html 2008-04-16 01:50:41 EDT (Wed, 16 Apr 2008)
@@ -17,21 +17,23 @@
<h1>Boost Exception</h1>
</div>
<div class="RenoIncludeDIV"><h3>exception_ptr</h3>
-<div class="RenoIncludeDIV"><p><tt>#include <<span class="RenoLink">boost/exception/cloning.hpp</span>></tt></p>
+<div class="RenoIncludeDIV"><p><tt>#include <<span class="RenoLink">boost/exception_ptr.hpp</span>></tt></p>
<pre>namespace
boost
{
<span class="RenoIncludeSPAN"> typedef ---unspecified--- <span class="RenoLink">exception_ptr</span>;</span>
}</pre>
-</div><p>The <tt><span class="RenoLink">exception_ptr</span></tt> type can be used to refer to a copy of a <tt>boost::<span class="RenoLink">exception</span></tt> object. It is Default Constructible, Copy Constructible, Assignable and Equality Comparable; <tt><span class="RenoLink">exception_ptr</span></tt>'s operations do not throw.</p>
+</div><p>The <tt><span class="RenoLink">exception_ptr</span></tt> type can be used to refer to a copy of an exception object. It is Default Constructible, Copy Constructible, Assignable and Equality Comparable; <tt><span class="RenoLink">exception_ptr</span></tt>'s operations do not throw.</p>
<p>Two instances of <tt><span class="RenoLink">exception_ptr</span></tt> are equivalent and compare equal if and only if they refer to the same exception.</p>
<p>The default constructor of <tt><span class="RenoLink">exception_ptr</span></tt> produces the null value of the type. The null value is equivalent only to itself.</p>
+<h4>Note:</h4>
+<p><tt><span class="RenoLink">exception_ptr</span></tt> objects are returned by <tt><span class="RenoLink">current_exception</span>()</tt> and <tt><span class="RenoLink">copy_exception</span>()</tt>.</p>
</div><h3>See also:</h3>
<div class="RenoPageList"><a href="boost-exception.html">Boost Exception<br/>
-</a><a href="clone_exception.html">clone_exception<br/>
-</a><a href="enable_exception_cloning.html">enable_exception_cloning<br/>
+</a><a href="copy_exception.html">copy_exception<br/>
+</a><a href="current_exception.html">current_exception<br/>
+</a><a href="enable_current_exception.html">enable_current_exception<br/>
</a><a href="rethrow_exception.html">rethrow_exception<br/>
-</a><a href="unknown_exception.html">unknown_exception<br/>
</a></div>
<div id="footer">
<p> </p>
Modified: branches/proto/v4/libs/exception/doc/name_idx.html
==============================================================================
--- branches/proto/v4/libs/exception/doc/name_idx.html (original)
+++ branches/proto/v4/libs/exception/doc/name_idx.html 2008-04-16 01:50:41 EDT (Wed, 16 Apr 2008)
@@ -21,19 +21,20 @@
<p>BOOST_ERROR_INFO</p>
<h3>b</h3>
<p>boost/exception.hpp</p>
-<p>boost/exception/cloning.hpp</p>
+<p>boost/exception/enable_current_exception.hpp</p>
<p>boost/exception/enable_error_info.hpp</p>
-<p>boost/exception/enable_exception_cloning.hpp</p>
<p>boost/exception/error_info.hpp</p>
<p>boost/exception/exception.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>clone_exception</p>
+<p>copy_exception</p>
+<p>current_exception</p>
<h3>e</h3>
+<p>enable_current_exception</p>
<p>enable_error_info</p>
-<p>enable_exception_cloning</p>
<p>error_info</p>
<p>exception</p>
<p>exception::exception</p>
Modified: branches/proto/v4/libs/exception/doc/rethrow_exception.html
==============================================================================
--- branches/proto/v4/libs/exception/doc/rethrow_exception.html (original)
+++ branches/proto/v4/libs/exception/doc/rethrow_exception.html 2008-04-16 01:50:41 EDT (Wed, 16 Apr 2008)
@@ -17,7 +17,7 @@
<h1>Boost Exception</h1>
</div>
<div class="RenoIncludeDIV"><h3>rethrow_exception()</h3>
-<div class="RenoIncludeDIV"><p><tt>#include <<span class="RenoLink">boost/exception/cloning.hpp</span>></tt></p>
+<div class="RenoIncludeDIV"><p><tt>#include <<span class="RenoLink">boost/exception_ptr.hpp</span>></tt></p>
<pre>namespace
boost
{
Modified: branches/proto/v4/libs/exception/doc/throw_exception.html
==============================================================================
--- branches/proto/v4/libs/exception/doc/throw_exception.html (original)
+++ branches/proto/v4/libs/exception/doc/throw_exception.html 2008-04-16 01:50:41 EDT (Wed, 16 Apr 2008)
@@ -29,12 +29,12 @@
#endif</span>
}</pre>
</div><h4>Effects:</h4>
-<div><ul><li> If <tt>BOOST_NO_EXCEPTIONS</tt> is not defined, <tt>boost::<span class="RenoLink">throw_exception</span>(e)</tt> is equivalent to <tt>throw boost::<span class="RenoLink">enable_exception_cloning</span>(boost::<span class="RenoLink">enable_error_info</span>(e))</tt>, unless <tt>BOOST_EXCEPTION_DISABLE</tt> is defined, in which case <tt>boost::<span class="RenoLink">throw_exception</span>(e)</tt> is equivalent to <tt>throw e;</tt></li>
+<div><ul><li> If <tt>BOOST_NO_EXCEPTIONS</tt> is not defined, <tt>boost::<span class="RenoLink">throw_exception</span>(e)</tt> is equivalent to <tt>throw boost::<span class="RenoLink">enable_current_exception</span>(boost::<span class="RenoLink">enable_error_info</span>(e))</tt>, unless <tt>BOOST_EXCEPTION_DISABLE</tt> is defined, in which case <tt>boost::<span class="RenoLink">throw_exception</span>(e)</tt> is equivalent to <tt>throw e;</tt></li>
<li> If <tt>BOOST_NO_EXCEPTIONS</tt> is defined, the function is left undefined, and the user is expected to supply an appropriate definition. Callers of <tt>throw_exception</tt> are allowed to assume that the function never returns; therefore, if the user-defined <tt>throw_exception</tt> returns, the behavior is undefined.</li>
</ul></div>
</div><h3>See also:</h3>
<div class="RenoPageList"><a href="boost-exception.html">Boost Exception<br/>
-</a><a href="enable_exception_cloning.html">enable_exception_cloning<br/>
+</a><a href="enable_current_exception.html">enable_current_exception<br/>
</a><a href="cloning.html">Tutorial: Transporting of Exceptions between Threads<br/>
</a></div>
<div id="footer">
Modified: branches/proto/v4/libs/exception/doc/transporting_data.html
==============================================================================
--- branches/proto/v4/libs/exception/doc/transporting_data.html (original)
+++ branches/proto/v4/libs/exception/doc/transporting_data.html 2008-04-16 01:50:41 EDT (Wed, 16 Apr 2008)
@@ -141,7 +141,7 @@
#include <boost/shared_ptr.hpp>
#include <stdio.h>
#include <string>
-#include <errno>
+#include <errno.h>
typedef boost::<span class="RenoLink">error_info</span><struct tag_file_name,std::string> file_name_info;
typedef boost::<span class="RenoLink">error_info</span><struct tag_function,char const *> function_info;
Modified: branches/proto/v4/libs/exception/doc/unknown_exception.html
==============================================================================
--- branches/proto/v4/libs/exception/doc/unknown_exception.html (original)
+++ branches/proto/v4/libs/exception/doc/unknown_exception.html 2008-04-16 01:50:41 EDT (Wed, 16 Apr 2008)
@@ -17,7 +17,7 @@
<h1>Boost Exception</h1>
</div>
<div class="RenoIncludeDIV"><h3>unknown_exception</h3>
-<div class="RenoIncludeDIV"><p><tt>#include <<span class="RenoLink">boost/exception/cloning.hpp</span>></tt></p>
+<div class="RenoIncludeDIV"><p><tt>#include <<span class="RenoLink">boost/exception_ptr.hpp</span>></tt></p>
<pre>namespace
boost
{
@@ -29,12 +29,11 @@
---unspecified---
};</span>
}</pre>
-</div><p>This type is used by the <span class="RenoLink">cloning</span> support in Boost Exception.</p>
-<p>To allow an exception to be cloned, <tt><span class="RenoLink">enable_exception_cloning</span>()</tt> must be used at the time the exception object is passed to <tt>throw</tt>. Otherwise, calling <tt><span class="RenoLink">clone_exception</span>()</tt> returns an <tt><span class="RenoLink">exception_ptr</span></tt> which refers to an instance of <tt><span class="RenoLink">unknown_exception</span></tt>.</p>
+</div><p>This type is used by the <span class="RenoLink">cloning</span> support in Boost Exception. Please see <tt><span class="RenoLink">current_exception</span>()</tt>.</p>
</div><h3>See also:</h3>
<div class="RenoPageList"><a href="boost-exception.html">Boost Exception<br/>
-</a><a href="clone_exception.html">clone_exception<br/>
-</a><a href="enable_exception_cloning.html">enable_exception_cloning<br/>
+</a><a href="current_exception.html">current_exception<br/>
+</a><a href="enable_current_exception.html">enable_current_exception<br/>
</a></div>
<div id="footer">
<p> </p>
Modified: branches/proto/v4/libs/exception/example/cloning_1.cpp
==============================================================================
--- branches/proto/v4/libs/exception/example/cloning_1.cpp (original)
+++ branches/proto/v4/libs/exception/example/cloning_1.cpp 2008-04-16 01:50:41 EDT (Wed, 16 Apr 2008)
@@ -5,7 +5,7 @@
//This example shows how to enable cloning when throwing a boost::exception.
-#include <boost/exception/enable_exception_cloning.hpp>
+#include <boost/exception/enable_current_exception.hpp>
#include <boost/exception/info.hpp>
#include <stdio.h>
#include <errno.h>
@@ -18,5 +18,6 @@
file_read( FILE * f, void * buffer, size_t size )
{
if( size!=fread(buffer,1,size,f) )
- throw boost::enable_exception_cloning(file_read_error()) << errno_info(errno);
+ throw boost::enable_current_exception(file_read_error()) <<
+ errno_info(errno);
}
Modified: branches/proto/v4/libs/exception/example/cloning_2.cpp
==============================================================================
--- branches/proto/v4/libs/exception/example/cloning_2.cpp (original)
+++ branches/proto/v4/libs/exception/example/cloning_2.cpp 2008-04-16 01:50:41 EDT (Wed, 16 Apr 2008)
@@ -5,7 +5,7 @@
//This example shows how to transport cloning-enabled boost::exceptions between threads.
-#include <boost/exception/cloning.hpp>
+#include <boost/exception_ptr.hpp>
#include <boost/thread.hpp>
#include <boost/bind.hpp>
@@ -20,13 +20,13 @@
error = boost::exception_ptr();
}
catch(
- boost::exception & e )
+ ... )
{
- error = boost::clone_exception(e);
+ error = boost::current_exception();
}
}
-//
+// ...continued
void
work()
Modified: branches/proto/v4/libs/exception/test/Jamfile.v2
==============================================================================
--- branches/proto/v4/libs/exception/test/Jamfile.v2 (original)
+++ branches/proto/v4/libs/exception/test/Jamfile.v2 2008-04-16 01:50:41 EDT (Wed, 16 Apr 2008)
@@ -16,6 +16,7 @@
#exception
run cloning_test.cpp ;
+run copy_exception_test.cpp ;
run unknown_exception_test.cpp ;
run exception_test.cpp ;
run boost_error_info_test.cpp ;
@@ -25,3 +26,13 @@
run error_info_test.cpp ;
run what_test.cpp ;
compile-fail exception_fail.cpp ;
+
+#headers
+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 info_hpp_test.cpp ;
+compile info_tuple_hpp_test.cpp ;
+compile to_string_hpp_test.cpp ;
+compile to_string_stub_hpp_test.cpp ;
Modified: branches/proto/v4/libs/exception/test/cloning_test.cpp
==============================================================================
--- branches/proto/v4/libs/exception/test/cloning_test.cpp (original)
+++ branches/proto/v4/libs/exception/test/cloning_test.cpp 2008-04-16 01:50:41 EDT (Wed, 16 Apr 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/cloning.hpp>
+#include <boost/exception_ptr.hpp>
#include <boost/detail/lightweight_test.hpp>
struct
@@ -17,12 +17,12 @@
{
try
{
- throw boost::enable_exception_cloning(test_exception());
+ throw boost::enable_current_exception(test_exception());
}
catch(
- std::exception & x )
+ ... )
{
- boost::exception_ptr p = boost::clone_exception(x);
+ boost::exception_ptr p = boost::current_exception();
try
{
rethrow_exception(p);
Modified: branches/proto/v4/libs/exception/test/throw_exception_test.cpp
==============================================================================
--- branches/proto/v4/libs/exception/test/throw_exception_test.cpp (original)
+++ branches/proto/v4/libs/exception/test/throw_exception_test.cpp 2008-04-16 01:50:41 EDT (Wed, 16 Apr 2008)
@@ -5,7 +5,7 @@
#include "helper2.hpp"
#include <boost/exception/info.hpp>
-#include <boost/exception/cloning.hpp>
+#include <boost/exception_ptr.hpp>
#include <boost/detail/lightweight_test.hpp>
typedef boost::error_info<struct tag_test_int,int> test_int;
@@ -35,9 +35,9 @@
BOOST_ASSERT(false);
}
catch(
- std::exception & x )
+ ... )
{
- boost::exception_ptr p = boost::clone_exception(x);
+ boost::exception_ptr p = boost::current_exception();
try
{
rethrow_exception(p);
@@ -55,11 +55,6 @@
BOOST_TEST(false);
}
}
- catch(
- ... )
- {
- BOOST_TEST(false);
- }
}
int
Modified: branches/proto/v4/libs/exception/test/unknown_exception_test.cpp
==============================================================================
--- branches/proto/v4/libs/exception/test/unknown_exception_test.cpp (original)
+++ branches/proto/v4/libs/exception/test/unknown_exception_test.cpp 2008-04-16 01:50:41 EDT (Wed, 16 Apr 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/cloning.hpp>
+#include <boost/exception_ptr.hpp>
#include <boost/exception/info.hpp>
#include <boost/detail/lightweight_test.hpp>
@@ -40,9 +40,9 @@
throw_boost_exception();
}
catch(
- boost::exception & x )
+ ... )
{
- boost::exception_ptr ep=boost::clone_exception(x);
+ boost::exception_ptr ep=boost::current_exception();
try
{
rethrow_exception(ep);
@@ -57,15 +57,29 @@
{
BOOST_TEST(false);
}
+ try
+ {
+ rethrow_exception(ep);
+ }
+ catch(
+ boost::exception & x )
+ {
+ BOOST_TEST( 42==*boost::get_error_info<test>(x) );
+ }
+ catch(
+ ... )
+ {
+ BOOST_TEST(false);
+ }
}
try
{
throw_unknown_exception();
}
catch(
- std::exception & x )
+ ... )
{
- boost::exception_ptr ep=boost::clone_exception(x);
+ boost::exception_ptr ep=boost::current_exception();
try
{
rethrow_exception(ep);
@@ -79,6 +93,19 @@
{
BOOST_TEST(false);
}
+ try
+ {
+ rethrow_exception(ep);
+ }
+ catch(
+ boost::exception & )
+ {
+ }
+ catch(
+ ... )
+ {
+ BOOST_TEST(false);
+ }
}
return boost::report_errors();
}
Modified: branches/proto/v4/libs/math/test/Jamfile.v2
==============================================================================
--- branches/proto/v4/libs/math/test/Jamfile.v2 (original)
+++ branches/proto/v4/libs/math/test/Jamfile.v2 2008-04-16 01:50:41 EDT (Wed, 16 Apr 2008)
@@ -13,7 +13,8 @@
<toolset>gcc:<cxxflags>-Wno-missing-braces
<toolset>darwin:<cxxflags>-Wno-missing-braces
<toolset>acc:<cxxflags>+W2068,2461,2236,4070,4069
- <toolset>intel:<cxxflags>-Qwd264,239
+ <toolset>intel:<cxxflags>-Qwd264
+ <toolset>intel:<cxxflags>-Qwd239
<toolset>intel:<cxxflags>/nologo
<toolset>intel-linux:<cxxflags>-wd239
<toolset>intel:<linkflags>/nologo
Modified: branches/proto/v4/libs/math/test/pow_test.cpp
==============================================================================
--- branches/proto/v4/libs/math/test/pow_test.cpp (original)
+++ branches/proto/v4/libs/math/test/pow_test.cpp 2008-04-16 01:50:41 EDT (Wed, 16 Apr 2008)
@@ -106,7 +106,9 @@
BOOST_STATIC_ASSERT((is_same<BOOST_TYPEOF(pow<2>(5ul)), double>::value));
BOOST_STATIC_ASSERT((is_same<BOOST_TYPEOF(pow<2>(6.0f)), float>::value));
BOOST_STATIC_ASSERT((is_same<BOOST_TYPEOF(pow<2>(7.0)), double>::value));
+#ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
BOOST_STATIC_ASSERT((is_same<BOOST_TYPEOF(pow<2>(7.0l)), long double>::value));
+#endif
};
Modified: branches/proto/v4/libs/math/test/test_expint.cpp
==============================================================================
--- branches/proto/v4/libs/math/test/test_expint.cpp (original)
+++ branches/proto/v4/libs/math/test/test_expint.cpp 2008-04-16 01:50:41 EDT (Wed, 16 Apr 2008)
@@ -60,6 +60,36 @@
largest_type = "(long\\s+)?double";
#endif
+ //
+ // On MacOS X erfc has much higher error levels than
+ // expected: given that the implementation is basically
+ // just a rational function evaluation combined with
+ // exponentiation, we conclude that exp and pow are less
+ // accurate on this platform, especially when the result
+ // is outside the range of a double.
+ //
+ add_expected_result(
+ ".*", // compiler
+ ".*", // stdlib
+ "Mac OS", // platform
+ "float|double|long double", // test type(s)
+ ".*E1.*", // test data group
+ ".*", 30, 10); // test function
+ add_expected_result(
+ ".*", // compiler
+ ".*", // stdlib
+ "Mac OS", // platform
+ "float|double|long double", // test type(s)
+ ".*Ei.*", // test data group
+ ".*", 300, 200); // test function
+ add_expected_result(
+ ".*", // compiler
+ ".*", // stdlib
+ "Mac OS", // platform
+ ".*", // test type(s)
+ ".*", // test data group
+ ".*", 40, 15); // test function
+
add_expected_result(
".*", // compiler
".*", // stdlib
@@ -131,7 +161,11 @@
std::cout << test_name << " with type " << type_name << std::endl;
typedef value_type (*pg)(value_type, value_type);
+#if defined(BOOST_MATH_NO_DEDUCED_FUNCTION_POINTERS)
+ pg funcp = expint_wrapper<value_type>;
+#else
pg funcp = expint_wrapper;
+#endif
boost::math::tools::test_result<value_type> result;
//
@@ -172,7 +206,11 @@
std::cout << test_name << " with type " << type_name << std::endl;
typedef value_type (*pg)(value_type);
+#if defined(BOOST_MATH_NO_DEDUCED_FUNCTION_POINTERS)
+ pg funcp = boost::math::expint<value_type>;
+#else
pg funcp = boost::math::expint;
+#endif
boost::math::tools::test_result<value_type> result;
//
Modified: branches/proto/v4/libs/math/test/test_nc_chi_squared.cpp
==============================================================================
--- branches/proto/v4/libs/math/test/test_nc_chi_squared.cpp (original)
+++ branches/proto/v4/libs/math/test/test_nc_chi_squared.cpp 2008-04-16 01:50:41 EDT (Wed, 16 Apr 2008)
@@ -80,6 +80,13 @@
largest_type = "(long\\s+)?double|real_concept";
#endif
+ add_expected_result(
+ "[^|]*", // compiler
+ "[^|]*", // stdlib
+ "Mac OS", // platform
+ largest_type, // test type(s)
+ "[^|]*medium[^|]*", // test data group
+ "[^|]*", 550, 100); // test function
//
// Catch all cases come last:
//
Modified: branches/proto/v4/libs/math/test/test_zeta.cpp
==============================================================================
--- branches/proto/v4/libs/math/test/test_zeta.cpp (original)
+++ branches/proto/v4/libs/math/test/test_zeta.cpp 2008-04-16 01:50:41 EDT (Wed, 16 Apr 2008)
@@ -105,7 +105,11 @@
std::cout << test_name << " with type " << type_name << std::endl;
typedef value_type (*pg)(value_type);
+#if defined(BOOST_MATH_NO_DEDUCED_FUNCTION_POINTERS)
+ pg funcp = boost::math::zeta<value_type>;
+#else
pg funcp = boost::math::zeta;
+#endif
boost::math::tools::test_result<value_type> result;
//
@@ -153,11 +157,11 @@
{
std::cout << "Testing basic sanity checks for type " << t << std::endl;
//
- // Basic sanity checks, tolerance is either 2 or 10 epsilon
+ // Basic sanity checks, tolerance is either 5 or 10 epsilon
// expressed as a percentage:
//
T tolerance = boost::math::tools::epsilon<T>() * 100 *
- (boost::is_floating_point<T>::value ? 2 : 10);
+ (boost::is_floating_point<T>::value ? 5 : 10);
BOOST_CHECK_CLOSE(::boost::math::zeta(static_cast<T>(0.125)), static_cast<T>(-0.63277562349869525529352526763564627152686379131122L), tolerance);
BOOST_CHECK_CLOSE(::boost::math::zeta(static_cast<T>(1023) / static_cast<T>(1024)), static_cast<T>(-1023.4228554489429786541032870895167448906103303056L), tolerance);
BOOST_CHECK_CLOSE(::boost::math::zeta(static_cast<T>(1025) / static_cast<T>(1024)), static_cast<T>(1024.5772867695045940578681624248887776501597556226L), tolerance);
Modified: branches/proto/v4/libs/python/test/vector_indexing_suite.py
==============================================================================
--- branches/proto/v4/libs/python/test/vector_indexing_suite.py (original)
+++ branches/proto/v4/libs/python/test/vector_indexing_suite.py 2008-04-16 01:50:41 EDT (Wed, 16 Apr 2008)
@@ -322,6 +322,19 @@
[ a b c d e f g h i j ]
#####################################################################
+# extend using a generator expression
+#####################################################################
+>>> v[:] = ['a','b','c','d','e'] # reset again
+>>> def generator():
+... addlist = ['f','g','h','i','j']
+... for i in addlist:
+... if i != 'g':
+... yield i
+>>> v.extend(generator())
+>>> print_xvec(v)
+[ a b c d e f h i j ]
+
+#####################################################################
# vector of strings
#####################################################################
>>> sv = StringVec()
Modified: branches/proto/v4/tools/build/v2/tools/common.jam
==============================================================================
--- branches/proto/v4/tools/build/v2/tools/common.jam (original)
+++ branches/proto/v4/tools/build/v2/tools/common.jam 2008-04-16 01:50:41 EDT (Wed, 16 Apr 2008)
@@ -5,8 +5,8 @@
# Distributed under the Boost Software License, Version 1.0.
# (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
-# Provides actions common to all toolsets, for as making directoies and
-# removing files.
+# Provides actions common to all toolsets, such as creating directories and
+# removing files.
import os ;
import modules ;
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