Classe duration
Mesure un intervalle de temps tel qu’une minute, deux heures, dix millisecondes, etc.
Un duration
intervalle de temps est un intervalle de temps, qui correspond au nombre de graduations sur une unité de temps. Par exemple, cinq minutes sont cinq cycles, chaque graduation étant séparée par minute. 42 secondes sont 42 cycles, chaque graduation étant séparée par une seconde.
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>;
Notes
L’argument de modèle Rep
décrit le type utilisé pour contenir le nombre de battements d’horloge dans l’intervalle. L’argument Period
de modèle est une instanciation de ratio
ce qui décrit la taille de l’intervalle que chaque graduation représente.
Membres
Constructeurs
Nom | Description |
---|---|
duration |
Construit un objet duration . |
Functions
Nom | Description |
---|---|
count |
Retourne le nombre de battements d’horloge dans l’intervalle de temps. |
max |
Statique. Retourne la valeur maximale autorisée du paramètre de modèle Rep . |
min |
Statique. Retourne la valeur minimale autorisée du paramètre de modèle Rep . |
zero |
Statique. Retourne Rep(0) . |
Opérateurs
Nom | Description |
---|---|
duration::operator- |
Retourne une copie de l’objet duration avec un nombre de graduations négation. |
duration::operator-- |
Décrémente le nombre de battements stocké. |
duration::operator-= |
Soustrait le nombre de graduations d’un nombre spécifié duration du nombre de cycles stocké. |
duration::operator+ |
Retourne *this . |
duration::operator++ |
Incrémente le nombre de battements stocké. |
duration::operator+= |
Ajoute le nombre de graduations duration d’un spécifié au nombre de cycles stocké. |
duration::operator= |
Affecte une durée à une autre. |
duration::operator*= |
Multiplie le nombre de battements stocké par une valeur spécifiée. |
duration::operator/= |
Divise le nombre de battements stocké par le nombre de battements d’un objet duration spécifié. |
duration::operator%= |
Réduit le nombre de battements stocké modulo une valeur spécifiée. |
Non-membres
Modèles de fonctions
Nom | Description |
---|---|
abs |
Retourne la valeur absolue du duration . |
ceil |
Retourne la plus petite représentation qui duration est supérieure ou égale à la valeur spécifiée duration . |
duration_cast |
Convertit un duration objet en type cible duration spécifié. |
floor |
Retourne la plus grande représentation qui duration est inférieure ou égale à la valeur spécifiée duration . |
from_stream |
Analysez une duration valeur à partir du flux donné à l’aide du format spécifié. |
round |
Arrondit la valeur spécifiée duration à la représentation duration la plus proche dans le type cible. |
Opérateurs
Nom | Description |
---|---|
operator+ |
Après avoir converti les durées ajoutées à leur type commun, retourne un duration nombre de graduations égal à la somme des nombres de cycles convertis. |
operator- |
Après avoir converti les durées soustractées en leur type commun, retourne un duration nombre de graduations égal au nombre de graduations dans le RHS duration soustracté du nombre de graduations dans le LHS duration . |
operator* |
Après avoir converti les durées multipliées en leur type commun, retourne un duration nombre de graduations égal à la multiplication des nombres de cycles convertis. |
operator/ |
Après avoir converti les durées divisées en leur type commun, retourne un duration nombre de graduations égal à la division des nombres de cycles convertis. |
operator% |
Après avoir converti le duration et le diviseur en leur type commun, retourne un duration nombre de graduations égal au reste de la division. |
operator== |
Après avoir converti les duration types comparés à leur type commun, détermine si le nombre de graduations est égal. |
operator!= |
Déterminez si duration ce n’est pas égal à un autre. |
operator< |
Déterminez si l’un duration est inférieur à un autre. |
operator<= |
Déterminez si un duration est inférieur ou égal à un autre. |
operator> |
Déterminez si l’un duration est supérieur à un autre. |
operator>= |
Déterminez si un duration est supérieur ou égal à un autre. |
operator<=> |
Comparez-en un duration par rapport à un autre duration . Les >, >=, <=, <, != opérateurs sont synthétisés par le compilateur. |
operator<< |
Sortie d’un duration flux donné. |
Alias de type pratique
Nom | Description |
---|---|
duration::period |
Synonyme pour le paramètre du modèle Period . |
duration::rep |
Synonyme pour le paramètre du modèle Rep . |
Spécifications
En-tête : <chrono>
Espace de noms : std::chrono
duration::count
Récupère le nombre de battements d'horloge dans l'intervalle de temps.
constexpr Rep count() const;
Valeur retournée
Nombre de battements d'horloge dans l'intervalle de temps.
Constructeur duration::duration
Construit un objet duration
.
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);
Paramètres
Dur
Nombre de battements de la période spécifiée par Period2
.
Period2
Spécialisation de modèle std::ratio
pour représenter la période de battements en unités de secondes.
R
Nombre de battements de la période par défaut.
Rep2
Type arithmétique pour représenter le nombre de battements.
Notes
1) Le constructeur par défaut construit un objet non initialisé. L’initialisation de valeurs à l’aide d’accolades vides initialise un objet qui représente un intervalle de temps de zéro battement d’horloge.
2) Le constructeur de copie effectue une copie au niveau du bit .d
3) Construit un objet qui représente un intervalle de temps de cycles d’horloge R
à l’aide d’une période par défaut de std::ratio<1>
. Pour éviter l’arrondi des nombres de graduations, il s’agit d’une erreur de construction d’un objet de durée à partir d’un type Rep2
de représentation qui peut être traité comme un type à virgule flottante lorsqu’il duration::rep
ne peut pas être traité comme un type à virgule flottante.
4) Construit un objet qui représente un intervalle de temps dont la longueur est l’intervalle de temps spécifié par Dur
. Pour éviter la troncation des nombres de cycles, il s’agit d’une erreur de construction d’un objet de durée à partir d’un autre objet de durée dont le type est incommensurable avec le type cible.
Un type D1
de durée est incommensurable avec un autre type D2
de durée s’il D2
ne peut pas être traité comme un type à virgule flottante et ratio_divide<D1 ::p eriod, D2 ::p eriod> ::type ::d en n’est pas 1.
Sauf s’il Rep2
est implicitement convertible en rep
et treat_as_floating_point<rep>
contient la valeur true ou treat_as_floating_point<Rep2>
contient false, le deuxième constructeur ne participe pas à la résolution de surcharge. Pour plus d’informations, consultez <type_traits>.
Sauf si aucun dépassement de capacité n’est induit dans la conversion et treat_as_floating_point<rep>
a la valeur true, ou les deux ratio_divide<Period2, period>::den
est égal à 1 et treat_as_floating_point<Rep2>
contient false, le troisième constructeur ne participe pas à la résolution de surcharge. Pour plus d’informations, consultez <type_traits>.
Exemple : Créer un 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
Méthode statique qui retourne la limite supérieure des valeurs du type de paramètre de modèle Rep
.
static constexpr duration max();
Valeur retournée
Retourne duration(duration_values<rep>::max())
.
duration::min
Méthode statique qui retourne la limite inférieure des valeurs du type de paramètre de modèle Rep
.
static constexpr duration min();
Valeur retournée
Retourne duration(duration_values<rep>::min())
.
duration::operator-
Retourne une copie de l’objet duration
avec un nombre de graduations négation.
constexpr duration operator-() const;
duration::operator--
Décrémente le nombre de battements stocké.
1) duration& operator--();
2) duration operator--(int);
Valeur retournée
1) Renvoie *this
.
2) Retourne une copie avant *this
la décrémentation.
duration::operator%=
Réduit le nombre de cycles stocké modulo la valeur spécifiée.
1) duration& operator%=(const rep& Div);
2) duration& operator%=(const duration& Div);
Paramètres
Div
1) Div
un nombre de graduations.
2) Div
un duration
qui contient un nombre de graduations.
Valeur retournée
Objet duration
après l’opération modulo.
duration::operator*=
Multiplie le nombre de battements stocké par une valeur spécifiée.
duration& operator*=(const rep& Mult);
Paramètres
Mult
Valeur du type spécifié par duration::rep
.
Valeur retournée
Objet duration
après la multiplication.
duration::operator/=
Divise le nombre de battements stocké par une valeur spécifiée.
duration& operator/=(const rep& Div);
Paramètres
Div
Valeur du type spécifié par duration::rep
.
Valeur retournée
Objet duration
une fois la division terminée.
duration::operator+
Retourne *this
.
constexpr duration operator+() const;
Valeur retournée
*this
duration::operator++
Incrémente le nombre de battements stocké.
1) duration& operator++();
2) duration operator++(int);
Valeur retournée
1) Renvoie *this
.
2) Retourne une copie avant *this
l’incrément.
duration::operator+=
Ajoute le nombre de battements d’un objet duration
spécifié au nombre de battements stocké.
duration& operator+=(const duration& Dur);
Paramètres
Dur
Objet duration
.
Valeur retournée
Objet duration
après l’ajout.
duration::operator-=
Soustrait le nombre de battements d’un objet duration
spécifié du nombre de battements stocké.
duration& operator-=(const duration& Dur);
Paramètres
Dur
Objet duration
.
Valeur retournée
Objet duration
après la soustraction.
duration::zero
Retourne duration(duration_values<rep>::zero())
.
static constexpr duration zero();
duration::operator=
Affecte une durée à une autre.
duration& operator=(const duration &other) = default;
Paramètres
other
Objet duration
à copier.
Valeur retournée
Objet LHS duration
.
Voir aussi
<chrono>
Typesdefs pratiques duration
tels que minutes
, seconds
et bien plus encore
Littéraux pratiques pendant des heures, des minutes et bien plus encore
Structure duration_values
Informations de référence sur les fichiers d’en-tête