我正在使用boost::units
库。我的问题是我必须将长度向量转换为双向量以进行cmath计算:
pow(tmpVector.at(cnt),cnt)
cnt是我的循环计数器。如果我在没有强制转换的情况下尝试计算,我会将boost::units::length
中没有强制定义的错误恢复为double
。
我尝试使用不起作用的static_cast和boost库的numeric_cast,它也不起作用。在第二种情况下,我收到以下编译器错误:
e:\testvs12\libraries\thirdparty\boost\boost\numeric\conversion\converter_policies.hpp(187): error C2440: 'static_cast': 'const std::vector<_Ty>' can not convert into 'std::vector<_Ty>'
我在互联网上一无所获 - 我希望你们中的一个能帮助我
问题1:是否有可能在boost::units
循环中使用pow并将循环计数器作为指数?
问题2:如何将boost::units
类型转换为例如一双?
提前致谢。
答案 0 :(得分:0)
将单位值转换为标量的规范方法是将Arne Mertz在评论中建议的度量除以一个单位。换句话说,比如:
pow(tmpVector.at(cnt)/boost::units::meters,cnt)
应该工作。