MS в документации
брешет, что макрос __FILE__ раскрывается в полный путь только при указании
ключа /FC. На деле же все компиляторы от 15.00 до 19.29 (совсем последних у меня нет) при отсутствии /FC кладут без путей только имена файлов .c/.cpp. Если __FILE__ встречается в заголовке, то для файлов, включенных #include "file.h", всегда кладутся полные пути, а для включенных #include <file.h> — относительные.
По логике, если уж класть полный путь, невзирая на отсутствие /FC, то надо бы наоборот — только для "внешних" файлов, включаемых #include <>. Для "собственных", включаемых #include "", следовало бы класть только имя (или то, что указано в кавычках).
Такое поведение тянет на баг, или ему есть более разумное объяснение?