Namespaces
Variants

std::chrono:: time_point_cast

From cppreference.net
Défini dans l'en-tête <chrono>
template < class ToDuration, class Clock, class Duration >

std:: chrono :: time_point < Clock, ToDuration >

time_point_cast ( const std:: chrono :: time_point < Clock, Duration > & t ) ;
(depuis C++11)
(jusqu'à C++14)
template < class ToDuration, class Clock, class Duration >

constexpr std:: chrono :: time_point < Clock, ToDuration >

time_point_cast ( const std:: chrono :: time_point < Clock, Duration > & t ) ;
(depuis C++14)

Convertit un std::chrono::time_point d'une durée à une autre.

time_point_cast participe à la résolution de surcharge uniquement si ToDuration est une spécialisation de std::chrono::duration .

Table des matières

Paramètres

t - time_point à convertir

Valeur de retour

std:: chrono :: time_point < Clock, ToDuration > (
std:: chrono :: duration_cast < ToDuration > ( t. time_since_epoch ( ) ) )
.

Exemple

#include <chrono>
#include <iostream>
using namespace std::chrono_literals;
using Clock = std::chrono::high_resolution_clock;
using Ms = std::chrono::milliseconds;
using Sec = std::chrono::seconds;
template<class Duration>
using TimePoint = std::chrono::time_point<Clock, Duration>;
inline void print_ms(const TimePoint<Ms>& time_point)
{
    std::cout << time_point.time_since_epoch().count() << " ms\n";
}
int main()
{
    TimePoint<Sec> time_point_sec{4s};
    // conversion implicite, pas de perte de précision
    TimePoint<Ms> time_point_ms = time_point_sec;
    print_ms(time_point_ms); // 4000 ms
    time_point_ms = TimePoint<Ms>{5756ms};
    print_ms(time_point_ms); // 5756 ms
    // conversion explicite, nécessaire quand une perte de précision peut survenir
    // 5756 tronqué à 5000
    time_point_sec = std::chrono::time_point_cast<Sec>(time_point_ms);
    print_ms(time_point_sec); // 5000 ms
}

Sortie :

4000 ms
5756 ms
5000 ms

Voir aussi

convertit un time_point en un autre, en arrondissant vers le bas
(modèle de fonction)
convertit un time_point en un autre, en arrondissant vers le haut
(modèle de fonction)
convertit un time_point en un autre, en arrondissant au plus proche, les égalités vers le pair
(modèle de fonction)
convertit une duration en une autre, avec un intervalle de tick différent
(modèle de fonction)