Namespaces
Variants

operator==, !=, <, <=, >, >= (std::experimental::optional)

From cppreference.net
Определено в заголовочном файле <experimental/optional>
Сравнить два optional объекта
template < class T >
constexpr bool operator == ( const optional < T > & lhs, const optional < T > & rhs ) ;
(1) (библиотека fundamentals TS)
template < class T >
constexpr bool operator ! = ( const optional < T > & lhs, const optional < T > & rhs ) ;
(2) (TS библиотечных основ)
template < class T >
constexpr bool operator < ( const optional < T > & lhs, const optional < T > & rhs ) ;
(3) (техническая спецификация библиотеки fundamentals)
template < class T >
constexpr bool operator <= ( const optional < T > & lhs, const optional < T > & rhs ) ;
(4) (TS библиотечных основ)
template < class T >
constexpr bool operator > ( const optional < T > & lhs, const optional < T > & rhs ) ;
(5) (библиотека fundamentals TS)
template < class T >
constexpr bool operator >= ( const optional < T > & lhs, const optional < T > & rhs ) ;
(6) (библиотека fundamentals TS)
Сравнить объект optional с nullopt
template < class T >
constexpr bool operator == ( const optional < T > & opt, std:: nullopt_t ) noexcept ;
(7) (библиотека fundamentals TS)
template < class T >
constexpr bool operator == ( std:: nullopt_t , const optional < T > & opt ) noexcept ;
(8) (библиотека fundamentals TS)
template < class T >
constexpr bool operator ! = ( const optional < T > & opt, std:: nullopt_t ) noexcept ;
(9) (библиотека fundamentals TS)
template < class T >
constexpr bool operator ! = ( std:: nullopt_t , const optional < T > & opt ) noexcept ;
(10) (библиотека fundamentals TS)
template < class T >
constexpr bool operator < ( const optional < T > & opt, std:: nullopt_t ) noexcept ;
(11) (библиотека fundamentals TS)
template < class T >
constexpr bool operator < ( std:: nullopt_t , const optional < T > & opt ) noexcept ;
(12) (библиотека fundamentals TS)
template < class T >
constexpr bool operator <= ( const optional < T > & opt, std:: nullopt_t ) noexcept ;
(13) (библиотека fundamentals TS)
template < class T >
constexpr bool operator <= ( std:: nullopt_t , const optional < T > & opt ) noexcept ;
(14) (библиотека fundamentals TS)
template < class T >
constexpr bool operator > ( const optional < T > & opt, std:: nullopt_t ) noexcept ;
(15) (библиотека fundamentals TS)
template < class T >
constexpr bool operator > ( std:: nullopt_t , const optional < T > & opt ) noexcept ;
(16) (TS библиотечных основ)
template < class T >
constexpr bool operator >= ( const optional < T > & opt, std:: nullopt_t ) noexcept ;
(17) (библиотека fundamentals TS)
template < class T >
constexpr bool operator >= ( std:: nullopt_t , const optional < T > & opt ) noexcept ;
(18) (TS библиотечных основ)
Сравнить объект optional с T
template < class T >
constexpr bool operator == ( const optional < T > & opt, const T & value ) ;
(19) (техническая спецификация библиотечных основ)
template < class T >
constexpr bool operator == ( const T & value, const optional < T > & opt ) ;
(20) (библиотека fundamentals TS)
template < class T >
constexpr bool operator ! = ( const optional < T > & opt, const T & value ) ;
(21) (библиотека fundamentals TS)
template < class T >
constexpr bool operator ! = ( const T & value, const optional < T > & opt ) ;
(22) (библиотека fundamentals TS)
template < class T >
constexpr bool operator < ( const optional < T > & opt, const T & value ) ;
(23) (библиотека fundamentals TS)
template < class T >
constexpr bool operator < ( const T & value, const optional < T > & opt ) ;
(24) (техническая спецификация библиотечных основ)
template < class T >
constexpr bool operator <= ( const optional < T > & opt, const T & value ) ;
(25) (библиотека fundamentals TS)
template < class T >
constexpr bool operator <= ( const T & value, const optional < T > & opt ) ;
(26) (библиотека fundamentals TS)
template < class T >
constexpr bool operator > ( const optional < T > & opt, const T & value ) ;
(27) (библиотека fundamentals TS)
template < class T >
constexpr bool operator > ( const T & value, const optional < T > & opt ) ;
(28) (библиотека fundamentals TS)
template < class T >
constexpr bool operator >= ( const optional < T > & opt, const T & value ) ;
(29) (библиотека fundamentals TS)
template < class T >
constexpr bool operator >= ( const T & value, const optional < T > & opt ) ;
(30) (библиотека fundamentals TS)

Выполняет операции сравнения для объектов optional .

1-6) Сравнивает два объекта optional , lhs и rhs . Содержимое сравнивается (с использованием operator == для (1,2) и operator < для (3-6) ) только если оба объекта lhs и rhs содержат значения. В противном случае,
  • lhs считается равным rhs тогда и только тогда, когда ни lhs , ни rhs не содержат значения.
  • lhs считается меньшим чем rhs тогда и только тогда, когда rhs содержит значение, а lhs — нет.
7-18) Сравнивает opt с nullopt . Эквивалентно (1-6) при сравнении с optional , не содержащим значения.
19-30) Сравнивает opt со value . Значения сравниваются (с использованием operator == для (19-22) и operator < для (23-30) ) только если opt содержит значение. В противном случае opt считается меньшим чем value .

Параметры

lhs, rhs, opt - объект optional для сравнения
value - значение для сравнения с содержащимся значением
Требования к типам
-
T должен удовлетворять требованиям EqualityComparable для использования перегрузок (1,2).

Возвращаемое значение

1) Если bool ( lhs ) ! = bool ( rhs ) , возвращает false .
В противном случае, если bool ( lhs ) == false (и, следовательно, bool ( rhs ) == false тоже), возвращает true .
В противном случае возвращает * lhs == * rhs .
2) Возвращает ! ( lhs == rhs ) .
3) Если bool ( rhs ) == false возвращает false .
В противном случае, если bool ( lhs ) == false , возвращает true .
В противном случае возвращает * x < * y .
4) Возвращает ! ( rhs < lhs ) .
5) Возвращает rhs < lhs .
6) Возвращает ! ( lhs < rhs ) .
7,8) Возвращает ! opt .
9,10) Возвращает bool ( opt ) .
11) Возвращает false .
12) Возвращает bool ( opt ) .
13) Возвращает ! opt .
14) Возвращает true .
15) Возвращает bool ( opt ) .
16) Возвращает false .
17) Возвращает true .
18) Возвращает ! opt .
19) Возвращает bool ( opt ) ? * opt == value : false .
20) Возвращает bool ( opt ) ? value == * opt : false .
21) Возвращает bool ( opt ) ? ! ( * opt == value ) : true .
22) Возвращает bool ( opt ) ? ! ( value == * opt ) : true .
23) Возвращает bool ( opt ) ? * opt < value : true .
24) Возвращает bool ( opt ) ? value < * opt : false .
25) Возвращает ! ( opt > value ) .
26) Возвращает ! ( value > opt ) .
27) Возвращает bool ( opt ) ? value < * opt : false .
28) Возвращает bool ( opt ) ? * opt < value : true .
29) Возвращает ! ( opt < value ) .
30) Возвращает ! ( value < opt ) .

Исключения

1-6) (нет)
19-30) (нет)