boost date_time模板类封装计时器

#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库更高的时间精确度,由微妙变成纳秒,同时纳秒相关的一些函数和类也会启用,缺省情况下是关闭的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值