Commit Graph

470 Commits

Author SHA1 Message Date
Emil Dotchevski
5abcc9fb50 Adding license file 2020-12-23 18:45:12 -08:00
Emil Dotchevski
18ace4a260 Updated documentation link in README.md 2020-12-23 18:44:11 -08:00
Emil Dotchevski
d133df008f README.md with a link to documentation 2020-12-22 23:37:51 -08:00
Emil Dotchevski
fdf1fee658 Added a link to LEAF in boost-exception.html 2020-12-22 19:13:46 -08:00
Emil Dotchevski
c445901088 GHA CI 2020-12-22 17:26:53 -08:00
Emil Dotchevski
083cfbafa3 Merge branch 'develop' of https://github.com/boostorg/exception into develop 2020-12-19 14:02:04 -08:00
Emil Dotchevski
8be818bc44 Added link to Boost LEAF 2020-12-19 14:01:57 -08:00
Peter Dimov
6a32b36566 Qualify call to copy_exception, because msvc-10.0 has std::copy_exception 2020-12-19 14:50:51 +02:00
Emil Dotchevski
9bd0584aa9 Fixed multi-thread bug introduced by the previous change to copy_exception. boost-1.75.0.beta1 boost-1.75.0 2020-08-14 19:42:29 -07:00
Emil Dotchevski
0016f52fba asan 2020-08-12 16:03:51 -07:00
Emil Dotchevski
7e8f0cd9bb copy_exception/make_exception_ptr implemented via wrapexcept rather than throw/catch 2020-08-11 19:40:30 -07:00
Emil Dotchevski
330008445c make_exception_ptr 2020-07-06 17:09:06 -07:00
Andrey Semashev
63b57749a2 Mark error_info_container_impl final. (#27)
This should allow for better code optimization and also silence
compiler warnings about non-virtual destructor.
boost-1.74.0.beta1 boost-1.74.0
2020-04-30 15:05:51 -07:00
Edward Diener
865cb399d5 Change __CODEGEARC__ to BOOST_CODEGEARC, which is defined in Boost config for the Embarcadero non-clang-based compilers. (#32) 2020-04-30 14:26:21 -07:00
Emil Dotchevski
ff0bcc1d85 Added #pragma clang system_header boost-1.73.0 2020-04-06 18:23:52 -07:00
Emil Dotchevski
c07417af68 Merge branch 'develop' boost-1.73.0.beta1 2020-02-17 18:58:02 -08:00
Emil Dotchevski
9197b6a880 Updated copyright message 2020-02-17 18:57:47 -08:00
Emil Dotchevski
012921be43 Merge branch 'develop' 2020-02-10 09:52:27 -08:00
Andrey Semashev
0353b975f8 Fix MSVC-11 compilation error. (#30)
The compiler supports std::exception_ptr but does not support uniform
initialization syntax.

Co-authored-by: Emil Dotchevski <emildotchevski@gmail.com>
2020-02-09 21:01:10 -08:00
Emil Dotchevski
bd1a6ee1bb Removed broken appveyor configuration 2020-02-09 20:56:10 -08:00
Emil Dotchevski
93692697ef Fixing MSVC-11 compilation error, thanks Lastique 2020-02-09 16:52:49 -08:00
Emil Dotchevski
120b35fde2 AppVeyor 2020-02-09 16:41:30 -08:00
Emil Dotchevski
a5a8e865c0 Merge branch 'develop' 2020-01-31 12:02:34 -08:00
Emil Dotchevski
81e9a137eb Added testing for CXXSTD 98, 03 2020-01-29 14:05:11 -08:00
Emil Dotchevski
3f6ff1a8bf std_exception_ptr_wrapper 2020-01-29 14:02:40 -08:00
dmenendez-gruposantander
af98afb3d1 Attempt to solve issue #10 (#24)
* Attempt to solve issue #10

In boost::current_exception(), after all supported types of exception have
been checked for, a boost::unknown_exception is stored in the
boost::exception_ptr as a last resort to signal that an exception was indeed
stored, but that the actual type and value of the exception was lost.

Now, in case C++11 std::current_exception() is supported, the
std::exception_ptr result of calling std::current_exception() is what
gets stored inside the boost::exception_ptr. Later, inside
boost::rethrow_exception, the std::exception_ptr is retrieved from
the boost::exception_ptr and whatever exception it stores is thrown via
std::rethrow_exception().

The main benefit is than now any exception thrown via plain 'throw'
can be trasnported via boost::exception_ptr. Before this change it was
required that the throw site either used boost::enable_current_exception()
or boost::throw_exception() or threw an exception type inheriting from
boost::exception, which was impossible for third party software
that does not use Boost.Exception.

The detection of std::current_exception() is currently done via config macro
BOOST_NO_CXX11_NOEXCEPT, assuming that if 'noexcept' is supported then
std::exception_ptr is also supported. A better solution would require a new
dedicated macro in Boost.Config.

* Detect support for std::current_exception() via config macro BOOST_NO_CXX11_HDR_EXCEPTION

The temporary solution via BOOST_NO_CXX11_NOEXCEPT was an ugly hack
that is no longer necessary now that Boost.Config has
BOOST_NO_CXX11_HDR_EXCEPTION (pending merge to develop).

* Attempt to solve issue #10

In boost::current_exception(), after all supported types of exception have
been checked for, a boost::unknown_exception is stored in the
boost::exception_ptr as a last resort to signal that an exception was indeed
stored, but that the actual type and value of the exception was lost.

Now, in case C++11 std::current_exception() is supported, the
std::exception_ptr result of calling std::current_exception() is what
gets stored inside the boost::exception_ptr. Later, inside
boost::rethrow_exception, the std::exception_ptr is retrieved from
the boost::exception_ptr and whatever exception it stores is thrown via
std::rethrow_exception().

The main benefit is than now any exception thrown via plain 'throw'
can be trasnported via boost::exception_ptr. Before this change it was
required that the throw site either used boost::enable_current_exception()
or boost::throw_exception() or threw an exception type inheriting from
boost::exception, which was impossible for third party software
that does not use Boost.Exception.

The detection of std::current_exception() is currently done via config macro
BOOST_NO_CXX11_NOEXCEPT, assuming that if 'noexcept' is supported then
std::exception_ptr is also supported. A better solution would require a new
dedicated macro in Boost.Config.

* Detect support for std::current_exception() via config macro BOOST_NO_CXX11_HDR_EXCEPTION

The temporary solution via BOOST_NO_CXX11_NOEXCEPT was an ugly hack
that is no longer necessary now that Boost.Config has
BOOST_NO_CXX11_HDR_EXCEPTION (pending merge to develop).

* Document detection of C++11 std::current_exception through BOOST_NO_CXX11_HDR_EXCEPTION

* Added dist: trusty for Travis config, as recommended by pdimov in issue #10

* Stupid gcc 4.7 and 4.8 are confused initializing a reference with braces, using equal sign hoping it works (tested similar code on godbolt).
2020-01-29 13:41:48 -08:00
Emil Dotchevski
f68cd7b2d4 More g++ testing on travis 2020-01-28 20:11:17 -08:00
Emil Dotchevski
e8c57591a3 Missing #include <stdlib.h> in tests 2020-01-28 16:39:28 -08:00
Emil Dotchevski
c4e5f44e94 travis 2020-01-28 13:57:53 -08:00
Emil Dotchevski
1f90ecc324 travis 2020-01-28 13:18:22 -08:00
Emil Dotchevski
820338c36b Merge branch 'develop' of https://github.com/boostorg/exception into develop 2020-01-28 13:05:06 -08:00
Emil Dotchevski
9c8f2b6400 More travis testing 2020-01-28 13:04:55 -08:00
Emil Dotchevski
6bc76ee326 dist: trusty 2020-01-26 19:33:31 -08:00
Emil Dotchevski
0036e62dce fixing ABI mismatch error 2019-12-24 20:15:08 -08:00
Emil Dotchevski
9d8f16f4e6 Merge branch 'develop' 2019-12-21 19:14:58 -08:00
Emil Dotchevski
87f0473396 Fixed link error in no_exceptions_test.cpp 2019-12-21 19:14:44 -08:00
Emil Dotchevski
d0963a7cf6 Added missing #include in cloning_test.cpp 2019-12-21 14:27:14 -08:00
Emil Dotchevski
80ad850f3a Merge branch 'develop' 2019-12-21 14:18:03 -08:00
Emil Dotchevski
8e61e8e9fd #include guards prefixed with BOOST_EXCEPTION_ 2019-12-21 14:15:17 -08:00
Emil Dotchevski
c44bdae6ac Merge branch 'develop' boost-1.72.0.beta1 boost-1.72.0 boost-1.71.0.beta1 boost-1.71.0 2019-06-06 15:22:51 -07:00
Emil Dotchevski
bfddc104c6 Merge remote-tracking branch 'origin/develop' 2019-06-06 15:18:09 -07:00
Emil Dotchevski
f1af13409d BOOST_NO_EXCEPTIONS tests updated for [noreturn] 2019-06-06 15:09:27 -07:00
Emil Dotchevski
2aaa7975b6 Merge pull request #22 from Oberon00/patch-1
Guard diagnostic_information against null what()
2019-03-16 22:39:26 -07:00
Christian Neumüller
90694bc3b9 Guard diagnostic_information against null what() 2019-03-11 17:56:55 +01:00
Emil Dotchevski
b63736ac89 Merge pull request #20 from Mike-Devel/min_cmake
[CMake] Fix PUBLIC/INTERFACE mixup
2019-03-03 09:27:13 -08:00
Emil Dotchevski
1a7ac9174a Merge pull request #11 from danieljames/fix-visual-c-7.1
Fully qualify error_info_base for Visual C++ 7.1
2019-03-02 22:14:27 -08:00
Mike-Devel
ef4f541a8a [CMake] Fix PUBLIC/INTERFACE left over. 2019-03-03 07:13:47 +01:00
Emil Dotchevski
688f6238f1 Merge pull request #17 from Mike-Devel/min_cmake
[CMake] Add minimal cmake file
2019-03-02 22:13:03 -08:00
Emil Dotchevski
5025e2ca18 Merge pull request #18 from apolukhin/antoshkka/exception-type-from-ptr
Extract exception type name from std::exception_ptr on libstdc++
2019-03-02 22:10:00 -08:00
Emil Dotchevski
457330f286 Merge pull request #19 from jlepola/throw-noexcept
Replaced throw() with BOOST_NOEXCEPT_OR_NOTHROW
2019-03-02 22:08:46 -08:00