operator==, !=, <, <=, >, >=(std::variant)

来自cppreference.com
< cpp‎ | utility‎ | variant
 
 
 
 
定义于头文件 <variant>
template <class... Types>
constexpr bool operator==(const std::variant<Types...>& v, const std::variant<Types...>& w);
(1) (C++17 起)
template <class... Types>
constexpr bool operator!=(const std::variant<Types...>& v, const std::variant<Types...>& w);
(2) (C++17 起)
template <class... Types>
constexpr bool operator<(const std::variant<Types...>& v, const std::variant<Types...>& w);
(3) (C++17 起)
template <class... Types>
constexpr bool operator>(const std::variant<Types...>& v, const std::variant<Types...>& w);
(4) (C++17 起)
template <class... Types>
constexpr bool operator<=(const std::variant<Types...>& v, const std::variant<Types...>& w);
(5) (C++17 起)
template <class... Types>
constexpr bool operator>=(const std::variant<Types...>& v, const std::variant<Types...>& w);
(6) (C++17 起)
1) variant 的相等运算符:
  • v.index() != w.index() ,则返回 false
  • 否则,若 v.valueless_by_exception() ,则返回 true
  • 否则返回 std::get<v.index()>(v) == std::get<v.index()>(w) 。若对于任何一个 istd::get<i>(v) == std::get<i>(w) 不是返回值能转换为 bool 的合法表达式,则行为未定义。
2) variant 的不相等运算符:
  • v.index() != w.index() ,则返回 true
  • 否则,若 v.valueless_by_exception() ,则返回 false
  • 否则返回 std::get<v.index()>(v) != std::get<v.index()>(w) 。若对于任何一个 istd::get<i>(v) != std::get<i>(w) 不是返回值能转换为 bool 的合法表达式,则行为未定义。
3) variant 的小于运算符:
  • w.valueless_by_exception() ,则返回 false
  • 否则,若 v.valueless_by_exception() ,则返回 true
  • 否则,若 v.index() < w.index() ,则返回true
  • 否则,若 v.index() > w.index() ,则返回false
  • 否则返回 std::get<v.index()>(v) < std::get<v.index()>(w) 。若对于任何一个 istd::get<i>(v) < std::get<i>(w) 不是返回值能转换为 bool 的合法表达式,则行为未定义。
4) variant 的大于运算符:
  • v.valueless_by_exception() ,则返回 false
  • 否则,若 w.valueless_by_exception() ,则返回 true
  • 否则,若 v.index() > w.index() ,则返回 true
  • 否则,若 v.index() < w.index() ,则返回 false
  • 否则返回 std::get<v.index()>(v) > std::get<v.index()>(w) 。若对于任何一个 istd::get<i>(v) > std::get<i>(w) 不是返回值能转换为 bool 的合法表达式,则行为未定义。
5) variant 的小于或等于运算符:
  • v.valueless_by_exception() ,则返回 true
  • 否则,若 w.valueless_by_exception() ,则返回 false
  • 否则,若 v.index() < w.index() ,则返回true
  • 否则,若 v.index() > w.index() ,则返回false
  • 否则返回 std::get<v.index()>(v) <= std::get<v.index()>(w) 。若对于任何一个 istd::get<i>(v) <= std::get<i>(w) 不是返回值能转换为 bool 的合法表达式,则行为未定义。
6) variant 的大于或等于运算符:
  • w.valueless_by_exception() ,则返回 true
  • 否则,若 v.valueless_by_exception() ,则返回 false
  • 否则,若 v.index() > w.index() ,则返回 true
  • 否则,若 v.index() < w.index() ,则返回 false
  • 否则返回 std::get<v.index()>(v) >= std::get<v.index()>(w) 。若对于任何一个 istd::get<i>(v) >= std::get<i>(w) 不是返回值能转换为 bool 的合法表达式,则行为未定义。

目录

[编辑] 参数

v,w - 要比较的 variant

[编辑] 返回值

比较的布尔结果,描述于上。

[编辑] 示例

[编辑] 参阅

比较 optional 对象
(函数模板) [编辑]