diff --git a/doc/html/variant2.html b/doc/html/variant2.html index 918dab2..9019e21 100644 --- a/doc/html/variant2.html +++ b/doc/html/variant2.html @@ -1437,8 +1437,7 @@ there is exactly one occurrence of U in T…​
constexpr variant& operator=( const variant& r )
-  noexcept( mp_all<std::is_nothrow_copy_constructible<T>...,
-    std::is_nothrow_copy_assignable<T>...>::value );
+ noexcept( mp_all<std::is_nothrow_copy_constructible<T>...>::value );
@@ -1452,17 +1451,7 @@ there is exactly one occurrence of U in T…​
Effects:
-
-
    -
  • -

    If index() == j, assigns the value contained in r to the value -contained in *this.

    -
  • -
  • -

    Otherwise, equivalent to emplace<j>(get<j>(r)).

    -
  • -
-
+

emplace<j>(get<j>(r)).

Returns:
@@ -1486,8 +1475,7 @@ contained in *this.

constexpr variant& operator=( variant&& r )
-  noexcept( mp_all<std::is_nothrow_move_constructible<T>...,
-    std::is_nothrow_move_assignable<T>...>::value );
+ noexcept( mp_all<std::is_nothrow_move_constructible<T>...>::value );
@@ -1501,17 +1489,7 @@ contained in *this.

Effects:
-
-
    -
  • -

    If index() == j, assigns the value contained in std::move(r) to the -value contained in *this.

    -
  • -
  • -

    Otherwise, equivalent to emplace<j>(get<j>(std::move(r))).

    -
  • -
-
+

emplace<j>(get<j>(std::move(r))).

Returns:
@@ -1552,17 +1530,7 @@ alternative Tj which is the type of the contained value after const
Effects:
-
-
    -
  • -

    If index() == j, assigns std::forward<U>(u) to the value contained in -*this.

    -
  • -
  • -

    Otherwise, equivalent to emplace<j>(std::forward<U>(u)).

    -
  • -
-
+

emplace<j>(std::forward<U>(u)).

Returns:
@@ -1574,8 +1542,7 @@ alternative Tj which is the type of the contained value after const
Remarks:
-

The expression inside noexcept is std::is_nothrow_constructible_v<Tj, U> - && std::is_nothrow_assignable_v<Tj&, U>. +

The expression inside noexcept is std::is_nothrow_constructible_v<Tj, U&&>. This operator does not participate in overload resolution unless

    @@ -1583,7 +1550,7 @@ This operator does not participate in overload resolution unless

    std::is_same_v<std::remove_cvref_t<T>, variant> is false,

  • -

    std::is_constructible_v<Tj, U> && std::is_assignable_v<Tj&, U> is +

    std::is_constructible_v<Tj, U&&> && std::is_assignable_v<Tj&, U&&> is true, and

  • @@ -1623,7 +1590,7 @@ above-mentioned set of imaginary functions) is well-formed.

    Remarks:

    This function shall not participate in overload resolution unless -std::is_constructible_v<U, A…​> is true and U occurs exactly once +std::is_constructible_v<U, A&&…​> is true and U occurs exactly once in T…​.

@@ -1653,7 +1620,7 @@ in T…​.

Remarks:

This function shall not participate in overload resolution unless -std::is_constructible_v<U, std::initializer_list<V>&, A…​> is true +std::is_constructible_v<U, std::initializer_list<V>&, A&&…​> is true and U occurs exactly once in T…​.

@@ -1697,28 +1664,12 @@ value as if using the expression Ti(std::forward<A>(a)…​
Exception Safety:
-

On exception:

-
-
    -
  • -

    If the list of alternatives contains monostate, the contained value -is either unchanged, or monostate{};

    -
  • -
  • -

    Otherwise, if the list of alternatives contains types for which -is_nothrow_default_constructible_v is true, the contained value -is either unchanged, or Tj{}, where Tj is the first such alternative;

    -
  • -
  • -

    Otherwise, the contained value is unchanged.

    -
  • -
-
+

Strong. On exception, the contained value is unchanged.

Remarks:

This function shall not participate in overload resolution unless -std::is_constructible_v<Ti, A…​> is true.

+std::is_constructible_v<Ti, A&&…​> is true.

@@ -1761,28 +1712,12 @@ value as if using the expression Ti(il, std::forward<A>(a)…
Exception Safety:
-

On exception:

-
-
    -
  • -

    If the list of alternatives contains monostate, the contained value -is either unchanged, or monostate{};

    -
  • -
  • -

    Otherwise, if the list of alternatives contains types for which -is_nothrow_default_constructible_v is true, the contained value -is either unchanged, or Tj{}, where Tj is the first such alternative;

    -
  • -
  • -

    Otherwise, the contained value is unchanged.

    -
  • -
-
+

Strong. On exception, the contained value is unchanged.

Remarks:

This function shall not participate in overload resolution unless -std::is_constructible_v<Ti, std::initializer_list<V>&, A…​> is true.

+std::is_constructible_v<Ti, std::initializer_list<V>&, A&&…​> is true.

@@ -1809,6 +1744,18 @@ is either unchanged, or Tj{}, where Tj is the first su +
+ + + + + +
+
Note
+
+This function is provided purely for compatibility with std::variant. +
+
@@ -2519,7 +2466,7 @@ the Boost Software License, Versi