最近在学习BOOST,我使用教材是BOOST 1.42版本的。而我电脑上装的boost1.31的版本。 谁知道在使用date_time类的几个函数时连接会报错。 在教材里说你如果包含了头文件 gregorian.hpp头文件时,要定义一个 宏 BOOST_DATE_TIME_SOURCE,关键就在于这个宏。
#include <iostream>
#include <string>
#include <vector>
#include <afx.h>
#include <Windows.h>
#include <boost/progress.hpp>
//#define BOOST_DATE_TIME_SOURCE //这个宏貌似目前发现了会影响使用from_simple_string一类的函数。
#include <boost/date_time/gregorian/gregorian.hpp>
using namespace std;
using namespace boost::gregorian;
int main(int argc, char* argv[])
{
/* progress_timer t; //从创建对象开始到程序结束。所经历的时间
progress_display pd(100); //进度条。
for (int i=0;i<100;++i)
{
system("cls");
pd.restart(100);
pd+=(i-0+1);
if(i%2==0) cout<<endl<<i<<"is 偶数"<<endl;
Sleep(100);
}*/
string str("2012-5-12");
date d5(from_simple_string(str));
date d1(1999,5,12);
date d2(d1);
date d3(1999,5,13);
assert(d1==d2);
assert(d1<d3);
date d4(1500,10,30); //error
d1+=days(5);
cout<<to_simple_string(d1)<<endl;
return 0;
}
汗,劝大家一句,学习BOOST版本最好是高版本。 我这个低版本 越学越感觉这个版本很残缺。这一年,这个boost版本里的date还不支持流操作。