From Jason Turner

[variant.syn]

Diff to HTML by rtfpessoa

Files changed (1) hide show
  1. tmp/tmp6w4f7kvr/{from.md → to.md} +14 -9
tmp/tmp6w4f7kvr/{from.md → to.md} RENAMED
@@ -1,8 +1,9 @@
1
  ### Header `<variant>` synopsis <a id="variant.syn">[[variant.syn]]</a>
2
 
3
  ``` cpp
 
4
  #include <compare> // see [compare.syn]
5
 
6
  namespace std {
7
  // [variant.variant], class template variant
8
  template<class... Types>
@@ -18,11 +19,11 @@ namespace std {
18
  struct variant_size<variant<Types...>>;
19
 
20
  template<size_t I, class T> struct variant_alternative; // not defined
21
  template<size_t I, class T> struct variant_alternative<I, const T>;
22
  template<size_t I, class T>
23
- using variant_alternative_t = typename variant_alternative<I, T>::type;
24
 
25
  template<size_t I, class... Types>
26
  struct variant_alternative<I, variant<Types...>>;
27
 
28
  inline constexpr size_t variant_npos = -1;
@@ -30,26 +31,30 @@ namespace std {
30
  // [variant.get], value access
31
  template<class T, class... Types>
32
  constexpr bool holds_alternative(const variant<Types...>&) noexcept;
33
 
34
  template<size_t I, class... Types>
35
- constexpr variant_alternative_t<I, variant<Types...>>& get(variant<Types...>&);
 
36
  template<size_t I, class... Types>
37
- constexpr variant_alternative_t<I, variant<Types...>>&& get(variant<Types...>&&);
 
38
  template<size_t I, class... Types>
39
- constexpr const variant_alternative_t<I, variant<Types...>>& get(const variant<Types...>&);
 
40
  template<size_t I, class... Types>
41
- constexpr const variant_alternative_t<I, variant<Types...>>&& get(const variant<Types...>&&);
 
42
 
43
  template<class T, class... Types>
44
- constexpr T& get(variant<Types...>&);
45
  template<class T, class... Types>
46
- constexpr T&& get(variant<Types...>&&);
47
  template<class T, class... Types>
48
- constexpr const T& get(const variant<Types...>&);
49
  template<class T, class... Types>
50
- constexpr const T&& get(const variant<Types...>&&);
51
 
52
  template<size_t I, class... Types>
53
  constexpr add_pointer_t<variant_alternative_t<I, variant<Types...>>>
54
  get_if(variant<Types...>*) noexcept;
55
  template<size_t I, class... Types>
 
1
  ### Header `<variant>` synopsis <a id="variant.syn">[[variant.syn]]</a>
2
 
3
  ``` cpp
4
+ // mostly freestanding
5
  #include <compare> // see [compare.syn]
6
 
7
  namespace std {
8
  // [variant.variant], class template variant
9
  template<class... Types>
 
19
  struct variant_size<variant<Types...>>;
20
 
21
  template<size_t I, class T> struct variant_alternative; // not defined
22
  template<size_t I, class T> struct variant_alternative<I, const T>;
23
  template<size_t I, class T>
24
+ using variant_alternative_t = variant_alternative<I, T>::type;
25
 
26
  template<size_t I, class... Types>
27
  struct variant_alternative<I, variant<Types...>>;
28
 
29
  inline constexpr size_t variant_npos = -1;
 
31
  // [variant.get], value access
32
  template<class T, class... Types>
33
  constexpr bool holds_alternative(const variant<Types...>&) noexcept;
34
 
35
  template<size_t I, class... Types>
36
+ constexpr variant_alternative_t<I, variant<Types...>>&
37
+ get(variant<Types...>&); // freestanding-deleted
38
  template<size_t I, class... Types>
39
+ constexpr variant_alternative_t<I, variant<Types...>>&&
40
+ get(variant<Types...>&&); // freestanding-deleted
41
  template<size_t I, class... Types>
42
+ constexpr const variant_alternative_t<I, variant<Types...>>&
43
+ get(const variant<Types...>&); // freestanding-deleted
44
  template<size_t I, class... Types>
45
+ constexpr const variant_alternative_t<I, variant<Types...>>&&
46
+ get(const variant<Types...>&&); // freestanding-deleted
47
 
48
  template<class T, class... Types>
49
+ constexpr T& get(variant<Types...>&); // freestanding-deleted
50
  template<class T, class... Types>
51
+ constexpr T&& get(variant<Types...>&&); // freestanding-deleted
52
  template<class T, class... Types>
53
+ constexpr const T& get(const variant<Types...>&); // freestanding-deleted
54
  template<class T, class... Types>
55
+ constexpr const T&& get(const variant<Types...>&&); // freestanding-deleted
56
 
57
  template<size_t I, class... Types>
58
  constexpr add_pointer_t<variant_alternative_t<I, variant<Types...>>>
59
  get_if(variant<Types...>*) noexcept;
60
  template<size_t I, class... Types>