summaryrefslogtreecommitdiff
path: root/include/optional
diff options
context:
space:
mode:
authorMarshall Clow <mclow.lists@gmail.com>2017-02-05 20:06:38 +0000
committerMarshall Clow <mclow.lists@gmail.com>2017-02-05 20:06:38 +0000
commite2261bde80c7e23419eec6dac308f88d246fe989 (patch)
tree5e5bf6df66a0ca8f90fb3126a8730bf5aa5141b2 /include/optional
parent7566869dabd82699f26c8c95f18de331ec3950ce (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/optional8
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