Объявлено (http://isocpp.org/blog/2014/08/we-have-cpp14) о готовности нового международного стандарта для языка программирования Си++ - ISO/IEC 14882:2014(E), известного также под именем C++14. В настоящее время стандарт прошёл утверждение и перешёл на стадию подготовки документа к публикации, на которой будет проведена работа по редакторской правке орфографических ошибок и опечаток.
Новый стандарт не содержит кардинальных изменений и рассматривается в качестве корректирующего расширения стандарта C++11 (http://www.opennet.me/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.me/opennews/art.shtml?num=40408
Из компактного универсального языка хотят сделать всепогодную Яву. Осталось добавить новый тип данных для веса продуктов в блюдах и ключевые слова [vkusno], [ne_ochen'], [pochti_govno] чтобы в процессе компиляции показать вкус блюда, которое может получиться в ходе выполнения.
Универсальный - да, компактный - нет. C++ грамотно разделён на части, которые можно использовать или не использовать при желании. Он используется повсеместно, но многие товарищи (вроде Microsoft) всё норовят как-то по-своему всё делать. Стандарт для того и нужен - интегрировать в язык популярные возможности, чтобы они работали везде одинаково.
Мне прочитать тебе лекцию на тему стандартизации и её пределов?
Оптимальные стандарты описывают минимум, отдавая остальное на откуп разработчикам. Как только складывается де-факто стандарт, он включается в стандарт де-юре.Всё остальное - попытки объять необъятное, как это произошло с OpenDocument, где нет ни одного полного описания стандарта и ни одной реализации, которая бы полностью реализовывала описанный неполный стандарт. Более того: с большой вероятностью они никогда не появятся.
Ну и на хер мне код, который будет компилиться только однми компилятором?
> Оптимальные стандарты описывают минимум, отдавая остальное на откуп разработчикам.Веб-дизайнеры, которые держат несколько версий одного сайта для разных броузеров и их поколений, готовы обнять и расцеловать тебя за эти слова.
Может расскажешь что отличает версии сайтов для разных браузеров друг от друга?Поддержка Флэш, которая стала стандартом де-факто, но не де-юре?
Или абсолютное позиционирование элементов, которое используется де-факто, но не включено в стандарт де-юре?
Если коротко - у них жабаскрипт немножко по-разному исполняется. И ДОМ они трактуют, скажем так, "с нюансами".
Добавим к этому различия в css и даже html и получим, что нет ни единой составляющей веб страницы, которая была бы одинаковой для всех браузеров.
> Может расскажешь что отличает версии сайтов для разных браузеров друг от друга?Могу сказать что у них общее: ж@порукость создателей сайта и/или браузера под который надо отдельную версию.
> Может расскажешь что отличает версии сайтов для разных браузеров друг от друга?
Де факто флешу в вебе пиндец, canvas/webgl/html5 multimedia умеет больший процент браузеров чем браузеров с флешом. Так что кирдык флешу. Де факто кирдык. В новых разработках он откровенно NRND и потому практически не применяется.
> Или абсолютное позиционирование элементов, которое используется де-факто,
А за такое надо вообще расстреливать тухлыми помидорами с особой жестокостью.
> Мне прочитать тебе лекцию на тему стандартизации и её пределов?Да читай! Я с удовольствием её послушаю :D
>Мне прочитать тебе лекцию на тему стандартизации и её пределов?Мартышкам в своём цирке почитай.
>Как только складывается де-факто стандарт, он включается в стандарт де-юре.
Чтобы Micro$oft де-факто не делала - на выходе получается де-фекто.
> Чтобы Micro$oft де-факто не делала - на выходе получается де-фекто.Эти фаготы вообще-то сами признавались что втыкают палки в колеса открытому софту путем креативной доработки стандартов до нестандартного состояния. Halloween documents I и II.
Нет, дорогой MS. Мы не прощаем и не забываем.
> Всё остальное - попытки объять необъятное, как это произошло с...OOXML?
Шоб вас, теоретиков, хоть передёргивать-то грамотно учили в некрософте...
Чё про Мюнхен новость не написал? Даже неИТшные издания её уже опубликовали.Сначала Испания, теперь Германия. Все (повторю: ВСЕ) считаю Линукс г-ом. Вчерашним идеологам внедрения Линукс сегодня стыдно за их убеждённость. Они извиняются перед сотрудниками и налогоплательщиками.
Чё ж ты об этом не написал?
В форматах офисных документов ты не разбираешься - это понятно, незачем выставлять свою неграмотность напоказ и уж тем более не стоит гордиться ею. Завтра будет стыдно. Линукс - г-но. И это оценка всех, кто им занимается. Вы - г-но, сливающее время в унитаз вместо того, чтобы сделать что-то реально стоящее.
Стыдно? Понимаю... Понимаю... :-)))))))))))))))))))))))))) Понимаю и ржу :-))))))))))))))))))))))))
Испания! Испания! Испания!
ГА-ГА-ГА-ГА-ГА!!!! :-)))))))))))))))))))))))))
Мюнхен! Мюнхен! Мюнхен!
ГА-ГА-ГА-ГА-ГА!!!! :-)))))))))))))))))))))))))
Кто там следующий? Какой-то колхоз из Швейцарии, вроде? Подождём. Все отказываются в начале 3-ьего года. У тех клоунов только второй пошёл.
А ты, смешной.
> А ты, смешной.Да чего смешного? Клоун дешево отрабатывает бабки MS, на заказ поливая то за что уплачено. Не более. Обычный MSовский тyпобот, коих вербуют пачками.
Только вот если приходится скатываться до поливания конкурента - это намек на то что козырять преимуществами уже не получается, так что конкурента надо сначала принизить, а то руки коротки и все такое :)
Пока тут новости про версию 2.0.9.6.666, сервисы привлекают больше 1 млрд.$ инвестиций. Потому что они занимаются общественно-полезным делом, а не г-вно строгают.
> Пока тут новости про версию 2.0.9.6.666, сервисы привлекают больше 1 млрд.$ инвестиций.
> Потому что они занимаются общественно-полезным делом, а не г-вно строгают.Тебе от этого миллиарда ничего не обломится, да и большинство новых стартапов как-то так дружно труба шатали твою винду с ее долбанутым лицензированием и дружно юзают пингвинов.
>C++ грамотно разделён на части, которые можно использовать или не использовать при желанииВот кстати да
> компактногоНу ты и клоун.
С++ никогда не был маленьким и компактным. Не путай его с С.
> С++ никогда не был маленьким и компактным. Не путай его с С.Ты хотел компетенции от дешевого MSовского наймита, да еще с таким ником? Ишь, размечтался.
Компактным C++ никогда не был, а универсальность никуда не делась. Более того, вас никто не заставляет понимать и учить новые фичи - можете писать на "C с классами" и с C++14, как вас научили в вашей церковно-приходской школе.
Однако же все его фитчи первым делом будут включать ньюфаги в свои сорци, прикажете не читать их и увольняться ?
Их будут включать не ньюфаги, а все кро прочитал и осилил стандарт. А вы да - либо будьте в курсе развития инструмента который используете, либо валите в дворники.
Этот стандарт какой-то особенный, который не каждый способен осилить ? Хм.. ясно, то-то я думал, почему у меня даже нет желание его изучать, но скорей это из-за того, что мне сполна хватает C++ ещё до 11, но и 11 я практически не исполюзую
Да видимо местные закостенелые недоучки подумали что если язык 10 лет был в стагнации то так и будет, и можно будет до пенсии ничего нового не изучать чтобы не дай бог мозг не задействовать. А тут виш, нежданчик - язык проснулся и развиваться стал, и их видите ли не спросили, и теперь хочешь - не хочешь, придётся включать мозг, который думать уже не способен.
> Да видимо местные закостенелые недоучки подумали что если язык 10 лет был
> в стагнации то так и будет, и можно будет до пенсии
> ничего нового не изучать чтобы не дай бог мозг не задействовать.
> А тут виш, нежданчик - язык проснулся и развиваться стал, и
> их видите ли не спросили, и теперь хочешь - не хочешь,
> придётся включать мозг, который думать уже не способен.Да это язык вот как уже традиционно начинает развиваться каждые 3 года(в 17 выйдет C++17), как же бедные люди писали то на старом добром 98\2003, руки наверное все себе поломали от таких страшных усилий, ведь в предыдущих версиях, ланг по-дефолту не включали в себя заранее готовые задачки и решения на разные темы, а тут на тебе и мозг вовсе не нужен, когда в новых ревах всё уже готово и тебе единственное, что нужно - вызвать это и усе, Вася!
> Да видимо местные закостенелые недоучки подумали что если язык 10 лет был
> в стагнации то так и будет, и можно будет до пенсии
> ничего нового не изучать чтобы не дай бог мозг не задействовать.
> А тут виш, нежданчик - язык проснулся и развиваться стал, и
> их видите ли не спросили, и теперь хочешь - не хочешь,
> придётся включать мозг, который думать уже не способен.То же самое в Java: c начала 2000-х пели песни про XML и веб-сервисы. Наконец, пришёл DI в Java 6 и всё испохабил странным образом.
В Java ничего нельзя испохабить, он родился ущербным.
Собственно, кто дал право олдфагам тормозить развитие прогресса?
Прогресс в моем понимание - это то, что движется вперед, а не в обратную сторону.
> Собственно, кто дал право олдфагам тормозить развитие прогресса?прогресс вовсе не заключается в том, чтобы добавлять свистоперделки.
>Возможность указания чисел в двоичном представленииОтлично
молодцы, глядишь — когда-нибудь и догонят D.
Это тот D, который даже недописанный rust обгоняет по популярности?
> Это тот D, который даже недописанный rust обгоняет по популярности?и что? ты, надеюсь, винду используешь? ведь она всяко популярней линукса.
>> Это тот D, который даже недописанный rust обгоняет по популярности?
> и что? ты, надеюсь, винду используешь? ведь она всяко популярней линукса.Господи, какой типичный позорный ответ.
чётко ты меня срезал!
http://www.opennet.me/openforum/vsluhforumID3/97934.html#38
ещё какую-нибудь глупость напишешь, или уже выдохся?
>>> Это тот D, который даже недописанный rust обгоняет по популярности?
>> и что? ты, надеюсь, винду используешь? ведь она всяко популярней линукса.
> Господи, какой типичный позорный ответ.Мой типичный "позорный" в подобных случаях -- ткнуть носом в перевод статьи умного американца об излюбленной американской метрике по имени "популярность": http://old.russ.ru/netcult/20030422-pr.html
Генту. Ваш ход.
> Генту. Ваш ход.Ну так у нее с популярностью - "не очень" :)
//извини, Кэп, но я тоже хочу покапитанить немного.
> //извини, Кэп, но я тоже хочу покапитанить немного.ок, этого можешь скушать ты, их тут много, мне не жалко. ;-)
с языка снял
Страуструп по придержи коней, еще С++11 не освоен совсем ... :(
>Страуструп по придержи коней, еще С++11 не освоен совсем ... :(А они, наверное, так подгоняют коней. Разработчики компиляторов говорят: "У нас поддержка C++11 еще хромает, но это же новый стандарт..." А теперь у них поддержка C++ будет отставать уже на две редакции. Может, поторопятся.
Нормальные компиляторы уже поддерживают стандарт и часть будущего стандарта.
> Страуструп по придержи коней, еще С++11 не освоен совсем ... :(Ради деревенщины которая учиться не хочет? Зачем?
> Новый стандарт не содержит кардинальных изменений и рассматривается в качестве корректирующего расширения стандарта C++11собсно это всего-лишь «работа над ошибками».
Мне одному режет глаз "международный" в новости?
Надо "российский"?
>ISO/IEC 14882:2014(E),где ISO - International Organization for Standardization. Чего не понятно-то?
по букве, но не по факту))
А изменений не слишком мало для нового стандарта?
Скажите "слава Богу".
так гораздо лучше, чем 10 лет разрабатывать стандарт с огромной кучей новых фич, которые до сих пор просто не воспринимаются многими разработчиками, несмотря на свою очевидную нужность и полезность
>А изменений не слишком мало для нового стандарта?Да уж, могли бы сигналы и слоты
"Поддержка задания шаблонов для переменных". Объясните, пожалуйста, что это и для чего используется
> "Поддержка задания шаблонов для переменных". Объясните, пожалуйста, что это и для чего
> используетсяgoogle://variable template. С вас $100 за консультацию, обращайтесь.
Ура, обновил требование к стандарту в своих репах.
> Ура, обновил требование к стандарту в своих репах.и тут ты проснулся
Закручивают гайки C++. Ну и правильно делают.
> Закручивают гайки C++. Ну и правильно делают.Известный эксперт по плюсам - изен :)
этот ваш цпп как шлюха которая постоянно подстраиваться подо всех.и что это за стандарты такие, которые раз в год меняют и новые выходят...
под вас она тоже подстроилась, или всё-таки изучать пришлось?
> и что это за стандарты такие, которые раз в год меняют и новые выходят...О, младшие классы подтянулись. Ничего, до тысяч считать научат, сможешь отнять 2011 из 2014.
То ли дело рубисты и бидонисты - подстраиваются под ЯП и переучиваются на ровном месте постоянно :)
> можно указать "a = 0b101010;" или "a = 0b100'0001;";Да неужели?! Не прошло и полувека!!!!
> Возможность определения пользователем собственных литералов для std::types, которые не могут использоваться в стандартной библиотеке. Из добавленных стандартных литералов отмечаются "s" (для строковых типов std::basic_string), "h", "min", "s", "ms", "us" и "ns" (для временных интервалов std::chrono::duration);20 лет ждал
> 20 лет ждал(задумчиво)
import core.time;
auto a = 3.hours;
> частности, полноценная поддержка C++14 уже реализована в LLVM/Clang 3.4о как, c++11 поддерживать до конца ещё не научились, а 14 полноценно умеют.
сатанинский язык, который надо запретить, он понижает качество, культуру и производительность труда программиста
> сатанинский язык, который надо запретить, он понижает качество, культуру и производительность
> труда программистаа я, наивный, думал, что идиотизм — он в голове, а не в языке…
из головы он переходит в предметы которые производят руки связанные с головой одним телом. Но плюсов это не очень касается на фоне остальных альтернативных яп.
И рушит духовные скрепы.
А давайте в следующую версию добавим безразмерный тип Numeric, возможность распределённой декларации классов и возможности по динамическому присоединению методов к объектам и классам как в Ruby......По-моему пора C++ переименовывать в C** или C?!....
добавим JSON.parse и JSON.stringify
Хочу тип decimal