Информация об изменениях

Сообщение Re[7]: имя переменной в компайл-тайм от 16.03.2018 9:43

Изменено 16.03.2018 9:55 rg45

Re[7]: имя переменной в компайл-тайм
Здравствуйте, YuriV, Вы писали:

YV>CTTI именно компайлтайм в отличии от стандартного typeinfo. А то, что в прагме не работает так это проблемы прагма месседж скорее, ведь стандарта на эти макросы нет.


Кстати, я вот этот момент несколько недогоняю. С одной стороны, такие макросы как __PRETTY_FUNCTION__ и __FUNCSIG__, хоть и являются нестандартными расширениями, тем не менее, это макросы препроцессора. С другой стороны, эти макросы определены только для тех шаблонных функций, которые прошли через инстанцирование, которое, как известно, выполняется на этапе компиляции (точнее говоря, в восьмой фазе трансляции, в ходе которой образуются т.н. instantiation units. Но так или иначе, это уже фаза, следующая после препроцессора). Вот и выходит, что это макросы, значение которых становится известным после/во время компиляции. Как так?
Re[7]: имя переменной в компайл-тайм
Здравствуйте, YuriV, Вы писали:

YV>CTTI именно компайлтайм в отличии от стандартного typeinfo. А то, что в прагме не работает так это проблемы прагма месседж скорее, ведь стандарта на эти макросы нет.


Кстати, я вот этот момент несколько недогоняю. С одной стороны, такие макросы как __PRETTY_FUNCTION__ и __FUNCSIG__, хоть и являются нестандартными расширениями, тем не менее, это макросы препроцессора. С другой стороны, эти макросы определены только для тех шаблонных функций, которые прошли через инстанцирование, которое, как известно, выполняется на этапе компиляции (точнее говоря, в восьмой фазе трансляции, в ходе которой образуются т.н. instantiation units. Но так или иначе, это уже фаза, следующая после препроцессора). Вот и выходит, что это макросы, значение которых становится известным после/во время компиляции. Как так? Уж не по той ли причине их не торопятся вносить в стандарт, что их невозможно реализовать без размывания концепции?