C++ VisualStudio关于间接引用的警告 下面的代码可能会使用VisualStudio 2013编译,因为可能包含了,但是缺少的是,我不能像C++新手那样去理解正在发生的事情。例如,我意识到std::numeric_limits::max只有在删除include之后才会出现

C++ VisualStudio关于间接引用的警告 下面的代码可能会使用VisualStudio 2013编译,因为可能包含了,但是缺少的是,我不能像C++新手那样去理解正在发生的事情。例如,我意识到std::numeric_limits::max只有在删除include之后才会出现,c++,visual-studio,header,C++,Visual Studio,Header,那么,如何强制编译器要求每个include都是显式的呢 #include <iostream> int main() { std::cout << std::numeric_limits<int>::max(); } 虽然这不是编译器警告,但可以让MSVC编译器在编译时使用/showIncludes标志输出所有包含文件的列表如果使用标准库中的函数,最好明确包含标准声明/定义函数的头文件。我认为没有办法强迫编译器警告您间接包含文件。@RSahu我认为

那么,如何强制编译器要求每个include都是显式的呢

#include <iostream>

int main() {
    std::cout << std::numeric_limits<int>::max();
}

虽然这不是编译器警告,但可以让MSVC编译器在编译时使用/showIncludes标志输出所有包含文件的列表

如果使用标准库中的函数,最好明确包含标准声明/定义函数的头文件。我认为没有办法强迫编译器警告您间接包含文件。@RSahu我认为这应该是可能的,gcc在这种情况下是开箱即用的。这很有趣。如果在Visual Studio 2013中有一种方法可以做到这一点,我希望您能从知识更丰富的人那里得到答案。