close
Espacios de nombres
Variantes

std::literals::chrono_literals::operator""s

De cppreference.com
 
 
Biblioteca de servicios
 
 
 
<tbody> </tbody>
Definido en el archivo de encabezado <chrono>
constexpr chrono::seconds operator "" s(unsigned long long secs);
(1) (desde C++14)
constexpr chrono::duration/*no especificado*/> operator "" s(long double secs);
(2) (desde C++14)

Forma un literal std::chrono::duration que representa segundos.

1) Literal entero, devuelve exactamente std::chrono::seconds(secs).
2) Literal de punto flotante, devuelve una duración de punto flotante equivalente a std::chrono::seconds.

Parámetros

secs - El número de segundos.

Valor de retorno

El literal std::chrono::duration.

Posible implementación

constexpr std::chrono::seconds operator ""s(unsigned long long s)
{
    return std::chrono::seconds(s);
}
constexpr std::chrono::duration<long double> operator ""s(long double s)
{
    return std::chrono::duration<long double>(s);
}

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.

std::string también define operator""s, para representar objetos literales de tipo std::string, pero es un literal de cadena: 10s son diez segundos, pero "10"s es una cadena de dos caracteres.

Ejemplo

#include <iostream>
#include <chrono>
 
int main()
{
    using namespace std::chrono_literals;
    std::chrono::seconds mediominuto = 30s;
    std::cout << "Medio minuto es " << mediominuto.count() << " segundos.\n"
              << "Un minuto y un segundo es " << (1min + 1s).count() << " segundos.\n";
}

Salida:

Medio minuto es 30 segundos.
Un minuto y un segundo es 61 segundos.

Véase también

Construye una nueva duración.
(función miembro pública de std::chrono::duration) [editar]