2

現在、多くのクラス ファイルを Visual Studio ソース環境から Qt Creator (バージョン 3.4.2) に移動中です。

コンパイラ (MinGW 内) の違いに対応するために、いくつかの変更を加えました。私を困惑させていることの 1 つは、IDE が特定のエラー (赤い下線) を報告しているにもかかわらず、正常にコンパイルされることです。

この問題は、グローバル名前空間の使用reinterpret_cast<T>に切り分けられていると確信しています。T

たとえば、次の行は IDE では正しくないと表示されますが、コンパイルは可能です。

::GetWindowThreadProcessId(window, reinterpret_cast<::LPDWORD>(&processId));

ツールチップには次のように記載されています。

期待される ';' ':' を取得しました

::コードを変更して構文から削除するとLPDWORD、強調表示が消えます。これは IDE で問題ありません。

::GetWindowThreadProcessId(window, reinterpret_cast<LPDWORD>(&processId));

これは IDE のバグだと思います。これは安全な仮定ですか?

グローバル名前空間を使用するためにコード スタイルを変更する予定はありません。

4

1 に答える 1

0

lisyarus さんのコメントのおかげで、これは実際には QT Creator のバグであることがわかりました。すでにバグレポートがここにあります

質問で述べたように、バグによってコードのコンパイルが妨げられることはありません。<必要に応じて、 と の間にスペースを追加できます::

于 2015-08-19T14:28:34.527 に答える