Espacios de nombres
Variantes
Acciones

std::regular

De cppreference.com
< cpp‎ | concepts
Definido en el archivo de encabezado <concepts>
template <class T>
concept regular = std::semiregular<T> && std::equality_comparable<T>;
(desde C++20)

El concepto regular especifica que un tipo es regular, es decir, es copiable, construible por defecto y comparable en igualdad. Se satisface con tipos que se comportan de manera similar a los tipos integrados como int, y que son comparables con ==.

[editar] Ejemplo

#include <concepts>
#include <iostream>
 
template<std::semiregular T>
struct Sencillo {
    T valor;
	friend bool operator==(const Single&, const Single&) = default;
};
 
int main()
{
    Sencillo<int> miEntero1{4};
    Sencillo<int> miEntero2;
    miEntero2 = miEntero1;
 
	if (myInt1 == myInt2)
        std::cout << "Iguales\n";
 
    std::cout << miEntero1.valor << ' ' << miEntero2.valor << '\n';
}

Salida:

Iguales
4 4

[editar] Véase también

Especifca que un objeto de un tipo puede ser copiado, movido, intercambiado y construido usando el constructor por defecto.
(concepto) [editar]