最終更新日時(UTC):
が更新

履歴 編集

concept
<linalg>

in-vector, out-vector, inout-vector(C++26)

template<class T>
concept in-vector =
  is-mdspan<T> && T::rank() == 1;

template<class T>
concept out-vector =
  is-mdspan<T> && T::rank() == 1 &&
  is_assignable_v<typename T::reference, typename T::element_type> && T::is_always_unique();

template<class T>
concept inout-vector =
  is-mdspan<T> && T::rank() == 1 &&
  is_assignable_v<typename T::reference, typename T::element_type> && T::is_always_unique();

概要

Tがベクトル(1次元mdspan)であることを表す、説明専用のコンセプトである。

  • in-vector : 入力パラメータを表す。アルゴリズム内でmdspan要素が更新されることはない。
  • out-vector : 出力パラメータを表す。演算結果の書き出しが行われる。
  • inout-vector : 入出力パラメータを表す。要素の読み取りと演算結果の書き出しが行われる。

関数仕様で明示されない限り、out-vectorおよびinout-vectorで制約されるmdspan型引数は、同関数の他mdspan引数のエイリアスであってはならない。

バージョン

言語

  • C++26

参照