我希望能够通过计时库获得纳秒精度,但我无法弄清楚如何将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