Sdílet prostřednictvím


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 Repparametru š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 Repparametru š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 minutesjsou , secondsa další
Literály pro pohodlí po dobu hodin, minut a dalších
duration_values struktura
Referenční informace k souborům hlaviček