GeezerVison is showing cpprefjp.github.io — std::simd::basic_mask::コンストラクタ - cpprefjp C++日本語リファレンス
最終更新日時:
2026年08月14日 16時35分52秒 (JST)
Akira Takahashi
が更新
履歴
編集
function
<simd>
std::simd:: basic_mask:: コンストラクタ (C++26)
constexpr basic_mask () noexcept = default ; // (1) C++26
constexpr explicit basic_mask ( same_as < value_type > auto x ) noexcept ; // (2) C++26
template < std::size_t UBytes , class UAbi >
constexpr explicit basic_mask ( const basic_mask < UBytes , UAbi >& x ) noexcept ; // (3) C++26
template < class G >
constexpr explicit basic_mask ( G && gen ); // (4) C++26
template < same_as < bitset < size() >> T >
constexpr basic_mask ( const T & b ) noexcept ; // (5) C++26
template < unsigned_integral T >
requires ( ! same_as < T , value_type > )
constexpr explicit basic_mask ( T val ) noexcept ; // (6) C++26
概要
basic_maskオブジェクトを構築する。
(1) : デフォルトコンストラクタ。各要素は値初期化される
(2) : ブロードキャストコンストラクタ。すべての要素を単一の値xで初期化する
(3) : 変換コンストラクタ。要素数が等しい別のbasic_maskから各要素を変換して初期化する
(4) : ジェネレータコンストラクタ。各要素の値を、添字を引数とする関数オブジェクトgenの呼び出し結果で初期化する
(5) : std::bitset の各ビットで対応する要素を初期化する
(6) : 符号なし整数値valの各ビットで対応する要素を初期化する
テンプレートパラメータ制約
(3) : basic_mask<UBytes, UAbi>::size() == size()がtrueであること
(4) : すべてのi(0 <= i < size())について、式gen(std::integral_constant<simd-size-type, i>())が適格 であり、その型がboolであること
(6) : Tがvalue_type(bool)と異なる符号なし整数型であること
効果
(1) : 各要素を値初期化する
(2) : 各要素をxで初期化する
(3) : すべてのi(0 <= i < size())について、i番目の要素をx[i]で初期化する
(4) : すべてのi(0 <= i < size())について、i番目の要素をgen(std::integral_constant<simd-size-type, i>())で初期化する
(5) : すべてのi(0 <= i < size())について、i番目の要素をb[i]で初期化する
(6) : 先頭のM個の要素をvalの対応するビット値で初期化する。ここでMはsize()と、valの型の値表現のビット数のうち小さいほうである。Mがsize()より小さい場合、残りの要素はfalseで初期化される
例外
(4) : genの呼び出しが例外を送出する場合を除いて、投げない
備考
(4) : genは各iにつき正確に1回、iの昇順で呼び出される
例
出力
true true true true
true false true false
false true false true
バージョン
言語
処理系
参照