我希望能够使用chrono库获得纳秒精度,但是我无法弄清楚如何将std :: chrono :: high_resolution_clock :: now()转换为long int.我试过这个:
#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; }
但是这给了我错误:错误C2440:’初始化’:不能从’std :: chrono :: system_clock :: time_point’转换为’long’
如何将其转换为64位int?如果我不能,那么我看不到计时码是有用的.
解决方法
以下内容与Linux上的GCC 4.8配合使用:
using namespace std::chrono; auto now = high_resolution_clock::now(); auto nanos = duration_cast<nanoseconds>(now.time_since_epoch()).count(); std::cout << nanos << '\n';