我使用一些代码来报告任务的持续时间,使用std :: chrono :: high_resolution_clock … c 0x的一部分.
我可以使用-gnu 0x标记成功编译eclipse cdt中的c 0x功能.虽然成功编译,编辑器似乎不知道c 0x,也就是说我的代码中显示了任何c 0x特性的错误.我通过将-gnu 0x标志添加到我的项目发现选项来解决.注意:在您执行其他编译并重建索引之前不会显示固定…
-E -P -v -dD “${plugin_state_location}/specs.cpp” -std=gnu++0x
我还有一个编辑器错误,我无法摆脱“符号”duration_cast’无法解决“(我有一个图片,但新用户不能发布图片)
#ifndef _scoped_timer_h_ #define _scoped_timer_h_ #include <iostream> #include <chrono> #include "boost/noncopyable.hpp" #include "boost/format.hpp" using namespace std::chrono; // Utility class for timing and logging rates // (ie "things-per-second"). // NB _any_ destructor invokation (including early return // from a function or exception throw) will trigger an // output which will assume that whatever is being measured // has completed successfully and fully. class scoped_timer : boost::noncopyable { public: scoped_timer( const std::string& what,const std::string& units,double n ) :_what(what),_units(units),_how_many(n),_start(high_resolution_clock::now()) {} ~scoped_timer() { high_resolution_clock::time_point stop = high_resolution_clock::now(); const double t = 1e-9 * duration_cast<nanoseconds>(stop-_start).count(); std::cout << ( boost::format( "%1%: %|2$-5.3g| %|3$|/s (%|4$-5.3g|s)" ) % _what % (_how_many/t) % _units % t ) << std::endl; } private: const std::string _what; const std::string _units; const double _how_many; const high_resolution_clock::time_point _start; }; #endif