我希望能夠通過計時庫獲得納秒精度,但我無法弄清楚如何將std::chrono::high_resolution_clock::now()
轉換爲long int
。我嘗試這樣做:將高分辨率時鐘時間轉換爲整數(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;
}
但是,這給我的錯誤:error C2440: 'initializing' : cannot convert from 'std::chrono::system_clock::time_point' to 'long'
我怎樣才能將其轉換爲一個64位的整型?如果我不能,那麼我不會看到chrono是如何有用的。
如果你讀了[文件](http://en.cppreference.com/w/cpp/chrono/system_clock/now),你會看到「now」函數返回['time_point'](http://en.cppreference.com/w/cpp/chrono/time_point)對象(就像錯誤消息所示)。有關如何打印時間的示例,請參閱'time_point'鏈接。如果你想要幾秒鐘的時間,可以使用例如['to_time_t'](http://en.cppreference.com/w/cpp/chrono/system_clock/to_time_t)。 –
'的優點之一是它是安全的;兩個例子是時間點和持續時間是截然不同的,不可互換的類型和類型跟蹤單位爲你,所以你不能混淆秒爲毫秒等 –
bames53