J'essaie d'utiliser la bibliothèque chrono pour les minuteries et les durées.
Je veux pouvoir avoir un Duration frameStart;
(depuis le début de l'application) et un Duration frameDelta;
(temps entre les images)
J'ai besoin de pouvoir obtenir la frameDelta
durée en millisecondes et en flottant secondes.
Comment faites-vous cela avec les nouvelles <chrono>
bibliothèques c ++ 11 ? J'ai travaillé dessus et j'ai cherché sur Google (les informations sont rares). Le code est fortement basé sur des modèles et nécessite des castings et des choses spéciales, je ne peux pas comprendre comment utiliser cette bibliothèque correctement.
count
-la ...duration_cast
Réponses:
Est-ce ce que vous recherchez?
qui pour moi imprime:
la source
auto
surfs
etd
?auto
serait très biend
, car le résultatduration_cast<ms>
estms
. Cependant, forfs
auto
ne serait pas approprié car le résultat det1-t0
a un typehigh_resolution_clock::duration
qui n'est pas nécessairement du même type queduration<float>
. Par exemple, sur mon système, c'est le casduration<long long, nano>
. Il y a donc une conversion implicite de la base intégrale à la basenanoseconds
flottante qui seseconds
produit sur cette ligne, uniquement parce que le type de destination est spécifié avecfsec
.auto fs = std::chrono::duration_cast<fsec>(t1 - t0);
exagéré pédant?Deviner ce que vous demandez. Je suppose qu'en millisecondes, vous recherchez quelque chose qui agit comme suit,
mais utilise à la
std::chrono
place,J'espère que cela t'aides.
la source
Je ne sais pas ce que signifie "millisecondes et secondes flottantes", mais cela devrait vous donner une idée:
la source
count
comme unfloat
?Dans le style AAA en utilisant l' idiome d'initialisation explicitement typé :
la source