#include <boost/date_time/posix_time/posix_time.hpp>
#pragma comment(lib,"libboost_date_time-vc141-mt-gd-x32-1_69.lib")
//为了支持date_time两个时钟类:second_clcok 和microsec_clock。实现一个模板类basic_ptimer 然后
//用定制时钟类的方式来实现两个分别秒级别和微妙级别的计时器
template<typename Clock = microsec_clock>
class basic_ptimer {
public:
basic_ptimer() {
restart();
}
void restart() {
_start_time = Clock::local_time();
}
void elapsed()const {
cout << Clock::local_time() - _start_time;
}
~basic_ptimer() {
elapsed();
}
private:
ptime _start_time;
};
typedef basic_ptimer<microsec_clock> ptimer;
typedef basic_ptimer<second_clock> sptimer;
int main(){
ptimer t;
}
编译配置宏:
宏DATE_TIME_NO_DAFAULT_CONSTRUCTOR 可以禁止编译器创造出data和ptime的缺省构造函数,强制他们在构造时必须有一个有效的值
宏BOOST_DATE_TIME_OPTIONAL_GREGORIAN_TYPES启用weeks,months,years等日期区间便捷类型,他们在处理日期时很有用,但是他们有时候也会在日期运算时产生非预期结果,如果不想使用他们,就undef这个宏,从而在程序中总使用days保证代码正确性
宏BOOST_DATE_TIME_POSIX_TIME_STD_CONFIG讲启用date_time库更高的时间精确度,由微妙变成纳秒,同时纳秒相关的一些函数和类也会启用,缺省情况下是关闭的