我试图编译这段代码:

#include <boost/date_time.hpp>
using boost::posix_time::time_duration;
int main()
{
  volatile time_duration t0;
  time_duration t1 = t0;
  return 0;
}

使用这个命令:
g++ test01.cpp -std=c++11 -I /boost_1_55_0/ -o test01

而我得到这个错误:



我用gcc 4.8.2;任何想法如何解决这一问题?

最佳答案

这是由于a GCC bug。解决方法是像这样:

volatile time_duration t0;
time_duration t1 = const_cast<time_duration&>(t0);

它的工作原理,因为const_cast可以去除波动性以及常量性。我不知道如何严格的安全,这是,你要知道。

另一种解决办法是摆脱摆在首位的volatile的;它很少时下供应的任何目的。

关于c++ - 在 boost::posix_time 中,如何从 volatile time_duration 构造 time_duration?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24449504/

10-13 07:04