簡體   English   中英

將boost :: units類型轉換為數字類型

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM