Сходил на встречу российской РГ21. Накидаю инфы (что-то вы уже видели, но лишним, думаю, не будет).
В C++23:
- починили некорректные срабатываения
static_assert(false): if constexpr (constexpr_condition) {
…
} else {
static_assert(false, “message”);
}- починили range based for. Link на proposal;
- добавили
static operator[] (в записи приконый пример с таким оператором для енамов);- монадические операции для
std::expected;- дополнения к алгоритмам ranges (например эффективная итерация по ключам/значениям мап и много другого), но из-за этого ренджи из 23его стандарта сильно несовместимы с ренджами из 20ого. Не оч понятно, что это значит. Подождём и потрогаем;
-
std::stacktrace и std::print;-
constexpr много всего (например std::unique_ptr).С++26:
Пока глобально планируется примерно вот так:
- library support for coroutines;
- executors;
- networking;
- pattern matching;
- reflection;
- и всякие другие штуки.
Конкретно:
-
#embed (емнип приехал из C23);- пытаются пропихнуть
std::get для агрегатов;- stacktrace for exceptions в комитете приняли с вопросами, будут поправлять;
- ABI ломать пока не будут, незачем, говорят.
Хех. Прикиньте, С++23 это вот в этом году. А мы только недавно на 20й стандарт перешли🥴🥴🥴