std:: common_with
|
定義済みヘッダー
<concepts>
|
||
|
template
<
class
T,
class
U
>
concept common_with
=
|
(C++20以降) | |
common_with<T, U>
コンセプトは、2つの型
T
と
U
が共通の型(
std::common_type_t
によって計算される)を共有し、両方がその型に変換可能であることを指定します。
目次 |
セマンティック要件
TとUは
std
::
common_with
<
T, U
>
をモデルするのは、以下の条件が満たされる場合に限る:
等価性を保存する
式
t1
、
t2
、
u1
および
u2
が与えられたとき、
decltype
(
(
t1
)
)
と
decltype
(
(
t2
)
)
がともに
T
であり、
decltype
(
(
u1
)
)
と
decltype
(
(
u2
)
)
がともに
U
である場合、
-
std::
common_type_t
<
T, U
>
(
t1
)
が
std::
common_type_t
<
T, U
>
(
t2
)
と等しいのは、
t1がt2と等しい場合に限り、かつ -
std::
common_type_t
<
T, U
>
(
u1
)
が
std::
common_type_t
<
T, U
>
(
u2
)
と等しいのは、
u1がu2と等しい場合に限る。
言い換えれば、共通の型への変換は equality preservation を満たさなければならない。
等価性保存
標準ライブラリコンセプトの requires 式 で宣言された式は、 equality-preserving であることが要求されます(特に明記されている場合を除く)。
参考文献
- C++23規格 (ISO/IEC 14882:2024):
-
-
18.4.6 コンセプト
common_with[concept.common]
-
18.4.6 コンセプト
- C++20標準 (ISO/IEC 14882:2020):
-
-
18.4.6 コンセプト
common_with[concept.common]
-
18.4.6 コンセプト
関連項目
|
(C++11)
|
型のグループの共通型を決定する
(クラステンプレート) |
|
型のグループの共通参照型を決定する
(クラステンプレート) |
|
|
(C++20)
|
2つの型が共通の参照型を共有することを指定する
(コンセプト) |