Пространства имён
Варианты
Действия

std::regular

Материал из cppreference.com
< cpp‎ | concepts
 
 
 
Определено в заголовочном файле <concepts>
template<class T>
concept regular =std::semiregular<T>&&std::equality_comparable<T>;
(начиная с C++20)

Концепт regular определяет, что тип является обычным, то есть его можно копировать, конструировать по умолчанию и сравнивать на равенство. Ему соответствуют типы, которые ведут себя аналогично встроенным типам, таким как int, и сравниваемые с ==.

[править]Пример

#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<<"Равны\n";   std::cout<< myInt1.value<<' '<< myInt2.value<<'\n';}

Вывод:

Равны 4 4

[править]Смотрите также

указывает, что объект типа можно копировать, перемещать, менять местами и создавать по умолчанию
(концепт)[править]
close