Следующий код компилируется с помощью Visual Studio 2013 (вероятно, потому, что <iostream>
включает <limits>
), но "отсутствующий" #include <limits>
мешает мне как C++ новичку иногда понимать, что происходит. Например, я понял, что std::numeric_limits<int>::max()
находится в <limits>
только после удаления #include <iostream>
.
Итак, как я могу заставить компилятор требовать, чтобы каждый из них был явным?
#include <iostream>
int main() {
std::cout << std::numeric_limits<int>::max();
}
Хотя это не компилятор "Предупреждение", например, вы можете заставить компилятор MSVC выводить список всех включенных файлов во время компиляции с /showIncludes
флага /showIncludes
компилятор MSDN.
#include
заголовочный файл, в котором стандарт говорит, что функция объявлена / определена. Я не думаю, что есть способ заставить компилятор предупреждать вас о косвенно#include
ed файлах.