0

私はboost::units図書館を利用しています。私の問題は、長さベクトルをcmath計算のためにdoubleベクトルにキャストする必要があることです。

  pow(tmpVector.at(cnt),cnt) 

cntは私のループカウンターです。キャストせずに計算を試みると、へのキャスト定義がないというエラーが復活しboost::units::lengthますdouble

動作しないstatic_castと同様に動作しないboostライブラリのnumeric_castを使用しようとしました。2番目のケースでは、次のコンパイラエラーが発生します。

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:ループ内でpowを使用しboost::units、ループカウンターを指数として使用する可能性はありますか?

boost::units質問2:タイプをたとえばダブルにキャストするにはどうすればよいですか?

前もって感謝します。

4

1 に答える 1

0

単位のある値をスカラーに変換する標準的な方法は、コメントでArne Mertzが提案しているように、メジャーの1単位で除算することです。言い換えれば、次のようなものです。

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

動作するはずです。

于 2013-02-28T15:21:25.540 に答える