Namespaces
Variants

std:: common_reference_with

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

concept common_reference_with =
std:: same_as < std:: common_reference_t < T, U > , std:: common_reference_t < U, T >> &&
std:: convertible_to < T, std:: common_reference_t < T, U >> &&

std:: convertible_to < U, std:: common_reference_t < T, U >> ;
(C++20以降)

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

セマンティック要件

T と U は、以下の条件を満たす場合にのみ std :: common_reference_with < T, U > をモデル化する: 等価性を保存する t1 t2 u1 および u2 が与えられたとき、 decltype ( ( t1 ) ) decltype ( ( t2 ) ) がともに T であり、 decltype ( ( u1 ) ) decltype ( ( u2 ) ) がともに U である場合、

言い換えれば、共通の参照型への変換は equality(等価性)を保存 しなければならない。

参考文献

  • C++23標準 (ISO/IEC 14882:2024):
  • 18.4.5 コンセプト common_reference_with [concept.commonref]
  • C++20 標準 (ISO/IEC 14882:2020):
  • 18.4.5 コンセプト common_reference_with [concept.commonref]

関連項目

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