From Jason Turner

[tuple.syn]

Diff to HTML by rtfpessoa

Files changed (1) hide show
  1. tmp/tmp5egoxt7c/{from.md → to.md} +95 -0
tmp/tmp5egoxt7c/{from.md → to.md} RENAMED
@@ -0,0 +1,95 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ### Header `<tuple>` synopsis <a id="tuple.syn">[[tuple.syn]]</a>
2
+
3
+ ``` cpp
4
+ namespace std {
5
+ // [tuple.tuple], class template tuple
6
+ template <class... Types>
7
+ class tuple;
8
+
9
+ // [tuple.creation], tuple creation functions
10
+ inline constexpr unspecified ignore;
11
+
12
+ template <class... TTypes>
13
+ constexpr tuple<VTypes...> make_tuple(TTypes&&...);
14
+
15
+ template <class... TTypes>
16
+ constexpr tuple<TTypes&&...> forward_as_tuple(TTypes&&...) noexcept;
17
+
18
+ template<class... TTypes>
19
+ constexpr tuple<TTypes&...> tie(TTypes&...) noexcept;
20
+
21
+ template <class... Tuples>
22
+ constexpr tuple<CTypes...> tuple_cat(Tuples&&...);
23
+
24
+ // [tuple.apply], calling a function with a tuple of arguments
25
+ template <class F, class Tuple>
26
+ constexpr decltype(auto) apply(F&& f, Tuple&& t);
27
+
28
+ template <class T, class Tuple>
29
+ constexpr T make_from_tuple(Tuple&& t);
30
+
31
+ // [tuple.helper], tuple helper classes
32
+ template <class T> class tuple_size; // not defined
33
+ template <class T> class tuple_size<const T>;
34
+ template <class T> class tuple_size<volatile T>;
35
+ template <class T> class tuple_size<const volatile T>;
36
+
37
+ template <class... Types> class tuple_size<tuple<Types...>>;
38
+
39
+ template <size_t I, class T> class tuple_element; // not defined
40
+ template <size_t I, class T> class tuple_element<I, const T>;
41
+ template <size_t I, class T> class tuple_element<I, volatile T>;
42
+ template <size_t I, class T> class tuple_element<I, const volatile T>;
43
+
44
+ template <size_t I, class... Types>
45
+ class tuple_element<I, tuple<Types...>>;
46
+
47
+ template <size_t I, class T>
48
+ using tuple_element_t = typename tuple_element<I, T>::type;
49
+
50
+ // [tuple.elem], element access
51
+ template <size_t I, class... Types>
52
+ constexpr tuple_element_t<I, tuple<Types...>>& get(tuple<Types...>&) noexcept;
53
+ template <size_t I, class... Types>
54
+ constexpr tuple_element_t<I, tuple<Types...>>&& get(tuple<Types...>&&) noexcept;
55
+ template <size_t I, class... Types>
56
+ constexpr const tuple_element_t<I, tuple<Types...>>& get(const tuple<Types...>&) noexcept;
57
+ template <size_t I, class... Types>
58
+ constexpr const tuple_element_t<I, tuple<Types...>>&& get(const tuple<Types...>&&) noexcept;
59
+ template <class T, class... Types>
60
+ constexpr T& get(tuple<Types...>& t) noexcept;
61
+ template <class T, class... Types>
62
+ constexpr T&& get(tuple<Types...>&& t) noexcept;
63
+ template <class T, class... Types>
64
+ constexpr const T& get(const tuple<Types...>& t) noexcept;
65
+ template <class T, class... Types>
66
+ constexpr const T&& get(const tuple<Types...>&& t) noexcept;
67
+
68
+ // [tuple.rel], relational operators
69
+ template<class... TTypes, class... UTypes>
70
+ constexpr bool operator==(const tuple<TTypes...>&, const tuple<UTypes...>&);
71
+ template<class... TTypes, class... UTypes>
72
+ constexpr bool operator<(const tuple<TTypes...>&, const tuple<UTypes...>&);
73
+ template<class... TTypes, class... UTypes>
74
+ constexpr bool operator!=(const tuple<TTypes...>&, const tuple<UTypes...>&);
75
+ template<class... TTypes, class... UTypes>
76
+ constexpr bool operator>(const tuple<TTypes...>&, const tuple<UTypes...>&);
77
+ template<class... TTypes, class... UTypes>
78
+ constexpr bool operator<=(const tuple<TTypes...>&, const tuple<UTypes...>&);
79
+ template<class... TTypes, class... UTypes>
80
+ constexpr bool operator>=(const tuple<TTypes...>&, const tuple<UTypes...>&);
81
+
82
+ // [tuple.traits], allocator-related traits
83
+ template <class... Types, class Alloc>
84
+ struct uses_allocator<tuple<Types...>, Alloc>;
85
+
86
+ // [tuple.special], specialized algorithms
87
+ template <class... Types>
88
+ void swap(tuple<Types...>& x, tuple<Types...>& y) noexcept(see below);
89
+
90
+ // [tuple.helper], tuple helper classes
91
+ template <class T>
92
+ inline constexpr size_t tuple_size_v = tuple_size<T>::value;
93
+ }
94
+ ```
95
+