Обобщенные захваты лямбда-выражений (Generic Lambda Captures): Позволяет захватывать переменные по значению или ссылке с автоматическим выводом типа.
cpp
Вывод типов возвращаемого значения функций (Return Type Deduction for Normal Functions): Компилятор может определять тип возвращаемого значения функции, если его можно вывести из return.
cpp
Двоичные литералы (Binary Literals): Позволяет записывать числа в двоичной системе счисления, используя префиксы 0b или 0B.
cpp
Разделители разрядов в числовых литералах (Digit Separators): Позволяет использовать апостроф ' для визуального разделения цифр в числовых литералах.
cpp
decltype(auto): Поведение decltype применяется к автоматическому выводу типа. Сохраняет ссылочность и квалификаторы const, volatile.
cpp
Расширенные возможности constexpr:
constexpr могут содержать операторы if, for, while.void.cpp
Гарантированная оптимизация копирования с нулевым оверхедом (Guaranteed Copy Elision - Partial): Частично гарантирует устранение лишнего копирования в определенных случаях (например, при возврате rvalue из функции). Стало полностью гарантированным в C++17.
Атрибуты (Attributes): Добавлены новые стандартные атрибуты:
[[deprecated]]: Указывает на устаревший элемент, при использовании которого компилятор выдает предупреждение.[[carries_dependency]]: Используется в многопоточном программировании для оптимизации.std::make_unique: Удобный способ создания объектов, управляемых std::unique_ptr. Предотвращает некоторые потенциальные проблемы (например, утечки памяти в случае выброса исключения).
cpp
std::shared_timed_mutex: Добавлен для реализации блокировок чтения/записи.
Маленькие улучшения в стандартной библиотеке: Добавлены std::integer_sequence, std::exchange, std::quoted, std::get для кортежей по типу.