C ++ Visual Studio предупреждает о косвенных включениях

0

Следующий код компилируется с помощью 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();
}
  • 0
    Если вы используете функцию из стандартной библиотеки, всегда лучше явно #include заголовочный файл, в котором стандарт говорит, что функция объявлена / определена. Я не думаю, что есть способ заставить компилятор предупреждать вас о косвенно #include ed файлах.
  • 0
    @RSahu Я думаю, что это должно быть возможно, GCC делает это в этом случае из коробки.
Показать ещё 1 комментарий
Теги:
visual-studio
header

1 ответ

0

Хотя это не компилятор "Предупреждение", например, вы можете заставить компилятор MSVC выводить список всех включенных файлов во время компиляции с /showIncludes флага /showIncludes компилятор MSDN.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню