C++17 - это название стандарта C++, утвержденного в 2017 году. Он основан на предыдущем стандарте C++14, улучшая основной язык и стандартную библиотеку, а также добавляя несколько новых языковых функций.

C++17 - это название стандарта C++, который появился после C++14. Он основан на предыдущем стандарте C++14, улучшая основной язык и стандартную библиотеку, а также добавляя несколько новых языковых функций.

Стандарт ISO, международный стандарт ISO/IEC 14882:2017 Язык программирования C++ доступен для покупки на веб-сайте ISO. Все основные изменения с C++14 на C++17 перечислены в P0636r0.

Помечайте вопросы о C++17 тегом C++ вместе с тегом C++17.

Новые особенности

Основной язык

  • вывод аргументов шаблона для шаблонов классов
  • constexpr, если операторы
  • структурированные привязки
  • лямбда-выражения constexpr
  • параметры шаблона без типа с автоматическим типом
  • Операторы инициализации для if и s witch
  • встроенные переменные
  • определение вложенного пространства имен
  • сложить выражения
  • typename в параметре шаблона шаблона
  • удаление триграфов
  • символьные литералы u8
  • совокупная инициализация классов базовыми классами
  • лямбда-захват * этого
  • гарантированная копия
  • упаковать расширения в объявлениях использования
  • шестнадцатеричные литералы с плавающей запятой

Библиотека

  • новые заголовки:
    • <any>
    • <optional>
    • <variant>
    • <memory_resource>
    • <string_view>
    • <charconv>
    • <execution>
    • <filesystem>
  • незначительные изменения в уже существующих заголовках

Ресурсы