Повышение даты / времени microsec_clock не компилируется правильно

Я пытаюсь использовать возможности даты / времени библиотеки 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» выглядит так, как будто ей нужен параметр шаблона.

Насколько я могу судить, я следую за Увеличить документацию по дате и времени буквально. Есть идеи?

1

Решение

У меня сейчас такая же проблема.
Вчера это работало без проблем, но сегодня мне нужно было удалить все мои скомпилированные библиотеки и перекомпилировать их из-за проблемы с повреждением 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.

Я надеюсь, что это помогло вам.

0

Другие решения

Других решений пока нет …