namespace std::simd {
template<class BinaryOperation, class T>
concept reduction-binary-operation =
requires (const BinaryOperation binary_op, const vec<T, 1> v) {
{ binary_op(v, v) } -> same_as<vec<T, 1>>;
};
}
概要
reduction-binary-operationは、型BinaryOperationが、要素型Tのデータ並列型に対するreduceの二項演算として使用できることを表す説明専用のコンセプトである。
vec<T, 1>の2つの値で呼び出せて、結果が同じvec<T, 1>型になる場合に、構文的な要件を満たす。
モデル
BinaryOperationとTがreduction-binary-operation<BinaryOperation, T>のモデルとなるのは、上記の構文的要件に加えて、次を満たす場合に限る。
BinaryOperationが要素ごとの二項演算であり、かつ可換であることBinaryOperationのオブジェクトを、未規定のABIタグAbiをもつbasic_vec<T, Abi>型の2引数で呼び出せて、basic_vec<T, Abi>を返すこと
バージョン
言語
- C++26
関連項目
参照
- P1928R15 std::simd — merge data-parallel types from the Parallelism TS 2
- C++26で
std::simdライブラリが追加された
- C++26で