std:: common_reference_with
|
ヘッダーで定義
<concepts>
|
||
|
template
<
class
T,
class
U
>
concept common_reference_with
=
|
(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
である場合、
-
std::
common_reference_t
<
T, U
>
(
t1
)
が
std::
common_reference_t
<
T, U
>
(
t2
)
と等しいのは、
t1がt2と等しい場合に限り、かつ -
std::
common_reference_t
<
T, U
>
(
u1
)
が
std::
common_reference_t
<
T, U
>
(
u2
)
と等しいのは、
u1がu2と等しい場合に限る。
言い換えれば、共通の参照型への変換は equality(等価性)を保存 しなければならない。
参考文献
- C++23標準 (ISO/IEC 14882:2024):
-
-
18.4.5 コンセプト
common_reference_with[concept.commonref]
-
18.4.5 コンセプト
- C++20 標準 (ISO/IEC 14882:2020):
-
-
18.4.5 コンセプト
common_reference_with[concept.commonref]
-
18.4.5 コンセプト
関連項目
|
型のグループの共通参照型を決定する
(クラステンプレート) |
|
|
(C++20)
|
2つの型が共通の型を共有することを指定する
(コンセプト) |
|
(C++11)
|
型のグループの共通型を決定する
(クラステンプレート) |