将boost :: units类型转换为数字类型

时间:2013-02-28 14:38:37

标签: c++ visual-c++ c++11

我正在使用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类型转换为例如一双?

提前致谢。

1 个答案:

答案 0 :(得分:0)

将单位值转换为标量的规范方法是将Arne Mertz在评论中建议的度量除以一个单位。换句话说,比如:

 pow(tmpVector.at(cnt)/boost::units::meters,cnt)

应该工作。