Namespaces
Variants

std::chrono:: ceil (std::chrono::duration)

From cppreference.net
Défini dans l'en-tête <chrono>
template < class ToDuration, class Rep, class Period >
constexpr ToDuration ceil ( const std:: chrono :: duration < Rep, Period > & d ) ;
(depuis C++17)

Retourne la plus petite durée t représentable dans ToDuration qui est supérieure ou égale à d .

La fonction ne participe pas à la résolution de surcharge sauf si ToDuration est une spécialisation de std::chrono::duration .

Table des matières

Paramètres

d - durée à convertir

Valeur de retour

d arrondi à une durée de type ToDuration .

Implémentation possible

namespace detail
{
    template<class> inline constexpr bool is_duration_v = false;
    template<class Rep, class Period> inline constexpr bool is_duration_v<
        std::chrono::duration<Rep, Period>> = true;
}
template<class To, class Rep, class Period,
         class = std::enable_if_t<detail::is_duration_v<To>>>
constexpr To ceil(const std::chrono::duration<Rep, Period>& d)
{
    To t = std::chrono::duration_cast<To>(d);
    if (t < d)
        return t + To{1};
    return t;
}

Exemple

#include <chrono>
#include <iostream>
int main()
{
    using namespace std::chrono_literals;
    using Min = std::chrono::minutes;
    std::cout
        << std::showpos
        << "ceil(+2.4min) = " << std::chrono::ceil<Min>(+2.4min).count() << "min\n"
        << "ceil(-2.4min) = " << std::chrono::ceil<Min>(-2.4min).count() << "min\n"
        << "ceil(+0.0min) = " << std::chrono::ceil<Min>(+0.0min).count() << "min\n";
}

Sortie :

ceil(+2.4min) = +3min
ceil(-2.4min) = -2min
ceil(+0.0min) = +0min

Voir aussi

convertit une durée en une autre, avec un intervalle de ticks différent
(modèle de fonction)
convertit une durée en une autre, en arrondissant vers le bas
(modèle de fonction)
convertit une durée en une autre, en arrondissant au plus proche, les égalités vers le pair
(modèle de fonction)
convertit un time_point en un autre, en arrondissant vers le haut
(modèle de fonction)
(C++11) (C++11)
entier le plus proche non inférieur à la valeur donnée
(fonction)