23 General utilities library [utilities]
template <class... Types>
constexpr bool operator==(const variant<Types...>& v, const variant<Types...>& w);
Requires:
get<i>(v) == get<i>(w) is a valid expression returning a type that is
convertible to
bool, for all
i. Returns:
If
v.index() != w.index(),
false;
otherwise if
v.valueless_by_exception(),
true;
otherwise
get<i>(v) == get<i>(w) with
i being
v.index(). template <class... Types>
constexpr bool operator!=(const variant<Types...>& v, const variant<Types...>& w);
Requires:
get<i>(v) != get<i>(w) is a valid expression returning a type that is
convertible to
bool, for all
i. Returns:
If
v.index() != w.index(),
true;
otherwise if
v.valueless_by_exception(),
false;
otherwise
get<i>(v) != get<i>(w) with
i being
v.index(). template <class... Types>
constexpr bool operator<(const variant<Types...>& v, const variant<Types...>& w);
Requires:
get<i>(v) < get<i>(w) is a valid expression returning a type that is
convertible to
bool, for all
i. Returns:
If
w.valueless_by_exception(),
false;
otherwise if
v.valueless_by_exception(),
true;
otherwise, if
v.index() < w.index(),
true;
otherwise if
v.index() > w.index(),
false;
otherwise
get<i>(v) < get<i>(w) with
i being
v.index(). template <class... Types>
constexpr bool operator>(const variant<Types...>& v, const variant<Types...>& w);
Requires:
get<i>(v) > get<i>(w) is a valid expression returning a type that is
convertible to
bool, for all
i. Returns:
If
v.valueless_by_exception(),
false;
otherwise if
w.valueless_by_exception(),
true;
otherwise, if
v.index() > w.index(),
true;
otherwise if
v.index() < w.index(),
false;
otherwise
get<i>(v) > get<i>(w) with
i being
v.index(). template <class... Types>
constexpr bool operator<=(const variant<Types...>& v, const variant<Types...>& w);
Requires:
get<i>(v) <= get<i>(w) is a valid expression returning a type that is
convertible to
bool, for all
i. Returns:
If
v.valueless_by_exception(),
true;
otherwise if
w.valueless_by_exception(),
false;
otherwise, if
v.index() < w.index(),
true;
otherwise if
v.index() > w.index(),
false;
otherwise
get<i>(v) <= get<i>(w) with
i being
v.index(). template <class... Types>
constexpr bool operator>=(const variant<Types...>& v, const variant<Types...>& w);
Requires:
get<i>(v) >= get<i>(w) is a valid expression returning a type that is
convertible to
bool, for all
i. Returns:
If
w.valueless_by_exception(),
true;
otherwise if
v.valueless_by_exception(),
false;
otherwise, if
v.index() > w.index(),
true;
otherwise if
v.index() < w.index(),
false;
otherwise
get<i>(v) >= get<i>(w) with
i being
v.index().