std::chrono et cout
J'ai un problème stupide. J'essaie de passer au c++11 en-têtes et un de ceux qui est du chrono. Mais mon problème est que je ne peux pas cout le résultat des opérations en temps. Par exemple:
auto t=std::chrono::high_resolution_clock::now();
cout<<t.time_since_epoch();
donne:
l'initialisation de l'argument 1 de
‘std::basic_ostream<_CharT, _Traits>& std::operator<<(std::basic_ostream<_CharT, _Traits>&&, const _Tp&) [with _CharT = char, _Traits = std::char_traits<char>, _Tp = std::chrono::duration<long int, std::ratio<1l, 1000000l> >]’
... /usr/include/c++/4.6/ostream
cout<<(uint64_t)t.time_since_epoch();
donne invalide cast
Vous devez vous connecter pour publier un commentaire.
Une rapide recherche sur google trouvé cette page: http://en.cppreference.com/w/cpp/chrono/duration, où vous pouvez trouver un exemple de l'impression de la une durée.
Edit: il s'est déplacé à http://en.cppreference.com/w/cpp/chrono/duration/duration_cast
Comme d'autres l'ont noté, vous pouvez appeler le
count()
fonction membre pour obtenir le décompte interne.Je voulais ajouter que je cherche à ajouter un nouvel en-tête:
<chrono_io>
à cette bibliothèque. Il est documenté ici. Le principal avantage de<chrono_io>
plus simplement à l'aide decount()
est que la compilation des unités de temps sont imprimés pour vous. Cette information est bien sûr à obtenir manuellement, mais il est beaucoup plus facile d'avoir de la bibliothèque pour vous.Pour moi, votre exemple:
Sorties:
Le code source pour ce faire est open source et disponible sur le lien ci-dessus. Il se compose de deux en-têtes:
<ratio_io>
et<chrono_io>
, et 1 source:chrono_io.cpp
.Ce code doit être considérée comme expérimentale. Il n'est pas standard, et presque certainement ne sera pas normalisée est. En effet observations préliminaires formulées par confiées au groupe de travail indiquent qu'ils préfèrent la sortie par défaut pour être ce que ce logiciel appelle la "forme courte". Cette alternative de sortie peut être obtenu auprès de:
Et sorties:
stream << object
(c'était la première chose que vous avez essayé). Et il est préférable de s'en tenir à la tradition afin de ne pas confondre tout le monde (sauf si vous souhaitez concevoir un tout nouveau système d'e/S). Comme pour l'en-tête distincte, j'ai peut être parlé en mettant toutes les fonctionnalités de<chrono>
. C'est un génie compromis (augmente le temps de compilation pour de nombreux cas d'utilisation). La normalisation calendrier: Nous sommes très chanceux de voir<chrono>
en C++11. Nous avons presque réussi à C12 estxtime
à la place. La normalisation est beaucoup plus difficile que de conception.Si vous voulez timing dans la résolution de millisecondes, c'est comment vous pouvez le faire:
N'oubliez pas d'ajouter parmi les en-têtes inclus:
Pas sûr de ce que vous attendez de ce casting, peut-être que vous avez voulu
t.time_since_epoch().count()
?