Войти
Написать нам в Viber

Наиболее интересные функции, которые появятся в новой версии языка C++(C++17)

С++17 еще не вышла, но уже есть перечень «фич» которые собираются добавить в этот новый стандарт. Так как С++14 был неким расширением С++11, исправлением ошибок и улучшений.  То С++17 будет неким расширением С++14.

  1. auto in templates

C++14 дала нам возможность использовать ключевое слово “auto” в lambdas. А стандарт С++17 даст нам возможность использовать слово “auto “ в template параметрах. Это более удобнее и еще занимает меньше кода, чем класс или “typename”. И еще это даст возможность использовать “templates” с разным числом параметров (например template<auto... a>).

  1. structured bindings

Теперь вместо постоянного использования std::tie  для tuple и pair, чтобы задать разные значения параметров. Можно, будет объявить и проинициализировать все переменные в одну строчку (например
auto [a , b , c] = getvalues();   ).

  1. If and switch with initializer

И также можно будет объявить переменные внутри if выражения ( например  if(int x = 42; true != false)  ), что также сократит  количество строк кода, но также даст возможность ограничить область видимости объявленных переменных. И кстати, их можно будет видеть внутри блока else!

  1. std::variant

Также добавят std::variant. Это круто, так как теперь не надо будет использовать variant с других библиотек, как например boost::variant. У них будет похожий API .

  1. std::map и std::unordered_map

Также будут новые методы вставки в уже стандартных std::map и std::unordered_map.

  1.  The Parallelism

Также будет возможность распараллелить что-то из коробки. Раньше для этого нужно было использовать какие-то сторонние библиотеки. Их, скорей всего, будут продолжать использовать, так как каждая из них имеет свои преимущества.
А чего не будет:

  1. Module

Может в следующем стандарте будет. Это бы уменьшило количество include, уменьшило количество зависимостей от препроцессора. Но такого пока не будет.

  1. Transactional Memory

Может в следующем стандарте будет. Это механизм управления параллелизмом, который используется для совместного доступа к памяти в параллельных вычислениях.  Но есть boost в котором это есть.
И много другого.
 
С++ поменяется, но не сильно. Это как-бы расширение того, что было. Комитет ISO C++ работает, и большие изменения требуют рассмотрения, поэтому ждем.