Compare commits

..

7 Commits

Author SHA1 Message Date
c548923b32 Merge branch 'develop' 2016-11-07 11:30:38 -08:00
f94638e522 Configuration option to allow Boost Exception to use std::shared_ptr instead of boost::shared_ptr. 2016-09-28 17:01:26 -07:00
fc1ca8aef6 Merge branch 'develop' of https://github.com/boostorg/throw_exception 2016-06-07 12:58:24 -07:00
c89a2db112 Merge pull request #4 from vslavik/fix-clone_impl-visibility
Use default visibility for exception_detail::clone_impl<T>
2015-10-11 15:09:46 -07:00
f52e2fe315 Use default visibility for exception_detail::clone_impl<>
When building code with hidden visibility on ELF, exception classes must
explicitly use the default visibility for catching to work across shared
objects; the same must be done for all their base classes. While other
classes in the boost::exception_detail namespace had visibility adjusted
accordingly, clone_impl<T> didn't, so remedy that.
2015-10-10 16:44:52 +02:00
fa2195c268 rvalue support in error_info 2015-03-24 15:35:56 -07:00
a9de81a444 Merge branch 'master' into develop 2014-06-08 23:18:48 +03:00

View File

@ -12,6 +12,14 @@
#pragma warning(push,1)
#endif
#ifdef BOOST_EXCEPTION_MINI_BOOST
#include <memory>
namespace boost { namespace exception_detail { using std::shared_ptr; } }
#else
namespace boost { template <class T> class shared_ptr; };
namespace boost { namespace exception_detail { using boost::shared_ptr; } }
#endif
namespace
boost
{
@ -144,9 +152,6 @@ boost
# endif
#endif
template <class T>
class shared_ptr;
namespace
exception_detail
{
@ -182,6 +187,18 @@ boost
template <>
struct get_info<throw_line>;
template <class>
struct set_info_rv;
template <>
struct set_info_rv<throw_function>;
template <>
struct set_info_rv<throw_file>;
template <>
struct set_info_rv<throw_line>;
char const * get_diagnostic_information( exception const &, char const * );
void copy_boost_exception( exception *, exception const * );
@ -264,6 +281,11 @@ boost
friend struct exception_detail::get_info<throw_function>;
friend struct exception_detail::get_info<throw_file>;
friend struct exception_detail::get_info<throw_line>;
template <class>
friend struct exception_detail::set_info_rv;
friend struct exception_detail::set_info_rv<throw_function>;
friend struct exception_detail::set_info_rv<throw_file>;
friend struct exception_detail::set_info_rv<throw_line>;
friend void exception_detail::copy_boost_exception( exception *, exception const * );
#endif
mutable exception_detail::refcount_ptr<exception_detail::error_info_container> data_;
@ -432,6 +454,11 @@ boost
{
}
#if defined(__GNUC__)
# if (__GNUC__ == 4 && __GNUC_MINOR__ >= 1) || (__GNUC__ > 4)
# pragma GCC visibility push (default)
# endif
#endif
template <class T>
class
clone_impl:
@ -473,6 +500,11 @@ boost
}
};
}
#if defined(__GNUC__)
# if (__GNUC__ == 4 && __GNUC_MINOR__ >= 1) || (__GNUC__ > 4)
# pragma GCC visibility pop
# endif
#endif
template <class T>
inline