我有一个比较愚蠢的问题。我尝试切换到C++11头文件之一:chrono。但是我的问题是我无法打印时间运算结果,例如:
auto t=std::chrono::high_resolution_clock::now();
cout<<t.time_since_epoch();
给出:
说明:这是一个关于C++编程语言中的一条错误信息,可能和标准库文件有关,具体原因需要进一步调试分析。初始化第1个参数:std::basic_ostream<_CharT, _Traits>& std::operator<<(std::basic_ostream<_CharT, _Traits>&&, const _Tp&) [使用_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();
出现无效强制转换
stream << object
打印东西是传统的做法(这也是你尝试的第一件事)。最好坚持传统,以免混淆所有人(除非你想设计一个全新的I/O系统)。至于单独的头文件,我可以考虑将所有功能放入<chrono>
中。这是一种工程权衡(会增加许多用例的编译时间)。标准化进度:我们非常幸运能在C++11中看到<chrono>
。我们几乎得到了C12的xtime
。标准化比设计要困难得多。 - Howard Hinnant