Namensräume
Varianten
Aktionen

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

Von cppreference.com
< cpp‎ | chrono‎ | duration
 
 
 
 
Definiert in Header <chrono>
template< class ToDuration, class Rep, class Period >
constexpr ToDuration ceil( const std::chrono::duration<Rep, Period>& d );
(seit C++17)

Gibt die kleinste Dauer t zurück, die in ToDuration darstellbar ist und größer oder gleich d ist.

Die Funktion nimmt nicht an der Überladungsauflösung teil, es sei denn, ToDuration ist eine Spezialisierung von std::chrono::duration.

Inhalt

[bearbeiten] Parameter

d - zu konvertierende Dauer

[bearbeiten] Rückgabewert

d aufgerundet auf eine Dauer vom Typ ToDuration.

[bearbeiten] Mögliche Implementierung

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;
}

[bearbeiten] Beispiel

#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";
}

Ausgabe

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

[bearbeiten] Siehe auch

konvertiert eine Dauer in eine andere mit einem anderen Tick-Intervall
(Funktionstemplate) [edit]
konvertiert eine Dauer in eine andere und rundet ab
(Funktionstemplate) [edit]
konvertiert eine Dauer in eine andere, rundet auf die nächste, bei Gleichstand zu geraden Zahlen
(Funktionstemplate) [edit]
konvertiert einen Zeitpunkt in einen anderen und rundet auf
(Funktionstemplate) [edit]
(C++11)(C++11)
nächste ganze Zahl, die nicht kleiner ist als der gegebene Wert
(Funktion) [bearbeiten]