1 //===------------------------ optional.cpp --------------------------------===// 2 // 3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4 // See https://llvm.org/LICENSE.txt for license information. 5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6 // 7 //===----------------------------------------------------------------------===// 8 9 #include "optional" 10 11 namespace std 12 { 13 14 bad_optional_access::~bad_optional_access() _NOEXCEPT = default; 15 16 const char* bad_optional_access::what() const _NOEXCEPT { 17 return "bad_optional_access"; 18 } 19 20 } // std 21 22 23 #include <experimental/__config> 24 25 // Preserve std::experimental::bad_optional_access for ABI compatibility 26 // Even though it no longer exists in a header file 27 _LIBCPP_BEGIN_NAMESPACE_EXPERIMENTAL 28 29 class _LIBCPP_EXCEPTION_ABI _LIBCPP_AVAILABILITY_BAD_OPTIONAL_ACCESS bad_optional_access 30 : public std::logic_error 31 { 32 public: 33 bad_optional_access() : std::logic_error("Bad optional Access") {} 34 35 // Get the key function ~bad_optional_access() into the dylib 36 virtual ~bad_optional_access() _NOEXCEPT; 37 }; 38 39 bad_optional_access::~bad_optional_access() _NOEXCEPT = default; 40 41 _LIBCPP_END_NAMESPACE_EXPERIMENTAL 42