mirror of
https://github.com/llvm-mirror/libcxx.git
synced 2025-10-23 18:38:30 +08:00
Put the exception classes for experimental::optional and experimental::any back in the dylib for binary compatibility
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@323989 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
19
src/any.cpp
19
src/any.cpp
@@ -14,3 +14,22 @@ const char* bad_any_cast::what() const _NOEXCEPT {
|
|||||||
return "bad any cast";
|
return "bad any cast";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#include <experimental/__config>
|
||||||
|
|
||||||
|
// Preserve std::experimental::any_bad_cast for ABI compatibility
|
||||||
|
// Even though it no longer exists in a header file
|
||||||
|
_LIBCPP_BEGIN_NAMESPACE_LFTS
|
||||||
|
|
||||||
|
class _LIBCPP_EXCEPTION_ABI _LIBCPP_AVAILABILITY_BAD_ANY_CAST bad_any_cast : public bad_cast
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
virtual const char* what() const _NOEXCEPT;
|
||||||
|
};
|
||||||
|
|
||||||
|
const char* bad_any_cast::what() const _NOEXCEPT {
|
||||||
|
return "bad any cast";
|
||||||
|
}
|
||||||
|
|
||||||
|
_LIBCPP_END_NAMESPACE_LFTS
|
||||||
|
@@ -20,3 +20,23 @@ const char* bad_optional_access::what() const _NOEXCEPT {
|
|||||||
|
|
||||||
} // std
|
} // std
|
||||||
|
|
||||||
|
|
||||||
|
#include <experimental/__config>
|
||||||
|
|
||||||
|
// Preserve std::experimental::bad_optional_access for ABI compatibility
|
||||||
|
// Even though it no longer exists in a header file
|
||||||
|
_LIBCPP_BEGIN_NAMESPACE_EXPERIMENTAL
|
||||||
|
|
||||||
|
class _LIBCPP_EXCEPTION_ABI _LIBCPP_AVAILABILITY_BAD_OPTIONAL_ACCESS bad_optional_access
|
||||||
|
: public std::logic_error
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
bad_optional_access() : std::logic_error("Bad optional Access") {}
|
||||||
|
|
||||||
|
// Get the key function ~bad_optional_access() into the dylib
|
||||||
|
virtual ~bad_optional_access() _NOEXCEPT;
|
||||||
|
};
|
||||||
|
|
||||||
|
bad_optional_access::~bad_optional_access() _NOEXCEPT = default;
|
||||||
|
|
||||||
|
_LIBCPP_END_NAMESPACE_EXPERIMENTAL
|
||||||
|
Reference in New Issue
Block a user