|
|
|
Defined in header <concepts> | ||
template<class T> concept regular=std::semiregular<T>&&std::equality_comparable<T>; | (since C++20) | |
Theregular
concept specifies that a type isregular, that is, it is copyable, default constructible, and equality comparable. It is satisfied by types that behave similarly to built-in types likeint, and that are comparable with==
.
#include <concepts>#include <iostream> template<std::regular T>struct Single{ T value;friendbool 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';}
Output:
Equal4 4
(C++20) | specifies that an object of a type can be copied, moved, swapped, and default constructed (concept)[edit] |