私は奇妙な問題に直面しています。私はstackoverflow.comとかどこかで調べてみましたが、答えが見つかりませんでした。llvm-g ++ - 4.2とC++の新しいスタイルの型キャスト
ここにいくつかの背景があります:私は簡単なライブラリを書いています。主に教育目的のために、そしてC++をより良く理解するためです。私はSnow LeopardでMacBook Proを使用しています。私はXcode 4.2もインストールしていますが、VIMだけを使ってコードを編集しています。私は最近、私がこれまでに持っているもののためにGNUビルドシステムを実装することをやめました。私はもうXcodeに依存する必要はなく、カスタムMakefileを作成して管理する必要はありません。私は最高レベルの警告を使用しています。ここには私が今までに持っていたフラグがあります(しかし、私は、各フラグの理由を理解しながら徐々に追加し続けています):-Wall -Wmissing-field-initializers -Wno-trigraphs -Wreturn-type -Wnon-virtual-dtor -Woverloaded-virtual -Wmissing-braces -Wparentheses -Wswitch -Wunused-value -Wsign-compare -Waddress -Wsequence-point -Wshorten-64-to-32 -Wwrite-strings -Wold-style-cast
、最後に-Werror
です。
wint_t weof() {
return static_cast<wint_t>(WEOF);
}
私はこのコードをコンパイルするときしかし、私は警告「古いスタイルのキャストの使用」を取得:
は今、私は非常に単純に値を返す機能を持っています。私はstatic_cast<>
が "古いスタイル"になる方法を理解していません。誰が私になぜこれが起こっているのか説明することができますか?私はWEOF
の定義を見て答えを見つけるだろうと思ったが、Macではそれは__DARWIN_WEOF
に定義されていて、その定義を見つけることはできないようだ。
ありがとうございます!