diff options
author | Eric Fiselier <eric@efcs.ca> | 2017-02-17 03:25:08 +0000 |
---|---|---|
committer | Eric Fiselier <eric@efcs.ca> | 2017-02-17 03:25:08 +0000 |
commit | 2a1bfa98d1c2fc1528c1adcfb3a9d499c39118cd (patch) | |
tree | 6b238f8c5f5b166eb880dfa8cb01f54369819334 /libcxx/include/exception | |
parent | 571c05a55059cc2783aea9ef03e57b253e3107b7 (diff) | |
download | llvm-2a1bfa98d1c2fc1528c1adcfb3a9d499c39118cd.zip llvm-2a1bfa98d1c2fc1528c1adcfb3a9d499c39118cd.tar.gz llvm-2a1bfa98d1c2fc1528c1adcfb3a9d499c39118cd.tar.bz2 |
[libcxx] Remove unexpected handlers in C++17
Summary:
This patch implements [P0003R5](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0003r5.html) which removes exception specifications from C++17.
The only changes to the library are removing `set_unexpected`, `get_unexpected`, `unexpected`, and `unexpected_handler`. These functions can be re-enabled in C++17 using `_LIBCPP_ENABLE_CXX17_REMOVED_UNEXPECTED_FUNCTIONS`.
@mclow.lists what do you think about removing stuff is this way?
Reviewers: mclow.lists
Reviewed By: mclow.lists
Subscribers: mclow.lists, cfe-commits
Differential Revision: https://reviews.llvm.org/D28172
llvm-svn: 295406
Diffstat (limited to 'libcxx/include/exception')
-rw-r--r-- | libcxx/include/exception | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/libcxx/include/exception b/libcxx/include/exception index db11c36..8828709 100644 --- a/libcxx/include/exception +++ b/libcxx/include/exception @@ -112,10 +112,14 @@ public: }; #endif // !_LIBCPP_ABI_MICROSOFT +#if _LIBCPP_STD_VER <= 14 \ + || defined(_LIBCPP_ENABLE_CXX17_REMOVED_UNEXPECTED_FUNCTIONS) \ + || defined(_LIBCPP_BUILDING_LIBRARY) typedef void (*unexpected_handler)(); _LIBCPP_FUNC_VIS unexpected_handler set_unexpected(unexpected_handler) _NOEXCEPT; _LIBCPP_FUNC_VIS unexpected_handler get_unexpected() _NOEXCEPT; _LIBCPP_NORETURN _LIBCPP_FUNC_VIS void unexpected(); +#endif typedef void (*terminate_handler)(); _LIBCPP_FUNC_VIS terminate_handler set_terminate(terminate_handler) _NOEXCEPT; |