15 #ifndef INCLUDE_STD_OPTIONAL_EXPERIMENTAL    18 #   if defined(__cpp_lib_optional)    19 #       define INCLUDE_STD_OPTIONAL_EXPERIMENTAL 0    22 #   elif defined(__cpp_lib_experimental_optional)    23 #       define INCLUDE_STD_OPTIONAL_EXPERIMENTAL 1    27 #   elif !defined(__has_include)    28 #       define INCLUDE_STD_OPTIONAL_EXPERIMENTAL 1    31 #   elif __has_include(<optional>)    37 #           if __has_include(<yvals_core.h>)    38 #               include <yvals_core.h>    41 #               if defined(_HAS_CXX17) && _HAS_CXX17    43 #                   define INCLUDE_STD_OPTIONAL_EXPERIMENTAL 0    48 #           ifndef INCLUDE_STD_OPTIONAL_EXPERIMENTAL    49 #               define INCLUDE_STD_OPTIONAL_EXPERIMENTAL 1    53 #       else // #ifdef _MSC_VER    54 #           define INCLUDE_STD_OPTIONAL_EXPERIMENTAL 0    58 #   elif __has_include(<experimental/optional>)    59 #       define INCLUDE_STD_OPTIONAL_EXPERIMENTAL 1    63 #       error Could not find system header "<optional>" or "<experimental/optional>"    67 #   if INCLUDE_STD_OPTIONAL_EXPERIMENTAL    68 #       include <experimental/optional>    72 using optional = std::experimental::optional<T>;
    75 static auto& nullopt = std::experimental::nullopt;
    85 static auto& nullopt = std::nullopt;
    89 #endif // #ifndef INCLUDE_STD_OPTIONAL_EXPERIMENTAL 
std::experimental::bad_optional_access bad_optional_access
 
std::experimental::optional< T > optional