The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"Объявлено о готовности международного стандарта C++14"
Отправлено opennews, 19-Авг-14 12:00 
Объявлено (http://isocpp.org/blog/2014/08/we-have-cpp14) о готовности нового международного стандарта для языка программирования Си++ - ISO/IEC 14882:2014(E), известного также под именем C++14. В настоящее время стандарт прошёл утверждение и перешёл на стадию подготовки документа к публикации, на которой будет проведена работа по редакторской правке орфографических ошибок и опечаток.


Новый стандарт не содержит кардинальных изменений и рассматривается в качестве корректирующего расширения стандарта C++11 (http://www.opennet.ru/opennews/art.shtml?num=31476), предлагающего ряд улучшений и исправлений. C++14 примечателен самым коротким сроком подготовки спецификации (C++11 развивался более 10 лет)  и обеспечением поддержки в компиляторах к моменту фактического выпуска стандарта (на обеспечение поддержки C++11 в популярных компиляторах было потрачено несколько лет). В частности, полноценная поддержка  C++14 уже реализована в LLVM/Clang 3.4, а частичная поддержка C++14 доступна для пользователей GCC (https://gcc.gnu.org/projects/cxx1y.html), IBM C++ и Microsoft C++.


Основные (https://isocpp.org/faq) новшества (https://ru.wikipedia.org/wiki/C%2B%2B14):

-  Улучшения в языке (https://isocpp.org/wiki/faq/cpp14-language):


-  Возможность указания чисел в двоичном представлении и наглядного отделения цифр в числе, например, теперь можно указать "a = 0b101010;" или  "a = 0b100'0001;";
-  Поддержка автоматического определения типа, возвращаемого любой функцией, в которой используется несколько выражений return, содержащих значение одного типа. В С++ определение типов было ограничено лямбда-функциями, содержащими только одни вызов return;
-  Реализован дополнительный синтаксис определения типа - decltype(auto), который можно использовать для определения результирующего типа возвращаемого функцией значения (например, "string lookup1(); decltype(auto) look_up_a_string_1() { return lookup1(); }");
-  Возможность захватывать переменные лямбда-функций с возможностью захватывать переменные с перемещением значения и объявлять произвольные локальные переменные в лямбда-объекте;
-  Возможность указания типа "auto" для лямбда-выражений, позволяющего вынести определение типа на плечи компилятора по аналогии с вычислением типов переменных, объявленных с указанием
ключевого слова "auto";
-  Поддержка задания шаблонов для переменных, в дополнение к ранее поддерживаемым шаблонам для функций и классов;
-  Расширение числа возможностей, которые можно использовать внутри функций constexpr. В частности, C++14 позволяет объявлять локальные переменные и использовать выражения if, switch, for, while, do-while, допускает мутацию объектов;
-  Добавлен атрибут "[[deprecated]]", при помощи которого можно пометить элемент устаревшим, после чего останется возможность использования этого элемента, но будут выводиться предупреждения, что в будущем его поддержка может быть прекращена.

-  Улучшения в стандартной библиотеке (https://isocpp.org/wiki/faq/cpp14):


-  Поддержка (http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2013/n365... разделяемых мьютексов (shared_mutex) и разделяемые блокировки (shared_lock);
-  Возможность (http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2013/n364... определения пользователем собственных литералов для std::types, которые не могут использоваться в стандартной библиотеке. Из добавленных стандартных литералов отмечаются "s" (для строковых типов std::basic_string), "h", "min", "s", "ms", "us" и "ns" (для временных интервалов std::chrono::duration);
-  Поддержка выражения make_unique (http://isocpp.org/files/papers/N3656.txt) для объектов unique_ptr, похожего по сути make_shared, но отличающегося добавлением оптимизаций;
-  Добавлены псевдонимы "*_t" для трансформации типов, позволяющие уйти от использования многословных объявлений c typename (remove_reference_t вместо "typename remove_reference",  make_unsigned_t вместо typename make_unsigned и т.п.);
-  Возможности обращения к элементам кортежа по типу, при условии, что в кортеже содержится только один элемент данного типа.


URL: http://isocpp.org/blog/2014/08/we-have-cpp14
Новость: http://www.opennet.ru/opennews/art.shtml?num=40408

 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру