0

たとえば、 <utility>明示的に入力しなくても、 Visual Studio にはインクルードされます。#include <utility>

プログラマによって明示的に指示されたものだけを含めるためのプリプロセッサ ディレクティブまたはオプションはありますか?

単なる仮定の例:

#include <vector>

int main()
{
    std::vector<int> x;
    std::move(x); // Did I ask for <utility> ? No I didn't
    return 0;
}
4

3 に答える 3

4

<utility>含まれている他の std ヘッダーで必要とされない限り、Visual Studio には含まれません。

VS10 では、<vector>直接的および間接的に別の 74 個のヘッダーをプルするだけです。トレイル<utility>は次のとおりです。

<vector>含む<memory>含む含む<xmemory>含む<xutility>含む<utility>

于 2012-04-28T01:16:08.723 に答える
3

明らかに、コンパイラの場合、 を含めるvectorと、そのヘッダーには を含むものも含まれますutility

Visual Studio には自動的に何も含まれないため、これが説明の唯一の説明です。

于 2012-04-28T01:12:22.907 に答える
1

を含める<map>と、内部で使用std::pairされるため、 が含まれ<utility>ます。それがあなただけだったら、私<vector>も何かを使っていると思います。<utility>#include

于 2012-04-28T01:15:49.037 に答える