std::literals::chrono_literals::operator""ns
| Definido en el archivo de encabezado <chrono>
|
||
constexpr std::chrono::nanoseconds operator "" ns(unsigned long long nsec); |
(1) | (desde C++14) |
constexpr std::chrono::duration/*no especificado*/, std::nano> operator "" ns(long double nsec); |
(2) | (desde C++14) |
Forma un literal std::chrono::duration que representa nanosegundos.
std::chrono::nanoseconds(nsec).Parámetros
| nsec | - | El número de nanosegundos. |
Valor de retorno
El literal std::chrono::duration.
Posible implementación
constexpr std::chrono::nanoseconds operator ""ns(unsigned long long ns)
{
return std::chrono::nanoseconds(ns);
}
constexpr std::chrono::duration<long double, std::nano> operator ""ns(long double ns)
{
return std::chrono::duration<long double, std::nano>(ns);
}
|
Notas
Estos operadores están declarados en el espacio de nombres std::literals::chrono_literals, donde tanto literals como chrono_literals son espacios de nombres en línea. El acceso a estos operadores se puede obtener con using namespace std::literals, using namespace std::chrono_literals, y using namespace std::literals::chrono_literals.
Además, dentro del espacio de nombres std::chrono, la directiva using namespace literals::chrono_literals; se suministra por la biblioteca estándar, de modo que si un programador utiliza using namespace std::chrono; para obtener acceso a las clases en la biblioteca chrono, los operadores de literal correspondientes también se vuelven visibles.
Ejemplo
#include <iostream>
#include <chrono>
int main()
{
using namespace std::chrono_literals;
auto d1 = 250ns;
std::chrono::nanoseconds d2 = 1us;
std::cout << "250ns = " << d1.count() << " nanosegundos\n"
<< "1us = " << d2.count() << " nanosegundos\n";
}
Salida:
250ns = 250 nanosegundos
1us = 1000 nanosegundos
Véase también
| Construye una nueva duración. (función miembro pública de std::chrono::duration)
|