std:: regular
From cppreference.net
|
Défini dans l'en-tête
<concepts>
|
||
|
template
<
class
T
>
concept regular = std:: semiregular < T > && std:: equality_comparable < T > ; |
(depuis C++20) | |
Le concept
regular
spécifie qu'un type est
régulier
, c'est-à-dire qu'il est copiable, constructible par défaut et comparable par égalité. Il est satisfait par les types qui se comportent de manière similaire aux types intégrés comme
int
, et qui sont comparables avec
==
.
Exemple
Exécuter ce code
#include <concepts> #include <iostream> template<std::regular T> struct Single { T value; friend bool operator==(const Single&, const Single&) = default; }; int main() { Single<int> myInt1{4}; Single<int> myInt2; myInt2 = myInt1; if (myInt1 == myInt2) std::cout << "Equal\n"; std::cout << myInt1.value << ' ' << myInt2.value << '\n'; }
Sortie :
Equal 4 4
Références
- Norme C++23 (ISO/CEI 14882:2024) :
-
- 18.6 Concepts d'objet [concepts.object]
- Norme C++20 (ISO/CEI 14882:2020) :
-
- 18.6 Concepts d'objet [concepts.object]
Voir aussi
|
(C++20)
|
spécifie qu'un objet d'un type peut être copié, déplacé, échangé et construit par défaut
(concept) |