std::chrono::is_clock
De cppreference.com
<tbody>
</tbody>
| Definido en el archivo de encabezado <chrono>
|
||
template< class T > struct is_clock; |
(desde C++20) | |
Si T cumple con los requerimientos de Clock, proporciona la constante miembro value equal true. Para cualquier otro tipo, value es false.
A los efectos de este rasgo, no se especifica hasta qué punto una implementación determina que un tipo no puede cumplir con los requerimientos de Clock, excepto que un parámetro T mínimo no calificará como Clock a menos que cumpla con todas las condiciones siguientes:
- Los id-calificadoss
T::rep,T::period,T::duration, yT::time_pointson todos válidos y cada uno denota un tipo; - Las expresiones
T::is_steadyyT::now()están bien formadas cuando se tratan como un operando no evaluado.
El comportamiento de un programa que añade especializaciones para is_clock o is_clock_v no está definido.
Parámetros de plantilla
| T | - | Un tipo a comprobar. |
Plantilla de variable auxiliar
<tbody> </tbody> template< class T > inline constexpr bool is_clock_v = is_clock<T>::value; |
(desde C++20) | |
Heredado de std::integral_constant
Constantes miembro
value [estático] |
true si T cumple con los requerimientos de Clock , de lo contrario false. (constante miembro pública estática) |
Funciones miembro
operator bool |
Convierte el objeto a bool, devuelve value. (función miembro pública) |
operator() (C++14) |
Devuelve value. (función miembro pública) |
Tipos miembro
| Tipo | Definición |
value_type
|
bool
|
type
|
std::integral_constant<bool, value>
|
Posible implementación
template<class>
struct is_clock : std::false_type {};
template<class T>
requires
requires {
typename T::rep;
typename T::period;
typename T::duration;
typename T::time_point;
T::is_steady;
T::now();
}
struct is_clock<T> : std::true_type {};
|