diff options
author | Marshall Clow <mclow.lists@gmail.com> | 2017-02-05 20:06:38 +0000 |
---|---|---|
committer | Marshall Clow <mclow.lists@gmail.com> | 2017-02-05 20:06:38 +0000 |
commit | e2261bde80c7e23419eec6dac308f88d246fe989 (patch) | |
tree | 5e5bf6df66a0ca8f90fb3126a8730bf5aa5141b2 /include/optional | |
parent | 7566869dabd82699f26c8c95f18de331ec3950ce (diff) |
Change the base class of std::bad_optional_access. This is a (subtle) ABI change, and is in response to http://http://wg21.link/LWG2806, which I *expect* to be adopted in Kona. I am making this change now in anticipation, and will get it into 4.0, because (a) 4.0 is the first release with std::optional, and (b) I don't want to make an ABI-change later, when the user base should be significantly larger. Note that I didn't change std::experimental::bad_optional_access, because that's still specified to derive from std::logic_error.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@294133 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/optional')
-rw-r--r-- | include/optional | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/include/optional b/include/optional index b13a2d5f7..ff3e929e1 100644 --- a/include/optional +++ b/include/optional @@ -160,14 +160,12 @@ namespace std // purposefully not using versioning namespace { class _LIBCPP_EXCEPTION_ABI bad_optional_access - : public logic_error + : public exception { public: - _LIBCPP_INLINE_VISIBILITY - bad_optional_access() : logic_error("bad optional access") {} - // Get the key function ~bad_optional_access() into the dylib - virtual ~bad_optional_access() _NOEXCEPT; + virtual ~bad_optional_access(); + virtual const char* what() const _NOEXCEPT; }; } // std |