例如 <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;
}
例如 <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;
}
<utility>
除非其他包含的 std 标头需要,否则Visual Studio 不包含。
在 VS10 中,包括仅<vector>
直接和间接地拉入另外 74 个标头。前往的路线<utility>
是:
<vector>
包括<memory>
包括 包括<xmemory>
包括 包括<xutility>
包括<utility>
。
显然,对于您的编译器,当您包含时vector
,该标头还包含包含的内容utility
。
Visual Studio 不会自动包含任何内容,因此这是您所描述内容的唯一解释。
当您包含<map>
时,它在内部使用std::pair
,因此包含<utility>
。我猜如果那是你唯一的东西,我<vector>
也会使用一些东西。<utility>
#include