From Jason Turner

[tuple.common.ref]

Diff to HTML by rtfpessoa

Files changed (1) hide show
  1. tmp/tmpddpaj2fg/{from.md → to.md} +51 -0
tmp/tmpddpaj2fg/{from.md → to.md} RENAMED
@@ -0,0 +1,51 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ### `common_reference` related specializations <a id="tuple.common.ref">[[tuple.common.ref]]</a>
2
+
3
+ In the descriptions that follow:
4
+
5
+ - Let `TTypes` be a pack formed by the sequence of
6
+ `tuple_element_t<i, TTuple>` for every integer
7
+ 0 ≤ i < `tuple_size_v<TTuple>`.
8
+ - Let `UTypes` be a pack formed by the sequence of
9
+ `tuple_element_t<i, UTuple>` for every integer
10
+ 0 ≤ i < `tuple_size_v<UTuple>`.
11
+
12
+ ``` cpp
13
+ template<tuple-like TTuple, tuple-like UTuple,
14
+ template<class> class TQual, template<class> class UQual>
15
+ struct basic_common_reference<TTuple, UTuple, TQual, UQual> {
16
+ using type = see below;
17
+ };
18
+ ```
19
+
20
+ *Constraints:*
21
+
22
+ - `TTuple` is a specialization of `tuple` or `UTuple` is a
23
+ specialization of `tuple`.
24
+ - `is_same_v<TTuple, decay_t<TTuple>>` is `true`.
25
+ - `is_same_v<UTuple, decay_t<UTuple>>` is `true`.
26
+ - `tuple_size_v<TTuple>` equals `tuple_size_v<UTuple>`.
27
+ - `tuple<common_reference_t<TQual<TTypes>, UQual<UTypes>>...>` denotes a
28
+ type.
29
+
30
+ The member *typedef-name* `type` denotes the type
31
+ `tuple<common_reference_t<TQual<TTypes>, UQual<UTypes>>...>`.
32
+
33
+ ``` cpp
34
+ template<tuple-like TTuple, tuple-like UTuple>
35
+ struct common_type<TTuple, UTuple> {
36
+ using type = see below;
37
+ };
38
+ ```
39
+
40
+ *Constraints:*
41
+
42
+ - `TTuple` is a specialization of `tuple` or `UTuple` is a
43
+ specialization of `tuple`.
44
+ - `is_same_v<TTuple, decay_t<TTuple>>` is `true`.
45
+ - `is_same_v<UTuple, decay_t<UTuple>>` is `true`.
46
+ - `tuple_size_v<TTuple>` equals `tuple_size_v<UTuple>`.
47
+ - `tuple<common_type_t<TTypes, UTypes>...>` denotes a type.
48
+
49
+ The member *typedef-name* `type` denotes the type
50
+ `tuple<common_type_t<TTypes, UTypes>...>`.
51
+