1*5f757f3fSDimitry Andric// -*- C++ -*- 2*5f757f3fSDimitry Andric//===----------------------------------------------------------------------===// 3*5f757f3fSDimitry Andric// 4*5f757f3fSDimitry Andric// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 5*5f757f3fSDimitry Andric// See https://llvm.org/LICENSE.txt for license information. 6*5f757f3fSDimitry Andric// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 7*5f757f3fSDimitry Andric// 8*5f757f3fSDimitry Andric//===----------------------------------------------------------------------===// 9*5f757f3fSDimitry Andric 10*5f757f3fSDimitry Andricexport namespace std { 11*5f757f3fSDimitry Andric // [optional.optional], class template optional 12*5f757f3fSDimitry Andric using std::optional; 13*5f757f3fSDimitry Andric 14*5f757f3fSDimitry Andric // [optional.nullopt], no-value state indicator 15*5f757f3fSDimitry Andric using std::nullopt; 16*5f757f3fSDimitry Andric using std::nullopt_t; 17*5f757f3fSDimitry Andric 18*5f757f3fSDimitry Andric // [optional.bad.access], class bad_optional_access 19*5f757f3fSDimitry Andric using std::bad_optional_access; 20*5f757f3fSDimitry Andric 21*5f757f3fSDimitry Andric // [optional.relops], relational operators 22*5f757f3fSDimitry Andric using std::operator==; 23*5f757f3fSDimitry Andric using std::operator!=; 24*5f757f3fSDimitry Andric using std::operator<; 25*5f757f3fSDimitry Andric using std::operator>; 26*5f757f3fSDimitry Andric using std::operator<=; 27*5f757f3fSDimitry Andric using std::operator>=; 28*5f757f3fSDimitry Andric using std::operator<=>; 29*5f757f3fSDimitry Andric 30*5f757f3fSDimitry Andric // [optional.specalg], specialized algorithms 31*5f757f3fSDimitry Andric using std::swap; 32*5f757f3fSDimitry Andric 33*5f757f3fSDimitry Andric using std::make_optional; 34*5f757f3fSDimitry Andric 35*5f757f3fSDimitry Andric // [optional.hash], hash support 36*5f757f3fSDimitry Andric using std::hash; 37*5f757f3fSDimitry Andric} // namespace std 38