summaryrefslogtreecommitdiffstats
path: root/include/exception
diff options
context:
space:
mode:
authorEric Fiselier <eric@efcs.ca>2017-02-17 03:25:08 +0000
committerEric Fiselier <eric@efcs.ca>2017-02-17 03:25:08 +0000
commit515ba559b91cc334e654644f86967de85d737846 (patch)
tree1246843054a9211673a42ddf37b38770b589b308 /include/exception
parentf9aeac6b4e3e9469b69d6eefb07e761b5bd1da9a (diff)
downloadexternal_libcxx-515ba559b91cc334e654644f86967de85d737846.tar.gz
external_libcxx-515ba559b91cc334e654644f86967de85d737846.tar.bz2
external_libcxx-515ba559b91cc334e654644f86967de85d737846.zip
[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 git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@295406 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/exception')
-rw-r--r--include/exception4
1 files changed, 4 insertions, 0 deletions
diff --git a/include/exception b/include/exception
index db11c36d8..8828709f8 100644
--- a/include/exception
+++ b/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;