0

編集:解決策:「namespacerstdを使用して」を再宣言します。.cppファイルに!

Code :: Blocksを使用していますが、宣言したヘッダーの外で使用可能な関数を表示するベクトルオブジェクトを取得できません。

オブジェクトに対して実行できるすべての機能を示すボックスを取得できません。

私はこれを私の.hに持っています:

    vector<DrawObject> objects;

そして、私の.cpp(.hファイルの)では、これを行っても何も表示されません。

    objects.

私がオブジェクトを行う場合。.cppには、必要なものがすべて表示されます。それはうまくいくでしょう、そしてそれはほんの少しの迷惑ですが、持っていると便利でしょう。

4

1 に答える 1

1

これは仕様によるものであり、できることは何もないと思います。

C++ のコード補完は困難です。なぜなら、IDE は本質的に (潜在的に不完全でエラーのある) コード全体をコンパイルする必要があるからです。とにかく、C++ は解析が難しく、不完全なコードの継続的なバックグラウンド コンパイルに注意する必要はありません。

結果として、ほとんどの IDE (Code::Blocks を含む) は実際には完全なパーサーを実装していません。非常に初歩的なサブセットであり、コード補完はかなり原始的です。

libclangと呼ばれる強力でかなり効率的なソリューションが存在するため、これは将来変更される可能性があります。しかし、Code::Blocks がパッチを適用されて内部的に使用されるまで、この動作は持続します。

于 2013-01-05T19:28:32.630 に答える