xref: /aosp_15_r20/external/cronet/third_party/libc++/src/modules/std/tuple.cppm (revision 6777b5387eb2ff775bb5750e3f5d96f37fb7352b)
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 <tuple>
12
13export module std:tuple;
14export namespace std {
15  // [tuple.tuple], class template tuple
16  using std::tuple;
17
18  // [tuple.like], concept tuple-like
19
20  // [tuple.common.ref], common_reference related specializations
21  using std::basic_common_reference;
22  using std::common_type;
23
24  // [tuple.creation], tuple creation functions
25  using std::ignore;
26
27  using std::forward_as_tuple;
28  using std::make_tuple;
29  using std::tie;
30  using std::tuple_cat;
31
32  // [tuple.apply], calling a function with a tuple of arguments
33  using std::apply;
34
35  using std::make_from_tuple;
36
37  // [tuple.helper], tuple helper classes
38  using std::tuple_element;
39  using std::tuple_size;
40
41  using std::tuple_element_t;
42
43  // [tuple.elem], element access
44  using std::get;
45  using std::tuple_element_t;
46
47  // [tuple.rel], relational operators
48  using std::operator==;
49  using std::operator<=>;
50
51  // [tuple.traits], allocator-related traits
52  using std::uses_allocator;
53
54  // [tuple.special], specialized algorithms
55  using std::swap;
56
57  // [tuple.helper], tuple helper classes
58  using std::tuple_size_v;
59} // namespace std
60