Chcę być w stanie uzyskać dokładność nanosekund z biblioteką chrono, ale nie mogę wymyślić, jak przekonwertować std::chrono::high_resolution_clock::now()
na long int
. Próbowałem to:Konwersja czasu zegara wysokiej rozdzielczości na liczbę całkowitą (Chrono)
#include <chrono>
#include <iostream>
using namespace std;
int main() {
typedef std::chrono::high_resolution_clock Clock;
long int val = Clock::now();
cout << val << endl;
cin.ignore();
return 0;
}
Ale to dało mi błąd: error C2440: 'initializing' : cannot convert from 'std::chrono::system_clock::time_point' to 'long'
Jak mogę przekonwertować go do 64 bitowego int? Jeśli nie mogę, nie widzę, w jaki sposób chrono jest użyteczne.
Jeśli czytasz [dokumentacja] (http://en.cppreference.com/w/cpp/chrono/system_clock/now) będzie zobaczyć funkcja 'now' zwraca obiekt [' time_point'] (http://en.cppreference.com/w/cpp/chrono/time_point) (dokładnie tak, jak mówi komunikat o błędzie). Zobacz link 'time_point' dla przykładu, jak wydrukować czas. Jeśli chcesz czas w sekundach, użyj np. ['to_time_t'] (http://en.cppreference.com/w/cpp/chrono/system_clock/to_time_t). –
Jedną z zalet "" jest bezpieczeństwo typu; dwa przykłady to takie, że punkty czasowe i czas trwania są odrębnymi, niezmiennymi typami, a typy śledzą jednostki dla ciebie, więc nie możesz mylić sekund na milisekundy, itd. –
bames53