私は奇妙な問題に直面しています。stackoverflow.com などをあちこち調べましたが、答えが見つかりませんでした。
ここにいくつかの背景があります: 私は単純なライブラリを書いています。主に教育目的で、C++ をよりよく理解するためです。Snow Leopard 搭載の MacBook Pro を使用しています。Xcode 4.2 もインストールしていますが、VIM のみを使用してコードを編集しています。Xcode に依存する必要がなくなり、同時にカスタムの Makefile を作成して維持する必要がなくなるように、これまでに持っていたものすべてに GNU ビルド システムの実装を最近完了しました。最高レベルの警告を使用しています。これまでに取得したフラグは次のとおりです (ただし、各フラグの理由を理解しながら、段階的に追加し続けています): -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
おり、その定義を見つけることができないようです。
ありがとう!