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