Re[2]: Распечатать compile-time константу в выводе компилятора
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 08.02.23 10:16
Оценка:
Здравствуйте, ботаныч, Вы писали:

Б>
Б>template <typename T> inline void print_type() {
Б>   #pragma message (__FUNCSIG__)
Б>}
Б>


Это очень кривой прием. Если уж использовать шаблон, в него нужно вставлять не #pragma, которая должна обрабатываться на стадии препроцессирования, а __pragma, которая обрабатывается на стадии компиляции. #pragma в шаблоне должна срабатывать еще до того, как шаблон будет обработан компилятором, выводя текст "__FUNCSIG__", поскольку ни о каких сигнатурах препроцессор знать не должен.

Но еще лучше использовать нормальный макрос с __pragma (message ()), который будет выводить любой заданный текст, а не служебную информацию, к которой сбоку присобачена какая-то дополнительная.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.