Espacios de nombres
Variantes
Acciones

std::chrono::duration::operator=

De cppreference.com
< cpp‎ | chrono‎ | duration
 
 
Biblioteca de servicios
 
 
 
duration& operator=( const duration &other ) = default;
(desde C++11)

Asigna el contenido de un objeto std::duration a otro.

[editar] Parámetros

other - Objeto duration del que copiar.

[editar] Ejemplo

#include <iostream>
#include <chrono>
 
int main()
{
    using namespace std::chrono_literals;
 
    std::chrono::hours z_hours{};
    std::chrono::seconds z_seconds{};
 
    z_hours = 2h; // de acuerdo, no se necesita conversión
 
    z_seconds = z_hours;
      // Primero, el ctor de conversión se usa para crear un objeto temporal del tipo
      // de `lhs`. Este ctor implícitamente invoca la función de conversión
      // chrono::duration_cast<std::seconds>(z_hours). El valor `rhs` resultante
      // tiene el mismo tipo que `lhs`, y finalmente `operator=` ejecuta la asignación.
 
    std::cout << "horas: " << z_hours.count() << '\n';
    std::cout << "segundos: " << z_seconds.count() << '\n';
 
    z_seconds -= 42s;
 
//  z_hours = z_seconds; // ERROR en tiempo de compilación (que es bueno):
                         // tipos incompatibles.
    // La biblioteca evita la conversión implícita para evitar una posible pérdida de precisión.
 
    z_hours = std::chrono::duration_cast<std::chrono::hours>(z_seconds); // de acuerdo
    z_hours = std::chrono::duration_cast<decltype(z_hours)>(z_seconds); // ditto
 
    std::cout << "horas: " << z_hours.count() << '\n';
    std::cout << "segundos: " << z_seconds.count() << '\n';
 
    std::chrono::duration<double, std::ratio<3600>> z2_hours{};
 
    z2_hours = z_seconds; // de acuerdo, no hay truncamiento, conversión implícita
 
    std::cout << "horas: " << z2_hours.count() << '\n';
}

Salida:

horas: 2
segundos: 7200
horas: 1
segundos: 7158
horas: 1.98833

[editar] Véase también

Construye una nueva duración.
(función miembro pública) [editar]