スポンサーサイト [Edit]
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。


スポンサー広告 | 【--------(--) --:--:--】 | Trackback(-) | Comments(-)
VC 2005でpow(int,int)が使えない [Edit]
とりあえずBaseClassesのコンパイルはおいといて,Platform SDKのinclude/atlっていうディレクトリに"atlbase.h"があったので,VCのプロパティにパスを追加してビルドしてみた.すると,

error C2668: 'pow' : オーバーロード関数の呼び出しを解決することができません。(新機能 ; ヘルプを参照)

なんじゃ,そら.おいおい,pow関数のオーバーロードで引っかかっちゃったよ.

問題の記述はこんな感じ.

pow(viX[j]-viX[k],2)

なんだよ,pow(int,int)ごときにcastやらなきゃいけないのかよ,と,

pow((int)(viX[j]-viX[k]),2)

のように変更して再度ビルド.したらまたエラー!おい,なめてんのかよ!!と切れまくったが,どうも「新機能:ヘルプを参照」っていうエラーメッセージが気になり,pow関数を調べたら,

Visual C++ 2005 では、ISO 標準にさらに準拠するために大きく変更されています。pow(int, int) のオーバーロードは、使用できなくなりました。このオーバーロードを使用している場合、コンパイラは C2668 を発生することがあります。この問題を回避するには、最初のパラメータを double、float、または long double にキャストします。

なんだよ!pow(int,int)つかえねーじゃん!!最悪だ.

ということで,pow(double,int)にcastしなきゃいけないようです.
スポンサーサイト


[プログラム]C言語 | 【2006-06-19(Mon) 10:37:29】 | Trackback:(0) | Comments:(0)
コメントの投稿
管理者にだけ表示を許可する

FC2カウンター
現在の閲覧者数:
リンク
RSSフィード
ブログ内検索
フリーエリア

カテゴリー
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。