std:: incrementable_traits
|
Definido en el encabezado
<iterator>
|
||
|
template
<
class
I
>
struct incrementable_traits { } ; |
(1) | (desde C++20) |
|
template
<
class
T
>
requires
std::
is_object_v
<
T
>
|
(2) | (desde C++20) |
|
template
<
class
T
>
struct
incrementable_traits
<
const
T
>
|
(3) | (desde C++20) |
|
template
<
class
T
>
requires requires
{
typename
T
::
difference_type
;
}
|
(4) | (desde C++20) |
|
template
<
class
T
>
requires
(
!
requires
{
typename
T
::
difference_type
;
}
)
&&
|
(5) | (desde C++20) |
Calcula el tipo de diferencia asociado del tipo
I
, si existe. Un programa puede especializar
incrementable_traits
para un
tipo definido por el programa
.
difference_type
.
difference_type
igual que
T::difference_type
.
difference_type
pero sí admiten la resta.
difference_type
igual a
std::
make_signed_t
<
decltype
(
std::
declval
<
T
>
(
)
-
std::
declval
<
T
>
(
)
)
>
. La regla de variaciones de expresión implícita (ver abajo) se aplica a la expresión
a
-
b
.
Variaciones de expresión implícita
Una requires expresión que utiliza una expresión que no es modificadora para algún operando constante lvalue también requiere variaciones de expresión implícitas .
Ejemplo
|
Esta sección está incompleta
Razón: sin ejemplo |
Véase también
|
(C++20)
|
especifica que un tipo
semiregular
puede incrementarse con operadores de preincremento y postincremento
(concepto) |
|
(C++20)
(C++20)
(C++23)
(C++20)
(C++20)
(C++20)
|
calcula los tipos asociados de un iterador
(plantilla de alias) |
|
proporciona una interfaz uniforme para las propiedades de un iterador
(plantilla de clase) |