Я пытаюсь использовать возможности даты / времени библиотеки C ++ Boost v1.41. (Заметкаэто Linux, а не Windows; g ++ v4.4.7)
Код:
#include <boost/date_time/posix_time/posix_time.hpp>
using boost::posix_time::ptime;
using boost::date_time::microsec_clock;
:
t1 = (boost::date_time::microsec_clock::local_time()); // line 208
Ошибка:
tom.cpp:208: error: 'template<class time_type> class boost::date_time::microsec_clock' used without template parameters
Теперь есть это в boost / date_time / posix_time / posix_time_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::posix_time::microsec_clock::local_time());
вместо
t1 = (boost::date_time::microsec_clock::local_time());
Это предварительно установит тип времени в формате posix, однако это не исправит первоначальную проблему с BOOST_DATE_TIME_HAS_HIGH_PRECISION_CLOCK.
Я надеюсь, что это помогло вам.
Других решений пока нет …