名前空間
変種
操作

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

From cppreference.com
 
 
 
 
 
ヘッダ<experimental/optional>で定義
2つの optional オブジェクトを比較
template< class T >
constexpr bool operator==( const optional<T>& lhs, const optional<T>& rhs );
(1) (Library Fundamentals TS)
template< class T >
constexpr bool operator!=( const optional<T>& lhs, const optional<T>& rhs );
(2) (Library Fundamentals TS)
template< class T >
constexpr bool operator<( const optional<T>& lhs, const optional<T>& rhs );
(3) (Library Fundamentals TS)
template< class T >
constexpr bool operator<=( const optional<T>& lhs, const optional<T>& rhs );
(4) (Library Fundamentals TS)
template< class T >
constexpr bool operator>( const optional<T>& lhs, const optional<T>& rhs );
(5) (Library Fundamentals TS)
template< class T >
constexpr bool operator>=( const optional<T>& lhs, const optional<T>& rhs );
(6) (Library Fundamentals TS)
optional オブジェクトと nullopt を比較
template< class T >
constexpr bool operator==( const optional<T>& opt, std::nullopt_t ) noexcept;
(7) (Library Fundamentals TS)
template< class T >
constexpr bool operator==( std::nullopt_t, const optional<T>& opt ) noexcept;
(8) (Library Fundamentals TS)
template< class T >
constexpr bool operator!=( const optional<T>& opt, std::nullopt_t ) noexcept;
(9) (Library Fundamentals TS)
template< class T >
constexpr bool operator!=( std::nullopt_t, const optional<T>& opt ) noexcept;
(10) (Library Fundamentals TS)
template< class T >
constexpr bool operator<( const optional<T>& opt, std::nullopt_t ) noexcept;
(11) (Library Fundamentals TS)
template< class T >
constexpr bool operator<( std::nullopt_t, const optional<T>& opt ) noexcept;
(12) (Library Fundamentals TS)
template< class T >
constexpr bool operator<=( const optional<T>& opt, std::nullopt_t ) noexcept;
(13) (Library Fundamentals TS)
template< class T >
constexpr bool operator<=( std::nullopt_t, const optional<T>& opt ) noexcept;
(14) (Library Fundamentals TS)
template< class T >
constexpr bool operator>( const optional<T>& opt, std::nullopt_t ) noexcept;
(15) (Library Fundamentals TS)
template< class T >
constexpr bool operator>( std::nullopt_t, const optional<T>& opt ) noexcept;
(16) (Library Fundamentals TS)
template< class T >
constexpr bool operator>=( const optional<T>& opt, std::nullopt_t ) noexcept;
(17) (Library Fundamentals TS)
template< class T >
constexpr bool operator>=( std::nullopt_t, const optional<T>& opt ) noexcept;
(18) (Library Fundamentals TS)
optional オブジェクトと T を比較
template< class T >
constexpr bool operator==( const optional<T>& opt, const T& value );
(19) (Library Fundamentals TS)
template< class T >
constexpr bool operator==( const T& value, const optional<T>& opt );
(20) (Library Fundamentals TS)
template< class T >
constexpr bool operator!=( const optional<T>& opt, const T& value );
(21) (Library Fundamentals TS)
template< class T >
constexpr bool operator!=( const T& value, const optional<T>& opt );
(22) (Library Fundamentals TS)
template< class T >
constexpr bool operator<( const optional<T>& opt, const T& value );
(23) (Library Fundamentals TS)
template< class T >
constexpr bool operator<( const T& value, const optional<T>& opt );
(24) (Library Fundamentals TS)
template< class T >
constexpr bool operator<=( const optional<T>& opt, const T& value );
(25) (Library Fundamentals TS)
template< class T >
constexpr bool operator<=( const T& value, const optional<T>& opt );
(26) (Library Fundamentals TS)
template< class T >
constexpr bool operator>( const optional<T>& opt, const T& value );
(27) (Library Fundamentals TS)
template< class T >
constexpr bool operator>( const T& value, const optional<T>& opt );
(28) (Library Fundamentals TS)
template< class T >
constexpr bool operator>=( const optional<T>& opt, const T& value );
(29) (Library Fundamentals TS)
template< class T >
constexpr bool operator>=( const T& value, const optional<T>& opt );
(30) (Library Fundamentals TS)

optional オブジェクトに対して比較操作を実行します。

1-6) 2つの optional オブジェクト lhsrhs を比較します。含まれる値は、lhsrhs の両方が値を保持している場合にのみ比較されます((1,2) の場合は operator== を使用し、(3-6) の場合は operator< を使用)。そうでない場合、
  • lhs は、lhsrhs の両方が値を含んでいない場合に限り、rhs等しいと見なされます。
  • lhs は、rhs が値を持ち、lhs が値を持たない場合にのみ、rhs より小さいと見なされます。
7-18) optnullopt と比較します。値を含まない optional と比較する場合の (1-6) と同等です。
19-30) optvalue と比較します。値は、opt が値を保持している場合にのみ比較されます((19-22) の場合は operator== を使用し、(23-30) の場合は operator< を使用)。そうでない場合、optvalue より小さいと見なされます。

[編集] パラメータ

lhs, rhs, opt - 比較する optional オブジェクト
value - 含まれる値と比較する値
型要件
-
オーバーロード(1,2)を使用するには、TEqualityComparableの要件を満たす必要があります。

[編集] 戻り値

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) (なし)
English 日本語 中文(简体) 中文(繁體)