std::bit_not
From cppreference.com
< cpp | utility | functional
| ヘッダ <functional> で定義 |
||
| template< class T = void > struct bit_not; |
(C++14以降) | |
ビットごとのNOTを実行するための関数オブジェクト。型Tに対して実質的にoperator~を呼び出します。
目次 |
[編集] 特殊化
標準ライブラリは、Tが指定されていない場合にstd::bit_notの特殊化を提供します。これにより、パラメータの型と戻り値の型は推論されます。
| (C++14) |
パラメータと戻り値の型を推論して~xを実装する関数オブジェクト (クラステンプレート特殊化) |
[編集] メンバー型
| 型 | 定義 |
result_type (C++17で非推奨)(C++20で削除) |
T
|
argument_type (C++17で非推奨)(C++20で削除) |
T
|
[編集] メンバ関数
| operator() (C++14) |
引数のビットごとのNOTの結果を返します。 (public member function) |
std::bit_not::operator()
| constexpr T operator()( const T& arg ) const; |
(C++14以降) | |
argのビットごとのNOTの結果を返します。
パラメータ
| arg | - | ビットごとのNOTを計算する値 |
戻り値
~argの結果。
[編集] 例外
実装定義の例外をスローする場合があります。
可能な実装
constexpr T operator()(const T& arg) const { return ~arg; } |
[編集] 注釈
std::bit_notはC++11後提案N3421によって追加されましたが、多くの実装では、その透明な特殊化std::bit_not<>を除き、LWG issue 660の解決策の一部として扱われており、したがってC++98/03モードでも利用可能です。