0

我正在使用boost::units图书馆。我的问题是我必须将长度向量转换为双向量以进行 cmath 计算:

  pow(tmpVector.at(cnt),cnt) 

cnt 是我的循环计数器。boost::units::length如果我在不强制转换的情况下尝试计算,我会再次出现into没有强制转换定义的错误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:是否有可能在循环内使用 powboost::units和循环计数器作为指数?

问题 2:如何将boost::units类型转换为例如 double?

提前致谢。

4

1 回答 1

0

将带有单位的值转换为标量的规范方法是除以一个度量单位,正如 Arne Mertz 在评论中所建议的那样。换句话说,类似:

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

应该管用。

于 2013-02-28T15:21:25.540 回答