
Resolves #105430 - Implement all required pieces of P3168R2 - Leverage existing `wrap_iter` and `bounded_iter` classes to implement the `optional` regular and hardened iterator type, respectively - Update documentation to match
47 lines
1.2 KiB
C++
47 lines
1.2 KiB
C++
// -*- C++ -*-
|
|
//===----------------------------------------------------------------------===//
|
|
//
|
|
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
|
// See https://llvm.org/LICENSE.txt for license information.
|
|
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
export namespace std {
|
|
// [optional.optional], class template optional
|
|
using std::optional;
|
|
#if _LIBCPP_STD_VER >= 26
|
|
// [optional.iterators], iterator support
|
|
namespace ranges {
|
|
using std::ranges::enable_view;
|
|
}
|
|
#endif
|
|
// [optional.nullopt], no-value state indicator
|
|
using std::nullopt;
|
|
using std::nullopt_t;
|
|
|
|
// [optional.bad.access], class bad_optional_access
|
|
using std::bad_optional_access;
|
|
|
|
#if _LIBCPP_STD_VER >= 26
|
|
using std::format_kind;
|
|
#endif
|
|
|
|
// [optional.relops], relational operators
|
|
using std::operator==;
|
|
using std::operator!=;
|
|
using std::operator<;
|
|
using std::operator>;
|
|
using std::operator<=;
|
|
using std::operator>=;
|
|
using std::operator<=>;
|
|
|
|
// [optional.specalg], specialized algorithms
|
|
using std::swap;
|
|
|
|
using std::make_optional;
|
|
|
|
// [optional.hash], hash support
|
|
using std::hash;
|
|
} // namespace std
|