xref: /llvm-project-15.0.7/libcxx/src/any.cpp (revision b87adec4)
13461dbc0SEric Fiselier //===---------------------------- any.cpp ---------------------------------===//
23461dbc0SEric Fiselier //
33461dbc0SEric Fiselier //                     The LLVM Compiler Infrastructure
43461dbc0SEric Fiselier //
53461dbc0SEric Fiselier // This file is dual licensed under the MIT and the University of Illinois Open
63461dbc0SEric Fiselier // Source Licenses. See LICENSE.TXT for details.
73461dbc0SEric Fiselier //
83461dbc0SEric Fiselier //===----------------------------------------------------------------------===//
93461dbc0SEric Fiselier 
10324506b9SEric Fiselier #include "any"
113461dbc0SEric Fiselier 
12324506b9SEric Fiselier namespace std {
133461dbc0SEric Fiselier const char* bad_any_cast::what() const _NOEXCEPT {
143461dbc0SEric Fiselier     return "bad any cast";
153461dbc0SEric Fiselier }
16324506b9SEric Fiselier }
17*b87adec4SMarshall Clow 
18*b87adec4SMarshall Clow 
19*b87adec4SMarshall Clow #include <experimental/__config>
20*b87adec4SMarshall Clow 
21*b87adec4SMarshall Clow //  Preserve std::experimental::any_bad_cast for ABI compatibility
22*b87adec4SMarshall Clow //  Even though it no longer exists in a header file
23*b87adec4SMarshall Clow _LIBCPP_BEGIN_NAMESPACE_LFTS
24*b87adec4SMarshall Clow 
25*b87adec4SMarshall Clow class _LIBCPP_EXCEPTION_ABI _LIBCPP_AVAILABILITY_BAD_ANY_CAST bad_any_cast : public bad_cast
26*b87adec4SMarshall Clow {
27*b87adec4SMarshall Clow public:
28*b87adec4SMarshall Clow     virtual const char* what() const _NOEXCEPT;
29*b87adec4SMarshall Clow };
30*b87adec4SMarshall Clow 
31*b87adec4SMarshall Clow const char* bad_any_cast::what() const _NOEXCEPT {
32*b87adec4SMarshall Clow     return "bad any cast";
33*b87adec4SMarshall Clow }
34*b87adec4SMarshall Clow 
35*b87adec4SMarshall Clow _LIBCPP_END_NAMESPACE_LFTS
36