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-exception 7// 8//===----------------------------------------------------------------------===// 9 10#ifndef _LIBCPP_EXPECTED 11#define _LIBCPP_EXPECTED 12 13/* 14 Header <expected> synopsis 15 16namespace std { 17 // [expected.unexpected], class template unexpected 18 template<class E> class unexpected; 19 20 // [expected.bad], class template bad_expected_access 21 template<class E> class bad_expected_access; 22 23 // [expected.bad.void], specialization for void 24 template<> class bad_expected_access<void>; 25 26 // in-place construction of unexpected values 27 struct unexpect_t { 28 explicit unexpect_t() = default; 29 }; 30 inline constexpr unexpect_t unexpect{}; 31 32 // [expected.expected], class template expected 33 template<class T, class E> class expected; 34 35 // [expected.void], partial specialization of expected for void types 36 template<class T, class E> requires is_void_v<T> class expected<T, E>; 37} 38 39*/ 40 41#include <__assert> // all public C++ headers provide the assertion handler 42#include <__config> 43#include <__expected/bad_expected_access.h> 44#include <__expected/expected.h> 45#include <__expected/unexpect.h> 46#include <__expected/unexpected.h> 47#include <version> 48 49#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) 50# pragma GCC system_header 51#endif 52 53#endif // _LIBCPP_EXPECTED 54 55