forked from boostorg/exception
Merging minor tested bugfixes from trunk.
[SVN r77592]
This commit is contained in:
@ -9,7 +9,7 @@
|
|||||||
#if defined(_MSC_VER)
|
#if defined(_MSC_VER)
|
||||||
#define BOOST_ATTRIBUTE_NORETURN __declspec(noreturn)
|
#define BOOST_ATTRIBUTE_NORETURN __declspec(noreturn)
|
||||||
#elif defined(__GNUC__)
|
#elif defined(__GNUC__)
|
||||||
#define BOOST_ATTRIBUTE_NORETURN __attribute__((noreturn))
|
#define BOOST_ATTRIBUTE_NORETURN __attribute__((__noreturn__))
|
||||||
#else
|
#else
|
||||||
#define BOOST_ATTRIBUTE_NORETURN
|
#define BOOST_ATTRIBUTE_NORETURN
|
||||||
#endif
|
#endif
|
||||||
|
@ -3,4 +3,7 @@
|
|||||||
//Distributed under the Boost Software License, Version 1.0. (See accompanying
|
//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)
|
//file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
|
||||||
|
#ifndef UUID_EE7ECCA0433B11E1923E37064924019B
|
||||||
|
#define UUID_EE7ECCA0433B11E1923E37064924019B
|
||||||
namespace boost { template <class Tag,class T> class error_info; }
|
namespace boost { template <class Tag,class T> class error_info; }
|
||||||
|
#endif
|
||||||
|
@ -310,6 +310,11 @@ boost
|
|||||||
namespace
|
namespace
|
||||||
exception_detail
|
exception_detail
|
||||||
{
|
{
|
||||||
|
#if defined(__GNUC__)
|
||||||
|
# if (__GNUC__ == 4 && __GNUC_MINOR__ >= 1) || (__GNUC__ > 4)
|
||||||
|
# pragma GCC visibility push (default)
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
template <class T>
|
template <class T>
|
||||||
struct
|
struct
|
||||||
error_info_injector:
|
error_info_injector:
|
||||||
@ -326,6 +331,11 @@ boost
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
#if defined(__GNUC__)
|
||||||
|
# if (__GNUC__ == 4 && __GNUC_MINOR__ >= 1) || (__GNUC__ > 4)
|
||||||
|
# pragma GCC visibility pop
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
struct large_size { char c[256]; };
|
struct large_size { char c[256]; };
|
||||||
large_size dispatch_boost_exception( exception const * );
|
large_size dispatch_boost_exception( exception const * );
|
||||||
@ -373,6 +383,11 @@ boost
|
|||||||
namespace
|
namespace
|
||||||
exception_detail
|
exception_detail
|
||||||
{
|
{
|
||||||
|
#if defined(__GNUC__)
|
||||||
|
# if (__GNUC__ == 4 && __GNUC_MINOR__ >= 1) || (__GNUC__ > 4)
|
||||||
|
# pragma GCC visibility push (default)
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
class
|
class
|
||||||
clone_base
|
clone_base
|
||||||
{
|
{
|
||||||
@ -386,6 +401,11 @@ boost
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
#if defined(__GNUC__)
|
||||||
|
# if (__GNUC__ == 4 && __GNUC_MINOR__ >= 1) || (__GNUC__ > 4)
|
||||||
|
# pragma GCC visibility pop
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
inline
|
inline
|
||||||
void
|
void
|
||||||
@ -410,8 +430,15 @@ boost
|
|||||||
class
|
class
|
||||||
clone_impl:
|
clone_impl:
|
||||||
public T,
|
public T,
|
||||||
public clone_base
|
public virtual clone_base
|
||||||
{
|
{
|
||||||
|
struct clone_tag { };
|
||||||
|
clone_impl( clone_impl const & x, clone_tag ):
|
||||||
|
T(x)
|
||||||
|
{
|
||||||
|
copy_boost_exception(this,&x);
|
||||||
|
}
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
explicit
|
explicit
|
||||||
@ -430,7 +457,7 @@ boost
|
|||||||
clone_base const *
|
clone_base const *
|
||||||
clone() const
|
clone() const
|
||||||
{
|
{
|
||||||
return new clone_impl(*this);
|
return new clone_impl(*this,clone_tag());
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
@ -97,7 +97,7 @@ boost
|
|||||||
{
|
{
|
||||||
shared_ptr<error_info_base> const & p = i->second;
|
shared_ptr<error_info_base> const & p = i->second;
|
||||||
#ifndef BOOST_NO_RTTI
|
#ifndef BOOST_NO_RTTI
|
||||||
BOOST_ASSERT( BOOST_EXCEPTION_DYNAMIC_TYPEID(*p).type_==ti.type_ );
|
BOOST_ASSERT( *BOOST_EXCEPTION_DYNAMIC_TYPEID(*p).type_==*ti.type_ );
|
||||||
#endif
|
#endif
|
||||||
return p;
|
return p;
|
||||||
}
|
}
|
||||||
|
@ -18,6 +18,30 @@
|
|||||||
namespace
|
namespace
|
||||||
boost
|
boost
|
||||||
{
|
{
|
||||||
|
template <
|
||||||
|
class E >
|
||||||
|
inline
|
||||||
|
E const &
|
||||||
|
operator<<(
|
||||||
|
E const & x,
|
||||||
|
tuple< > const & v )
|
||||||
|
{
|
||||||
|
return x;
|
||||||
|
}
|
||||||
|
|
||||||
|
template <
|
||||||
|
class E,
|
||||||
|
class Tag1,class T1 >
|
||||||
|
inline
|
||||||
|
E const &
|
||||||
|
operator<<(
|
||||||
|
E const & x,
|
||||||
|
tuple<
|
||||||
|
error_info<Tag1,T1> > const & v )
|
||||||
|
{
|
||||||
|
return x << v.template get<0>();
|
||||||
|
}
|
||||||
|
|
||||||
template <
|
template <
|
||||||
class E,
|
class E,
|
||||||
class Tag1,class T1,
|
class Tag1,class T1,
|
||||||
|
Reference in New Issue
Block a user