Namespaces
Variants

std:: common_reference_with

From cppreference.net
Défini dans l'en-tête <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 >> ;
(depuis C++20)

Le concept common_reference_with<T, U> spécifie que deux types T et U partagent un type de référence commun (calculé par std::common_reference_t ) vers lequel les deux peuvent être convertis.

Exigences sémantiques

T et U modèlent std :: common_reference_with < T, U > seulement si, étant données des expressions préservant l'égalité t1 , t2 , u1 et u2 telles que decltype ( ( t1 ) ) et decltype ( ( t2 ) ) sont tous deux T et decltype ( ( u1 ) ) et decltype ( ( u2 ) ) sont tous deux U ,

En d'autres termes, la conversion vers le type de référence commun doit préserver l'égalité .

Références

  • Norme C++23 (ISO/IEC 14882:2024) :
  • 18.4.5 Concept common_reference_with [concept.commonref]
  • Norme C++20 (ISO/CEI 14882:2020) :
  • 18.4.5 Concept common_reference_with [concept.commonref]

Voir aussi

détermine le type de référence commun d'un groupe de types
(modèle de classe)
spécifie que deux types partagent un type commun
(concept)
détermine le type commun d'un groupe de types
(modèle de classe)