Namespaces
Variants

std::experimental::ranges:: CommonReference

From cppreference.net
ヘッダーで定義 <experimental/ranges/concepts>
template < class T, class U >

concept bool CommonReference =
Same < ranges:: common_reference_t < T, U > , ranges:: common_reference_t < U, T >> &&
ConvertibleTo < T, ranges:: common_reference_t < T, U >> &&

ConvertibleTo < U, ranges:: common_reference_t < T, U >> ;
(ranges TS)

CommonReference<T, U> コンセプトは、2つの型 T U が共通の参照型( ranges::common_reference_t によって計算される)を共有し、両方がその型に変換可能であることを指定します。

CommonReference<T, U> が満たされるのは、式 t および u が与えられ、 decltype ( ( t ) ) T であり、 decltype ( ( u ) ) U である場合に限ります。

言い換えれば、共通参照型への変換は、元の式の等価性保存特性を変更してはなりません。

等価性保存

式は、等しい入力が与えられた場合に等しい出力をもたらす場合、 equality preserving であると言います。

  • 式への入力は、そのオペランドで構成されます。
  • 式からの出力は、その結果と、式によって変更されたすべてのオペランド(存在する場合)で構成されます。

等価性を保持することが要求されるすべての式は、さらに stable(安定性) が要求されます:同じ入力オブジェクトに対するそのような式の2回の評価は、それらの入力オブジェクトに対する明示的な変更がない限り、等しい出力を持たなければなりません。

関連項目

型の集合の共通参照型を決定する
(クラステンプレート)
2つの型が共通の型を共有することを指定する
(コンセプト)
型の集合の共通型を決定する
(クラステンプレート)