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