[英]Cast boost::units type into numeric types
我正在使用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
類型轉換為double?
提前致謝。
按照Arne Mertz在評論中的建議,將帶有單位的值轉換為標量的規范方法是將度量單位除以一個單位。 換句話說,類似:
pow(tmpVector.at(cnt)/boost::units::meters,cnt)
應該管用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.