Home | History | Annotate | Download | only in src
      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 
     12 namespace std
     13 {
     14 
     15 bad_optional_access::~bad_optional_access() _NOEXCEPT = default;
     16 
     17 const 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 
     30 class _LIBCPP_EXCEPTION_ABI _LIBCPP_AVAILABILITY_BAD_OPTIONAL_ACCESS bad_optional_access
     31     : public std::logic_error
     32 {
     33 public:
     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 
     40 bad_optional_access::~bad_optional_access() _NOEXCEPT = default;
     41 
     42 _LIBCPP_END_NAMESPACE_EXPERIMENTAL
     43