optional.cpp revision 341825
1//===------------------------ optional.cpp --------------------------------===// 2// 3// The LLVM Compiler Infrastructure 4// 5// This file is dual licensed under the MIT and the University of Illinois Open 6// Source Licenses. See LICENSE.TXT for details. 7// 8//===----------------------------------------------------------------------===// 9 10#include "optional" 11 12namespace std 13{ 14 15bad_optional_access::~bad_optional_access() _NOEXCEPT = default; 16 17const char* bad_optional_access::what() const _NOEXCEPT { 18 return "bad_optional_access"; 19 } 20 21} // std 22 23 24#include <experimental/__config> 25 26// Preserve std::experimental::bad_optional_access for ABI compatibility 27// Even though it no longer exists in a header file 28_LIBCPP_BEGIN_NAMESPACE_EXPERIMENTAL 29 30class _LIBCPP_EXCEPTION_ABI _LIBCPP_AVAILABILITY_BAD_OPTIONAL_ACCESS bad_optional_access 31 : public std::logic_error 32{ 33public: 34 bad_optional_access() : std::logic_error("Bad optional Access") {} 35 36// Get the key function ~bad_optional_access() into the dylib 37 virtual ~bad_optional_access() _NOEXCEPT; 38}; 39 40bad_optional_access::~bad_optional_access() _NOEXCEPT = default; 41 42_LIBCPP_END_NAMESPACE_EXPERIMENTAL 43