Возможны ли (Self) отражения в C ++? - PullRequest
0 голосов
/ 27 ноября 2018

Без использования макросов или библиотек Boost , возможно ли перебирать собственных члена classe в C ++?

Я знаю, что "Reflections" изначально невозможныв C ++, как в Java, C # и Go (душераздирающе), но я не знаю, относится ли это только к классам, которые смотрят на атрибуты других классов, или же это относится и к самим себе.

Янадеюсь, что некоторые классы, занимающиеся своим делом, смогут как-то увидеть свои атрибуты во время выполнения;это возможно?

1 Ответ

0 голосов
/ 27 ноября 2018

Nonono.C ++ - статически типизированный скомпилированный язык;ему не нужно знать имена членов во время выполнения, поскольку весь доступ во время выполнения осуществляется по адресу;это делает имена членов бесполезными, что не оправдывает нахождение в исполняемом файле.Вы не можете получить доступ к тому, чего там нет.

Единственный способ узнать имена членов во время выполнения - это включить код, который явно хранит имя во время процесса компиляции - то есть макросы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...