std::common_reference_with
From cppreference.com
| ヘッダ <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と等しい場合、かつその場合に限ります。
言い換えると、共通参照型への変換は等価性を保持しなければなりません。
[編集] 参照
- C++23標準 (ISO/IEC 14882:2024)
- 18.4.5 Concept
common_reference_with[concept.commonref]
- 18.4.5 Concept
- C++20 standard (ISO/IEC 14882:2020)
- 18.4.5 Concept
common_reference_with[concept.commonref]
- 18.4.5 Concept
[編集] 関連項目
| 型のグループの共通の参照型を決定する (クラステンプレート) | |
| (C++20) |
2つの型が共通の型を共有することを規定する (コンセプト) |
| (C++11) |
型のグループの共通の型を決定する (クラステンプレート) |