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