xref: /freebsd/contrib/llvm-project/libcxx/modules/std/variant.inc (revision 5f757f3ff9144b609b3c433dfd370cc6bdc191ad)
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