2012-01-20 12 views
6

私はVisual Studio 2010 Expressを使用しています。私は「近くに、 『遠く』、 『IN』、 『OUT』のような特定の変数名を使用すると、私はコンパイルできません:私が使用する変数名の後にある構文エラーを取得 例:。Visual Studioでは特定の変数名を使用できません

z = 1.0/(far - near); 

をエラー:?。私は、この「機能」を無効にすることができ

答えて

12

farnearが内蔵されたコンパイラのキーワードバック16ビットの時代に彼らはもはや存在しないと、彼らはもはや意味を持っているどのように

error C2059: syntax error : ')' 

しかし、それらはまだWindowsのマクロとして定義されています下位互換性の理由からヘッダー。あなたがそれらをしたくない場合は

、ちょうどそれらを未定義(またはWindowsのヘッダーを含まない):

#undef far 
#undef near 
+0

おかげで、それが動作します。そのようなキーワードをすべて無効にするオプションはありますか(それはすべてC++標準の一部ではありません)。 – user1161552

+1

@ user1161552:はい、あなたのコードから '#include 'という行を削除してください。それらはキーワードではなく、Windowsヘッダーで定義されたマクロです。 –

+0

ちょうどあなたの答えが出てきたことを指摘しておきたいのですが、これは実装の名前空間(名前が2つのアンダースコアで始まる名前)のための完全な例であったと指摘したいと思います。マイクロソフトは、この名前空間を守らないと非難する。 – datenwolf

関連する問題