1

ここに画像の説明を入力

この明らかに間違ったコード サンプルでは、​​エラーは発生しません。代わりに、qt 作成者は var を未使用の変数としてマークします。この奇妙な動作を修正することは可能ですか? セマンティックチェックが機能するようにします。

更新: オンザフライのセマンティック チェックについて話してきました。ほとんどの IDE は、入力時にコードを分析し、エラーを強調表示します。Qt Creator は、オンザフライでコード分析を行っているように見えますが (構文の強調表示により、さまざまな型、仮想関数などが表示されるため)、エラーはまったく強調表示されません。

4

2 に答える 2

2

Qt Creator が使用するコード モデルは非常に優れていますが、各コンパイル ユニットの完全な抽象構文ツリーに基づいていません。それに関するいくつかの情報は、この Qt ブログ投稿で提供されています。

http://blog.qt.digia.com/2011/10/19/qt-creator-and-clang/

私の知る限り、現在のコード モデルでは、Qt Creator はセマンティック ハイライト、リファクタリング、型階層の表示などを行うことができますが、潜在的なコンパイル エラー (あなたのものなど) をオンザフライで完全にチェックすることはできません。コードの構文は正しいので、Qt Creator はエラーを表示しません。

于 2012-10-18T21:58:41.800 に答える
0

非常に奇妙な振る舞い。私はそのようなコードをコンパイルしようとしました:

#include <iostream>
using namespace std;
int main()
{
    UndefinedType val;
    cout<<"Test"<<endl;
    return 0;
}

Qt 4.8.1, 4.8.3MinGWWindows7では、でQtCreator 2.5.2、しかし、すべての場合にエラーが発生しました:

main.cpp: In function 'int main()':
main.cpp:7:5: error: 'UndefinedType' was not declared in this scope
main.cpp:7:19: error: expected ';' before 'val'

ビルド環境に関する詳細情報を提供してください。

于 2012-10-13T12:18:17.743 に答える