61 lines · plain
1// -*- C++ -*-2//===----------------------------------------------------------------------===//3//4// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.5// See https://llvm.org/LICENSE.txt for license information.6// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception7//8//===----------------------------------------------------------------------===//9 10#ifndef _LIBCPP_EXPECTED11#define _LIBCPP_EXPECTED12 13/*14 Header <expected> synopsis15 16namespace std {17 // [expected.unexpected], class template unexpected18 template<class E> class unexpected;19 20 // [expected.bad], class template bad_expected_access21 template<class E> class bad_expected_access;22 23 // [expected.bad.void], specialization for void24 template<> class bad_expected_access<void>;25 26 // in-place construction of unexpected values27 struct unexpect_t {28 explicit unexpect_t() = default;29 };30 inline constexpr unexpect_t unexpect{};31 32 // [expected.expected], class template expected33 template<class T, class E> class expected;34 35 // [expected.void], partial specialization of expected for void types36 template<class T, class E> requires is_void_v<T> class expected<T, E>;37}38 39*/40 41#if __cplusplus < 201103L && defined(_LIBCPP_USE_FROZEN_CXX03_HEADERS)42# include <__cxx03/__config>43#else44# include <__config>45 46# if _LIBCPP_STD_VER >= 2347# include <__expected/bad_expected_access.h>48# include <__expected/expected.h>49# include <__expected/unexpect.h>50# include <__expected/unexpected.h>51# endif52 53# include <version>54 55# if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)56# pragma GCC system_header57# endif58#endif // __cplusplus < 201103L && defined(_LIBCPP_USE_FROZEN_CXX03_HEADERS)59 60#endif // _LIBCPP_EXPECTED61