идентификатор из строки или массива символов в значении, которое хранит в себе эта именованная ячейка?
Прошу прощения, если написал ерунду..
потому что этой информации вообще нет во время исполнения
Потому что она не нужна* (в абсолютном большинстве случаев)
Потому что после компиляции все это дело преобразовывается в машинный код и при запуске программы уже нет привычных идентификаторов и есть только двоичные коды, почему ему не нужна эта информация?
Может быть имеется ввиду, что эта информацию не нужна в человекочитаемом виде в рантайме для работы твоего кода. ?
struct SomeStruct { int a; int b; }; ... int foo(SomeStruct s) { return s.a + s.b; } Вопрос: зачем тут инфа об именах полей после компиляции?
потому что добавить статическую рефлексию в язык, которому 30 лет, оказалось сложно
люди работают над этим. ну или не работают. хрен поймёшь, запасайтесь терпением и пессимизмом
Да, она тут не нужна
А может самое правильное решение для с++ рефлексии - это сланг-тулинг? Может все иное это утопия?
препроцессор-2.0
так ведь решение через библиотеки clang, которое можно взять и использовать в кодовой базе, будет равносильно патчам в собственно компилятор clang
Ой. Да сколько там того патча? "Так..., хатынка малэнка". Но для языка в котором даже массив и строка реализуются какими то библиотеками, а не средствами языка разумно искать решение сериализации в библиотеках, а не требовать его от языка.
На самом деле и без кланг тулинга можно обойтись в современных условиях
Ну вот хочется, чтобы условия стали ещё более продвинутые. Так что рефлексия нужна.
Ещё чтобы можно было в компайл-тайме операции с аттрибутами делать
Это следующий уровень
Обсуждают сегодня