В этом вопросе:
Печать имени типа шаблона во время компиляции
у нас есть несколько предложений относительно того, как заставить типичные компиляторы C++ печатать имя типа во время компиляции. Однако они полагаются на инициирование ошибки компиляции.
Мой вопрос: могу ли я заставить компилятор C++ печатать имя типа без остановки компиляции?
В общем, ответ «вероятно, нет», потому что действующая программа может быть скомпилирована в свой целевой объект, ничего нигде не печатая, поэтому я спрашиваю конкретно о GCC и clang с возможным использованием директив препроцессора, встроенных компиляторов или любого другого компилятора. - конкретный трюк.
Примечания:
- Очевидно, что проблема заключается в печати типов за операторами
using/typedef
, значениями параметров шаблона, вариативными шаблонами и т. д. Если тип доступен явно, вы можете просто использовать что-то вроде#message "my type is unsigned long long"
(как предложил @NutCracker). Но вопрос не в этом. - Ответы, основанные на C++ 11 или более ранних версиях, предпочтительнее, чем требующие C++ 14/17/20.