На самом деле существует другое решение вашей проблемы: препроцессор.
В используемом вами компиляторе должен быть переключатель, позволяющий запускать только препроцессор: -E
на gcc и clang.Учитывая это, вы можете предварительно обработать два файла, которые вы включаете, и сохранить результат этого запуска в свой собственный файл заголовка.
Добавить защиту заголовков, включая уже предварительно обработанные заголовки вместо обычныхувеличить заголовки, и все готово.
Конечно, между двумя заголовками может быть некоторое повторение, инструмент сравнения может потенциально помочь вам определить его и включить в другой общий заголовок ... но для назначенияЯ, конечно, не стал бы беспокоиться.
Вы могли бы также сказать своему учителю, что, поскольку он не просит вас предоставить заголовки стандартных библиотек, с которыми вы скомпилировали, он не должен запрашивать используемые вами заголовки повышения.