Поиск того, какой файл включает iostream в Visual Studio - PullRequest
0 голосов
/ 04 мая 2018

Мы конвертируем наш код для использования библиотеки журналов, а не std::cout, и, как часть этого, мы просто удаляем #include <iostream> из каждого исходного файла по мере продвижения. Это должно позволить нам легко идентифицировать строки, которые все еще используют cout (так как они будут иметь ошибки компиляции), и быстро их исправить.

Однако многие файлы по-прежнему работают даже с удаленным #include, что означает, что, возможно, в него включен другой заголовок, который он использует. Поскольку у нас есть большие много заголовков в довольно большой иерархии, есть способ заставить Visual Studio фактически сказать нам, какой заголовочный файл включает iostream и где он находится в иерархии.

Я знаю, что могу просто найти их по количеству, но меня интересуют только те, которые фактически куплены в специфический исходный файл. Поскольку мы делаем это шаг за шагом, невозможно изменить каждый файл за один раз.

Я поместил #define cout JUNK вверху файлов на сегодняшний день, чтобы вызвать ошибки при использовании cout для вывода, но я хочу удалить все файлы iostream из файлов, если это возможно.

1 Ответ

0 голосов
/ 04 мая 2018

Если щелкнуть правой кнопкой мыши файл в Solution Explorer и выбрать Properties, на вкладке Advanced появится опция Show Includes:

enter image description here

Если установить значение yes, компилятор выведет всю иерархию включаемых файлов, например:

1> FileA.cpp
1> Note: including file: d:\repo\FileA.h
1> Note: including file:  d:\repo\SomeOtherHeader.h
1> Note: including file: d:\repo\FileB.h
1> Note: including file:  d:\repo\YetAntherHeader.h
1> Note: including file:   C:\ProgFiles_x86\MSVS14\VC\include\iostream

Вы можете просто скопировать и вставить это из окна вывода в ваш любимый редактор и найти нужный заголовочный файл.

...