std::chrono::duration<Rep,Period>:: operator=
From cppreference.net
C++
Date and time library
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
std::chrono::duration
| Member functions | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Non-member functions | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Helper classes | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
duration
&
operator
=
(
const
duration
&
other
)
=
default
;
|
(depuis C++11) | |
Assigne le contenu d'une
duration
à une autre.
Paramètres
| autre | - |
duration
à copier
|
Exemple
Exécuter ce code
#include <chrono> #include <iostream> int main() { using namespace std::chrono_literals; std::chrono::hours z_hours{}; std::chrono::seconds z_seconds{}; z_hours = 2h; // ok, aucune conversion nécessaire z_seconds = z_hours; // D'abord, le constructeur de conversion est utilisé pour créer un objet temporaire du type de `lhs`. // Ce constructeur invoque implicitement la fonction de cast // chrono::duration_cast<std::seconds>(z_hours). Le `rhs` résultant // a le même type que `lhs`, et l'`operator=` effectue finalement l'affectation. std::cout << "hours: " << z_hours.count() << '\n'; std::cout << "seconds: " << z_seconds.count() << '\n'; z_seconds -= 42s; // z_hours = z_seconds; // erreur de compilation (ce qui est bon) : types incompatibles. // La bibliothèque évite le cast implicite pour prévenir une perte de précision potentielle. z_hours = std::chrono::duration_cast<std::chrono::hours>(z_seconds); // ok z_hours = std::chrono::duration_cast<decltype(z_hours)>(z_seconds); // idem std::cout << "hours: " << z_hours.count() << '\n'; std::cout << "seconds: " << z_seconds.count() << '\n'; std::chrono::duration<double, std::ratio<3600>> z2_hours{}; z2_hours = z_seconds; // ok, pas de troncation, cast implicite std::cout << "hours: " << z2_hours.count() << '\n'; }
Sortie :
hours: 2 seconds: 7200 hours: 1 seconds: 7158 hours: 1.98833
Voir aussi
|
construit une nouvelle durée
(fonction membre publique) |