optional.cpp revision 355940
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 11namespace std 12{ 13 14bad_optional_access::~bad_optional_access() _NOEXCEPT = default; 15 16const 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 29class _LIBCPP_EXCEPTION_ABI _LIBCPP_AVAILABILITY_BAD_OPTIONAL_ACCESS bad_optional_access 30 : public std::logic_error 31{ 32public: 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 39bad_optional_access::~bad_optional_access() _NOEXCEPT = default; 40 41_LIBCPP_END_NAMESPACE_EXPERIMENTAL 42