Рефлексию официально приняли в C++26. Четверть века ждали, осталось дождаться компиляторов

Рейтинг: 60.1% · 14 голосов
Python, Rust, Go, C++, C#, Java, Kotlin: синтаксис, паттерны проектирования, производительность, многопоточность и сравнение языков.
Ответить
Аватара пользователя
linux_lord
Сообщения: 6
Зарегистрирован: 23 май 2026, 20:45

Рефлексию официально приняли в C++26. Четверть века ждали, осталось дождаться компиляторов

Сообщение linux_lord »

Кто пропустил: P2996 проголосовали в драфт еще летом в Софии, сейчас C++26 практически финален, и рефлексия там. Оператор ^^ снимает мету с типа, сплайсы [: :] разворачивают ее обратно в код, члены структуры перечисляются на этапе компиляции. Сериализация, маппинги, биндинги без единого макроса и без внешних кодогенераторов.

Потыкал на godbolt в clang-p2996 (форк Bloomberg), простые вещи реально работают: пробежался по полям структуры, собрал из них JSON. После двадцати лет шаблонных извращений выглядит как магия.

Вопрос практический: GCC молчит, MSVC молчит. Кто-нибудь верит, что мы трогаем это в проде раньше 2030? И второй вопрос: что первым выкинете? я лично готовлюсь хоронить наш кодоген на питоне, который парсит хедеры регексами. да, знаю.
👍3 ❤️1 🔥 😄 🤔1
✔ Лучший ответ сформирован автоматически — tashiro
define_aggregate в форке уже работает, структуры генерятся на компиляции, это сильно больше чем просто пройтись по полям. token sequences в 26-й не успели, отложили на следующий цикл, так что полноценный кодоген внутри языка это уже C++29. но даже без них перечисление членов плюс сплайсы закрывают процентов 80 моих хотелок. наш кодоген на питоне (тоже регексы по хедерам, привет ТС, нас таких леги…
Перейти к ответу →
Аватара пользователя
luckysms
Сообщения: 19
Зарегистрирован: 21 май 2026, 01:10

Re: Рефлексию официально приняли в C++26. Четверть века ждали, осталось дождаться компиляторов

Сообщение luckysms »

у нас геймдев и C++17, потому что консольные тулчейны живут в своем собственном времени. C++26 пощупаю ближе к пенсии. но за будущую смерть макросов типа REFLECT_FIELD(name, type) заранее спасибо, внукам расскажу
👍 ❤️1 🔥2 😄 🤔
Аватара пользователя
tashiro
Сообщения: 3
Зарегистрирован: 18 май 2026, 21:11

Re: Рефлексию официально приняли в C++26. Четверть века ждали, осталось дождаться компиляторов

Сообщение tashiro »

✔ Лучший ответ — сформирован автоматически
define_aggregate в форке уже работает, структуры генерятся на компиляции, это сильно больше чем просто пройтись по полям. token sequences в 26-й не успели, отложили на следующий цикл, так что полноценный кодоген внутри языка это уже C++29. но даже без них перечисление членов плюс сплайсы закрывают процентов 80 моих хотелок. наш кодоген на питоне (тоже регексы по хедерам, привет ТС, нас таких легион) уже копает себе могилу
👍 ❤️1 🔥1 😄 🤔2
Аватара пользователя
jbentley
Сообщения: 20
Зарегистрирован: 24 май 2026, 17:24

Re: Рефлексию официально приняли в C++26. Четверть века ждали, осталось дождаться компиляторов

Сообщение jbentley »

^^ это конечно дичь. почему не ключевое слово? код с этими ^^ и [: :] выглядит так, будто кот по клавиатуре прошел
👍3 ❤️ 🔥 😄1 🤔
Аватара пользователя
ridgeback
Сообщения: 3
Зарегистрирован: 12 май 2026, 07:52

Re: Рефлексию официально приняли в C++26. Четверть века ждали, осталось дождаться компиляторов

Сообщение ridgeback »

одиночный ^ занят в C++/CLI, поэтому удвоили. ключевое слово reflexpr было в ранних версиях, выкинули за многословность: рефлексия по задумке используется часто, длинное слово замусоривает код. в пейперах есть целая таблица рассмотренных вариантов, этот еще из приличных. короче, побайкшедили за нас, можно выдыхать
👍1 ❤️ 🔥1 😄 🤔
Аватара пользователя
seniorsamurai
Сообщения: 44
Зарегистрирован: 15 май 2026, 19:29

Re: Рефлексию официально приняли в C++26. Четверть века ждали, осталось дождаться компиляторов

Сообщение seniorsamurai »

@jbentley, напомню про модули. приняли в 20-м, на дворе 2026, и где? cmake научился относительно недавно, clangd до сих пор спотыкается, в проде модули видели полтора человека. рефлексия сложнее модулей на порядок. закладывай не 2030, а 2032, и не разочаруешься. комитет штампует фичи быстрее, чем компиляторы успевают их переваривать, это уже система
👍1 ❤️ 🔥 😄 🤔
Аватара пользователя
ucronk
Сообщения: 6
Зарегистрирован: 11 май 2026, 02:38

Re: Рефлексию официально приняли в C++26. Четверть века ждали, осталось дождаться компиляторов

Сообщение ucronk »

MSVC по рефлексии отвечает в духе: в планах, сроков нет. так что на старте это фича для линукса и кланга, как обычно
👍 ❤️ 🔥1 😄 🤔
Ответить
Поделиться темой: ✈ Telegram VK

Вернуться в «Языки программирования»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 0 гостей