| |
Объявлено о готовности нового международного стандарта для языка программирования Си++ - ISO/IEC 14882:2014(E), известного также под именем C++14. В настоящее время стандарт прошёл утверждение и перешёл на стадию подготовки документа к публикации, на которой будет проведена работа по редакторской правке орфографических ошибок и опечаток.
Новый стандарт не содержит кардинальных изменений и рассматривается в качестве корректирующего расширения стандарта C++11, предлагающего ряд улучшений и дополнений. C++14 примечателен самым коротким сроком подготовки спецификации (C++11 развивался более 10 лет) и обеспечением поддержки в компиляторах к моменту фактического выпуска стандарта (на обеспечение поддержки C++11 в популярных компиляторах было потрачено несколько лет). В частности, полноценная поддержка C++14 уже реализована в LLVM/Clang 3.4, а частичная поддержка C++14 доступна для пользователей GCC, IBM C++ и Microsoft C++.
Основные новшества:
- Улучшения в языке:
- Возможность указания чисел в двоичном представлении и наглядного отделения цифр в числе, например, теперь можно указать "a = 0b101010;" или "a = 0b100'0001;";
- Поддержка автоматического определения типа, возвращаемого любой функцией, в которой используется несколько выражений return, содержащих значение одного типа. В С++11 определение типов было ограничено лямбда-функциями, содержащими только один вызов 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]]", при помощи которого можно пометить элемент устаревшим, после чего останется возможность использования этого элемента, но будут выводиться предупреждения, что в будущем его поддержка может быть прекращена.
- Улучшения в стандартной библиотеке:
- Поддержка разделяемых мьютексов (shared_mutex) и разделяемых блокировок (shared_lock);
- Возможность определения пользователем собственных литералов для std::types, которые не могут использоваться в стандартной библиотеке. Из добавленных стандартных литералов отмечаются "s" (для строковых типов std::basic_string), "h", "min", "s", "ms", "us" и "ns" (для временных интервалов std::chrono::duration);
- Поддержка выражения make_unique для объектов unique_ptr, похожего по сути на make_shared, но без добавления оптимизаций;
- Добавлены псевдонимы "*_t" для трансформации типов, позволяющие уйти от использования многословных объявлений c typename (remove_reference_t вместо "typename remove_reference", make_unsigned_t вместо typename make_unsigned и т.п.);
- Возможности обращения к элементам кортежа по типу, при условии, что в кортеже содержится только один элемент данного типа.
|
|
- Главная ссылка к новости (http://isocpp.org/blog/2014/08/we-have-c...)
- OpenNews: Язык Dart утверждён ассоциацией Ecma в качестве международного стандарта
- OpenNews: В стандарт C++ предложено добавить API на основе свободной графической библиотеки Cairo
- OpenNews: Обзор предложений для включения в состав стандарта C++14
- OpenNews: Опубликован новый международный стандарт для языка Си (C1X/C11)
- OpenNews: Спецификация C++0X принята в качестве международного стандарта C++11
| Тип: К сведению | Ключевые слова: cpp, (найти похожие документы) | При перепечатке указание ссылки на opennet.ru обязательно | Реклама |
id=adv>
| |
|
2.3, Аноним, 12:05, 19/08/2014 [^] [ответить] [смотреть все] [показать ветку] | +15 +/– |
Универсальный - да, компактный - нет. C++ грамотно разделён на части, которые можно использовать или не использовать при желании. Он используется повсеместно, но многие товарищи (вроде Microsoft) всё норовят как-то по-своему всё делать. Стандарт для того и нужен - интегрировать в язык популярные возможности, чтобы они работали везде одинаково.
| | | 4.28, YetAnotherOnanym, 14:41, 19/08/2014 [ ^] [ ответить] [ смотреть все] | +10 +/– |
> Оптимальные стандарты описывают минимум, отдавая остальное на откуп разработчикам.
Веб-дизайнеры, которые держат несколько версий одного сайта для разных броузеров и их поколений, готовы обнять и расцеловать тебя за эти слова.
| | | 4.39, Rodegast, 15:36, 19/08/2014 [ ^] [ ответить] [ смотреть все] +6 +/–
> Мне прочитать тебе лекцию на тему стандартизации и её пределов?
Да читай! Я с удовольствием её послушаю :D
4.70, Аноним, 22:13, 19/08/2014 [ ^] [ ответить] [ смотреть все] +/–Мартышкам в своём цирке почитай Чтобы Micro oft де-факто не делала - на выходе ... весь текст скрыт [ показать]
5.85, клоун, 01:20, 20/08/2014 [ ^] [ ответить] [ смотреть все] [ к модератору] –3 +/–Чё про Мюнхен новость не написал Даже неИТшные издания её уже опубликовали Сна... весь текст скрыт [ показать] 5.86, клоун, 01:23, 20/08/2014 [ ^] [ ответить] [ смотреть все] [ к модератору] –1 +/–
Пока тут новости про версию 2.0.9.6.666, сервисы привлекают больше 1 млрд.$ инвестиций. Потому что они занимаются общественно-полезным делом, а не г-вно строгают.
3.9, kravich, 12:29, 19/08/2014 [ ^] [ ответить] [ смотреть все] –1 +/–
2.4, Аноним, 12:21, 19/08/2014 [ ^] [ ответить] [ смотреть все] [ показать ветку] –3 +/– 2.11, Nuzhny, 12:48, 19/08/2014 [ ^] [ ответить] [ смотреть все] [ показать ветку] +4 +/– 2.32, Аноним, 15:20, 19/08/2014 [ ^] [ ответить] [ смотреть все] [ показать ветку] +/–Компактным C никогда не был, а универсальность никуда не делась Более того, в... весь текст скрыт [ показать] [ показать ветку] 7.63, iZEN, 21:22, 19/08/2014 [ ^] [ ответить] [ смотреть все] +/–
> Да видимо местные закостенелые недоучки подумали что если язык 10 лет был
> в стагнации то так и будет, и можно будет до пенсии
> ничего нового не изучать чтобы не дай бог мозг не задействовать.
> А тут виш, нежданчик - язык проснулся и развиваться стал, и
> их видите ли не спросили, и теперь хочешь - не хочешь,
> придётся включать мозг, который думать уже не способен.
То же самое в Java: c начала 2000-х пели песни про XML и веб-сервисы. Наконец, пришёл DI в Java 6 и всё испохабил странным образом.
4.53, vollmond, 19:22, 19/08/2014 [ ^] [ ответить] [ смотреть все] –2 +/–Собственно, кто дал право олдфагам тормозить развитие прогресса ... весь текст скрыт [ показать]
1.6, arisu, 12:26, 19/08/2014 [ответить] [смотреть все] +1 +/–
молодцы, глядишь — когда-нибудь и догонят D.
5.83, Michael Shigorin, 00:14, 20/08/2014 [ ^] [ ответить] [ смотреть все] [ к модератору] –1 +/–
>>> Это тот D, который даже недописанный rust обгоняет по популярности?
>> и что? ты, надеюсь, винду используешь? ведь она всяко популярней линукса.
> Господи, какой типичный позорный ответ.
Мой типичный "позорный" в подобных случаях -- ткнуть носом в перевод статьи умного американца об излюбленной американской метрике по имени "популярность": http://old.russ.ru/netcult/20030422-pr.html
4.61, RazrFalcon, 21:05, 19/08/2014 [ ^] [ ответить] [ смотреть все] –1 +/–
Генту. Ваш ход.
4.80, Куяврег, 23:55, 19/08/2014 [ ^] [ ответить] [ смотреть все] [ к модератору] +/–
с языка снял
1.8, _KUL, 12:27, 19/08/2014 [ответить] [смотреть все] +2 +/–
Страуструп по придержи коней, еще С++11 не освоен совсем ... :(
1.21, Аноним, 13:15, 19/08/2014 [ответить] [смотреть все] –3 +/–Мне одному режет глаз международный в новости ... весь текст скрыт [ показать]
1.22, Аноним, 13:27, 19/08/2014 [ответить] [смотреть все] +/–А изменений не слишком мало для нового стандарта ... весь текст скрыт [ показать]
1.25, Аноним, 13:38, 19/08/2014 [ответить] [смотреть все] –1 +/– Поддержка задания шаблонов для переменных Объясните, пожалуйста, что это и дл... весь текст скрыт [ показать]
1.37, Аноним, 15:24, 19/08/2014 [ответить] [смотреть все] +/–Ура, обновил требование к стандарту в своих репах ... весь текст скрыт [ показать]
1.40, iZEN, 16:11, 19/08/2014 [ответить] [смотреть все] –2 +/–
Закручивают гайки C++. Ну и правильно делают.
1.44, анон, 16:44, 19/08/2014 [ответить] [смотреть все] –3 +/–этот ваш цпп как шлюха которая постоянно подстраиваться подо всех и что это за с... весь текст скрыт [ показать]
1.65, Аноним, 21:48, 19/08/2014 [ответить] [смотреть все] +/–Да неужели Не прошло и полувека ... весь текст скрыт [ показать]
1.71, Аноним, 22:15, 19/08/2014 [ответить] [смотреть все] +/–
1.93, yantux, 09:53, 20/08/2014 [ответить] [смотреть все] [к модератору] +1 +/–
сатанинский язык, который надо запретить, он понижает качество, культуру и производительность труда программиста
|
2.94, arisu, 09:55, 20/08/2014 [^] [ответить] [смотреть все] [показать ветку] [к модератору] | –1 +/– |
> сатанинский язык, который надо запретить, он понижает качество, культуру и производительность
> труда программиста
а я, наивный, думал, что идиотизм — он в голове, а не в языке…
| | | 2.98, sorrymak, 15:20, 20/08/2014 [ ^] [ ответить] [ смотреть все] [ показать ветку] [ к модератору] +/–
И рушит духовные скрепы.
1.95, Аноним, 09:56, 20/08/2014 [ответить] [смотреть все] [к модератору] +/–А давайте в следующую версию добавим безразмерный тип Numeric, возможность распр... весь текст скрыт [ показать] Ваш комментарий
Read more |