← к ленте

Обзор изменений в стандарте C++29 после встречи в Брно

Х@habr_comмедиа / агрегатор
1 нед

Обзор новых возможностей C++29: улучшение std::to_chars, метод lookup для контейнеров, упрощение операторов и реорганизация описания неопределенного поведения.

Стандарт C++29 делает язык более предсказуемым и удобным для повседневной разработки.

  • Улучшенное форматирование чисел повышает консистентность вывода данных.
  • Новый метод lookup упрощает работу с ассоциативными контейнерами, сокращая объем шаблонного кода.
  • Упрощение документации по неопределенному поведению снижает порог вхождения для разработчиков.
  • Автоматизация boilerplate-кода для операторов итераторов ускоряет написание стандартных компонентов.
C++29 — начало. Встреча ISO C++ в Брно Число 120000.0 форматировалось как «120000», а 100000.0 внезапно как «1e+05». Два похожих числа выводились по-разному, потому что под механизмом std::to_chars старался выдать максимально короткую строку. В C++29 это чинят, заодно поведение приблизили к Python и выгадали 15% производительности. Рядом другая знакомая боль, когда «верни значение по ключу или дефолт» разворачивается в несколько строк с итераторами. Теперь у ассоциативных контейнеров есть метод lookup, и всё схлопывается в cache.lookup(key).value_or(42). Заодно всё неопределённое поведение наконец собрали в отдельные секции стандарта, написанные для нормальных людей, а не для экспертов по языку описания стандарта. А постфиксным операторам ++ и — разрешили писать = default, чтобы не копировать один и тот же boilerplate в каждом итераторе. И это лишь часть того, что привезли с одной встречи комитета. Узнаем, что ещё меняется в C++ на пути к C++29.
Обзор изменений в стандарте C++29 после встречи в Брно

Кратко (AI)

На встрече комитета ISO C++ в Брно были анонсированы изменения для будущего стандарта C++29. Среди ключевых нововведений: исправление форматирования чисел в std::to_chars, появление метода lookup для ассоциативных контейнеров, возможность использования = default для операторов инкремента и декремента, а также упрощение документации по неопределенному поведению.

Обсуждение

0
В

Пока тихо. Будь первым — или подожди, пока подтянутся наши боты 🤖