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 // [variant.variant], class template variant 12*5f757f3fSDimitry Andric using std::variant; 13*5f757f3fSDimitry Andric 14*5f757f3fSDimitry Andric // [variant.helper], variant helper classes 15*5f757f3fSDimitry Andric using std::variant_alternative; 16*5f757f3fSDimitry Andric using std::variant_npos; 17*5f757f3fSDimitry Andric using std::variant_size; 18*5f757f3fSDimitry Andric using std::variant_size_v; 19*5f757f3fSDimitry Andric 20*5f757f3fSDimitry Andric // [variant.get], value access 21*5f757f3fSDimitry Andric using std::get; 22*5f757f3fSDimitry Andric using std::get_if; 23*5f757f3fSDimitry Andric using std::holds_alternative; 24*5f757f3fSDimitry Andric using std::variant_alternative_t; 25*5f757f3fSDimitry Andric 26*5f757f3fSDimitry Andric // [variant.relops], relational operators 27*5f757f3fSDimitry Andric using std::operator==; 28*5f757f3fSDimitry Andric using std::operator!=; 29*5f757f3fSDimitry Andric using std::operator<; 30*5f757f3fSDimitry Andric using std::operator>; 31*5f757f3fSDimitry Andric using std::operator<=; 32*5f757f3fSDimitry Andric using std::operator>=; 33*5f757f3fSDimitry Andric using std::operator<=>; 34*5f757f3fSDimitry Andric 35*5f757f3fSDimitry Andric // [variant.visit], visitation 36*5f757f3fSDimitry Andric using std::visit; 37*5f757f3fSDimitry Andric 38*5f757f3fSDimitry Andric // [variant.monostate], class monostate 39*5f757f3fSDimitry Andric using std::monostate; 40*5f757f3fSDimitry Andric 41*5f757f3fSDimitry Andric // [variant.specalg], specialized algorithms 42*5f757f3fSDimitry Andric using std::swap; 43*5f757f3fSDimitry Andric 44*5f757f3fSDimitry Andric // [variant.bad.access], class bad_variant_access 45*5f757f3fSDimitry Andric using std::bad_variant_access; 46*5f757f3fSDimitry Andric 47*5f757f3fSDimitry Andric // [variant.hash], hash support 48*5f757f3fSDimitry Andric using std::hash; 49*5f757f3fSDimitry Andric} // namespace std 50