升压日期/时间微秒时钟编译不正确 我尝试使用C++ Boost库V1.41的日期/时间设施。注意:这是Linux,不是Windows;g++v4.4.7

升压日期/时间微秒时钟编译不正确 我尝试使用C++ Boost库V1.41的日期/时间设施。注意:这是Linux,不是Windows;g++v4.4.7,c++,linux,boost-date-time,C++,Linux,Boost Date Time,代码: 错误: tom.cpp:208: error: 'template<class time_type> class boost::date_time::microsec_clock' used without template parameters 现在,boost/date\u time/posix\u time/posix\u time\u types.hpp中有这样一个选项: #ifdef BOOST_DATE_TIME_HAS_HIGH_PRECISION_CLOCK

代码:

错误:

tom.cpp:208: error: 'template<class time_type> class boost::date_time::microsec_clock' used without template parameters
现在,boost/date\u time/posix\u time/posix\u time\u types.hpp中有这样一个选项:

#ifdef BOOST_DATE_TIME_HAS_HIGH_PRECISION_CLOCK
  //! A time clock that has a resolution of one microsecond
  /*! \ingroup time_basics
   */
  typedef date_time::microsec_clock<ptime> microsec_clock;
#endif
我的结论是BOOST_DATE_TIME_HAS_HIGH_PRECISION_CLOCK未定义,导致typedef从未发生,导致对microsec_CLOCK的引用看起来需要一个模板参数


据我所知,我正在不折不扣地遵循规则。有什么想法吗?

我现在也有同样的问题。 昨天它工作没有任何问题,但今天我需要删除我所有编译的库并重新编译它们,因为svn损坏问题。自从这个错误发生后

解决这个问题的方法相当简单。 只用

而不是

t1 = (boost::date_time::microsec_clock::local_time());
这会将时间类型预设为posix格式,但不会解决BOOST_DATE_time_HAS_HIGH_PRECISION_CLOCK的初始问题


我希望这对您有所帮助。

您可以升级boost和g++。你的版本太旧了!如果这真的是个问题,那我就倒霉了。我可能并不完全正确,但CentOS提供了其批准的特定级别的软件包:Boost是其最新批准的级别,g++是其最新的4.4。*版本和运营部门对4.4之外的版本持谨慎态度。这不是我能控制的-我已经试过了:-/不,你甚至可以在$HOME/software/目录中安装你自己最新版本的boost和g++。从1.55迁移到1.64后也会遇到同样的问题。包含两个标题后不显示:包含boost/date\u time/posix\u time/posix\u time.hpp包含boost/date\u time/posix\u time/posix\u time\u types.hpp
t1 = (boost::posix_time::microsec_clock::local_time());
t1 = (boost::date_time::microsec_clock::local_time());