我试图编译这段代码:
#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/