template<class T>
concept in-object =
is-mdspan<T> && (T::rank() == 1 || T::rank() == 2);
template<class T>
concept out-object =
is-mdspan<T> && (T::rank() == 1 || T::rank() == 2) &&
is_assignable_v<typename T::reference, typename T::element_type> && T::is_always_unique();
template<class T>
concept inout-object =
is-mdspan<T> && (T::rank() == 1 || T::rank() == 2) &&
is_assignable_v<typename T::reference, typename T::element_type> && T::is_always_unique();
概要
型T
がベクトル(1次元mdspan
)または行列(2次元mdspan
)であることを表す、説明専用のコンセプトである。
in-object
: 入力パラメータを表す。アルゴリズム内でmdspan
要素が更新されることはない。out-object
: 出力パラメータを表す。演算結果の書き出しが行われる。inout-object
: 入出力パラメータを表す。要素の読み取りと演算結果の書き出しが行われる。
関数仕様で明示されない限り、out-object
およびinout-object
で制約されるmdspan
型引数は、同関数の他mdspan
引数のエイリアスであってはならない。
バージョン
言語
- C++26