Třída duration
Měří časové rozpětí, například jednu minutu, dvě hodiny, deset milisekund atd.
A duration
obsahuje časový interval, což je počet záškrtů v časové jednotce. Například pět minut je pět klíštěte, přičemž každé z nich je minuta od sebe. 42 sekund je 42 klíštěte, přičemž každé z nich je od sebe za sekundu.
Syntaxe
template <class Rep, class Period> class duration;
template <class Rep, class Period = ratio<1>> class duration;
template <class Rep, class Period1, class Period2> class duration <duration<Rep, Period1>, Period2>;
Poznámky
Argument Rep
šablony popisuje typ, který slouží k uložení počtu hodin v intervalu. Argument Period
šablony je instance ratio
, která popisuje velikost intervalu, který každé z nich představuje.
Členové
Konstruktory
Název | Popis |
---|---|
duration |
duration Vytvoří objekt. |
Funkce
Název | Popis |
---|---|
count |
Vrátí počet hodin v časovém intervalu. |
max |
Statický. Vrátí maximální povolenou hodnotu parametru Rep šablony . |
min |
Statický. Vrátí nejnižší povolenou hodnotu parametru Rep šablony . |
zero |
Statický. Ve výsledku vrátí hodnotu Rep(0) . |
Operátory
Název | Popis |
---|---|
duration::operator- |
Vrátí kopii objektu duration s negovaným počtem záčtů. |
duration::operator-- |
Sníží počet uložených záznaků. |
duration::operator-= |
Odečte počet záškrtů zadaného duration od uloženého počtu. |
duration::operator+ |
Vrací objekt *this . |
duration::operator++ |
Zvýší počet uložených záčtů. |
duration::operator+= |
Přidá počet záškrtů zadaného duration do uloženého počtu záškrtů. |
duration::operator= |
Přiřadí jednu dobu trvání jiné. |
duration::operator*= |
Vynásobí počet uložených z ticků zadanou hodnotou. |
duration::operator/= |
Vydělí uložený počet záčtů podle počtu záškrtů zadaného duration objektu. |
duration::operator%= |
Zmenšuje uložený počet záčtů modulo zadanou hodnotu. |
Nečlenové
Šablony funkcí
Název | Popis |
---|---|
abs |
Vrátí absolutní hodnotu duration . |
ceil |
Vrátí nejmenší reprezentaci duration , která je větší nebo rovna zadanému duration . |
duration_cast |
Přetypuje duration objekt na zadaný cílový duration typ. |
floor |
Vrátí největší reprezentaci duration , která je menší nebo rovna zadanému duration . |
from_stream |
Parsujte duration z daného datového proudu pomocí zadaného formátu. |
round |
Zaokrouhlí zadanou duration hodnotu na nejbližší reprezentovatelnou duration hodnotu v cílovém typu. |
Operátory
Název | Popis |
---|---|
operator+ |
Po převodu dob trvání, které se přidají do společného typu, vrátí hodnotu duration s počtem záškrtů, který se rovná součtu převedených počtů záčtů. |
operator- |
Po převodu dob odečítání na jejich společný typ vrátí duration hodnotu s počtem záškrtů, který se rovná počtu záškrtů v RHS duration odečítané od počtu záškrtů v LHS duration . |
operator* |
Po převodu doby trvání vynásobené na společný typ vrátí hodnotu duration s počtem záškrtů, který se rovná násobení převedených počtů. |
operator/ |
Po převodu doby trvání rozdělené na společný typ vrátí hodnotu duration s počtem záškrtů, který se rovná dělení převedených počtů. |
operator% |
Po převodu dělitele duration a dělitele na společný typ vrátí duration hodnotu s počtem záškrtů, který se rovná zbytku dělení. |
operator== |
Po převodu duration typů, které se porovnávají s běžným typem, určuje, jestli je počet záškrtů stejný. |
operator!= |
Určete, jestli duration se nerovná jiné. |
operator< |
Určete, jestli je jedna duration menší než jiná. |
operator<= |
Určete, jestli je jedna duration menší nebo rovna jiné. |
operator> |
Určete, jestli je jedna duration větší než jiná. |
operator>= |
Určete, jestli je jedna duration větší nebo rovna jiné. |
operator<=> |
Porovnejte jeden duration proti druhému duration . Operátory >, >=, <=, <, != jsou syntetizovány kompilátorem. |
operator<< |
duration Vypíše do daného datového proudu. |
Aliasy typů pohodlí
Název | Popis |
---|---|
duration::period |
Synonymum pro parametr Period šablony . |
duration::rep |
Synonymum pro parametr Rep šablony . |
Požadavky
Záhlaví: <chrono>
Obor názvů: std::chrono
duration::count
Načte počet hodin v časovém intervalu.
constexpr Rep count() const;
Vrácená hodnota
Počet hodin v časovém intervalu.
duration::duration
konstruktor
duration
Vytvoří objekt.
1) constexpr duration() = default;
2) constexpr duration(const duration& d) = default;
3) template <class Rep2>
constexpr explicit duration(const Rep2& R);
4) template <class Rep2, class Period2>
constexpr duration(const duration<Rep2, Period2>& Dur);
Parametry
Dur
Počet záškrtů období určených parametrem Period2
.
Period2
std::ratio
Specializace šablony, která představuje období zaškrtnutí v jednotkách sekund.
R
Počet záškrtů výchozího období
Rep2
Aritmetický typ představující počet záškrtů.
Poznámky
1) Výchozí konstruktor vytvoří objekt, který není inicializován. Inicializace hodnoty pomocí prázdných závorek inicializuje objekt, který představuje časový interval nulových hodin.
2) Konstruktor kopírování vytvoří bitovou kopii d
.
3) Vytvoří objekt, který představuje časový interval R
hodinových záškrtů pomocí výchozího období std::ratio<1>
. Aby se zabránilo zaokrouhlení počtu záčtů, jedná se o chybu při vytváření objektu doby trvání z typu Rep2
reprezentace, který lze považovat za typ s plovoucí desetinou čárkou, pokud duration::rep
se nedá považovat za typ s plovoucí desetinou čárkou.
4) Vytvoří objekt, který představuje časový interval, jehož délka je časový interval určený Dur
. Pokud se chcete vyhnout zkrácení počtu záčtů, jedná se o chybu při vytváření objektu doby trvání z jiného objektu doby trvání, jehož typ je nekommenovatelný s cílovým typem.
Typ D1
doby trvání je nepřesný s jiným typem D2
doby trvání, pokud D2
nelze považovat za typ s plovoucí desetinnou čárkou a ratio_divide<D1::p eriod, D2::p eriod>::type::d en není 1.
Pokud Rep2
není implicitně konvertibilní na rep
a buď treat_as_floating_point<rep>
obsahuje hodnotu true nebo treat_as_floating_point<Rep2>
obsahuje false, druhý konstruktor se neúčastní rozlišení přetížení. Další informace najdete v tématu <type_traits>.
Není-li v převodu vyvolána žádná přetečení a treat_as_floating_point<rep>
nemá hodnotu true, nebo se rovná ratio_divide<Period2, period>::den
1 a treat_as_floating_point<Rep2>
obsahuje hodnotu false, třetí konstruktor se nebude účastnit rozlišení přetížení. Další informace najdete v tématu <type_traits>.
Příklad: Vytvoření duration
// compile using: /std:c++latest
#include <iostream>
#include <chrono>
using namespace std::chrono;
int main()
{
// create a duration that tracks ticks as 1/10ths of a second
duration<int, std::ratio<1, 10>> tenths{ 5 };
std::cout << tenths << '\n';
hours h{12}; // hours is a convenience duration typedef
auto h2 = 3h; // 'h' is a convenience operator. h2 is a duration<int, std::ratio<3600,1>>
std::cout << h << ":" << h2 << '\n';
return 0;
}
5ds
3h:3h
duration::max
Statická metoda, která vrací horní mez hodnot typu Rep
parametru šablony .
static constexpr duration max();
Vrácená hodnota
Ve výsledku vrátí hodnotu duration(duration_values<rep>::max())
.
duration::min
Statická metoda, která vrací dolní mez pro hodnoty typu Rep
parametru šablony .
static constexpr duration min();
Vrácená hodnota
Ve výsledku vrátí hodnotu duration(duration_values<rep>::min())
.
duration::operator-
Vrátí kopii objektu duration
s negovaným počtem záčtů.
constexpr duration operator-() const;
duration::operator--
Sníží počet uložených záznaků.
1) duration& operator--();
2) duration operator--(int);
Vrácená hodnota
1) Vrátí *this
.
2) Vrátí kopii *this
před dekrementem.
duration::operator%=
Sníží uložený modul počtu záčtů zadanou hodnotu.
1) duration& operator%=(const rep& Div);
2) duration& operator%=(const duration& Div);
Parametry
Div
1) Div
počet záškrtů.
2) Div
a duration
obsahující počet záškrtů.
Vrácená hodnota
Objekt duration
po dokončení operace modulo.
duration::operator*=
Vynásobí počet uložených z ticků zadanou hodnotou.
duration& operator*=(const rep& Mult);
Parametry
Mult
Hodnota typu, který je určen duration::rep
.
Vrácená hodnota
Objekt duration
po dokončení násobení.
duration::operator/=
Vydělí uložený počet záškrtů zadanou hodnotou.
duration& operator/=(const rep& Div);
Parametry
Div
Hodnota typu, který je určen duration::rep
.
Vrácená hodnota
Objekt duration
po dokončení dělení.
duration::operator+
Vrací objekt *this
.
constexpr duration operator+() const;
Vrácená hodnota
*this
duration::operator++
Zvýší počet uložených záčtů.
1) duration& operator++();
2) duration operator++(int);
Vrácená hodnota
1) Vrátí *this
.
2) Vrátí kopii *this
před přírůstkem.
duration::operator+=
Přidá počet z ticků zadaného duration
objektu do uloženého počtu z ticků.
duration& operator+=(const duration& Dur);
Parametry
Dur
Objekt duration
.
Vrácená hodnota
Objekt duration
po přidání je dokončen.
duration::operator-=
Odečte počet záškrtů zadaného duration
objektu od uloženého počtu záškrtů.
duration& operator-=(const duration& Dur);
Parametry
Dur
Objekt duration
.
Vrácená hodnota
Objekt duration
po odečtení se dokončí.
duration::zero
Vrací objekt duration(duration_values<rep>::zero())
.
static constexpr duration zero();
duration::operator=
Přiřadí jednu dobu trvání jiné.
duration& operator=(const duration &other) = default;
Parametry
other
Objekt duration
, který chcete zkopírovat.
Vrácená hodnota
Objekt LHS duration
.
Viz také
<chrono>
Popisy typů pohodlí duration
, jako minutes
jsou , seconds
a další
Literály pro pohodlí po dobu hodin, minut a dalších
duration_values
struktura
Referenční informace k souborům hlaviček