502 Commits

Author SHA1 Message Date
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
Mike-Devel
8d19f99e43 [CMake] Fix copyright date 2019-03-02 14:24:52 +01:00
Mike-Devel
f4e1a11e6b [CMake] Treat Boost.Exception as header only 2019-03-02 14:20:29 +01:00
Juha
607268dd8e Replaced throw() with BOOST_NOEXCEPT_OR_NOTHROW
With throw(), Visual Studio 2017 emitted a warning "C26439 SPECIAL_NOEXCEPT". Reproducible at least if code analysis was set to level: "Microsoft Native Recommended Rules".

https://docs.microsoft.com/en-us/visualstudio/code-quality/c26439?view=vs-2017
2019-01-28 09:48:53 +02:00
Antony Polukhin
386f5507cb extract exception type name from std::exception_ptr on libstdc++ 2019-01-15 23:55:37 +03:00
Mike Dev
e3590d89af [CMake] Add minimal cmake file
Generate cmake target that builds the library and which can
be used by other libraries to express their dependency on
this library and retrieve any configuration information
such as the include directory, binary to link to,
transitive dependencies, necessary compiler options or the
required c++ standards level.
2019-01-04 19:06:57 +01:00
Glen Fernandes
c87b9c55b1 Fix unit tests that did not return report_errors() boost-1.70.0.beta1 boost-1.70.0 boost-1.69.0-beta1 boost-1.69.0 2018-09-24 19:46:13 -04:00
Glen Fernandes
de6cef966b Fix unit tests that did not return report_errors() 2018-09-17 07:32:49 -04:00
Daniel James
2a2557b903 Fully qualify error_info_base for Visual C++ 7.1
Test are failing on Visual C++ 7.1, I think because it's not importing
error_info_base into the class' namespace, so hopefully this will fix it. I
don't have access to the compiler, so I'm not sure.
2018-04-07 15:01:58 +01:00
Emil Dotchevski
50899b8f1b added bug_11874_test.cpp 2017-07-05 16:27:16 -07:00
Emil Dotchevski
dcd2d83b34 Merge branch 'develop' boost-1.68.0 boost-1.67.0 boost-1.66.0 boost-1.65.1 boost-1.65.0 2017-05-06 10:59:01 -07:00
Emil Dotchevski
38cdb50eb2 Deleted N3757 2017-05-06 10:54:42 -07:00
Emil Dotchevski
d29b6bc1a2 Merge remote-tracking branch 'remotes/origin/develop' 2017-05-06 10:48:57 -07:00
Emil Dotchevski
1a0e643211 64-bit support in clone_current_exception_non_intrusive.cpp, thanks Martin Weiss 2017-04-23 18:09:22 -07:00
Emil Dotchevski
32d831c4b2 restoring non-intrusive exception_ptr code 2017-04-23 17:58:28 -07:00
Emil Dotchevski
7599ec73a2 No clang 3.0 2017-03-30 18:06:45 -07:00
Emil Dotchevski
e0d31c79ab Adding clang 3.0? 2017-03-30 18:01:18 -07:00
Emil Dotchevski
4824ef856f Merge branch 'develop' of https://github.com/boostorg/exception into develop
# Conflicts:
#	include/boost/exception/detail/error_info_impl.hpp
2017-03-30 17:22:09 -07:00
Emil Dotchevski
bed7f3147f Typo 2017-03-30 17:20:21 -07:00