LINUX.ORG.RU
 

Опубликован стандарт C++11 (бывший C++0x)


0

5

ISO объявила о публикации стандарта C++11. Это первое значительное изменение стандарта с 1998-го года. Вот несколько новых объявленных возможностей:

  • ссылки на временные объекты и семантика переноса (rvalue reference);
  • обобщённые константные выражения (ключевое слово constexpr);
  • внешние шаблоны — возможность запретить компилятору инстанцировать шаблон в единице трансляции (extern template class);
  • ключевое слово auto для задания типа переменной на этапе компиляции;
  • цикл for по коллекции данных;
  • lambda-функции;
  • введена отдельная константа нулевого указателя nullptr;
  • шаблоны с переменным числом параметров (variadic templates);
  • thread-local хранилище, модель памяти с поддержкой потоков;
  • изменения в стандартной библиотеке: включение hash tables, регулярных выражений, smart pointers, элементов синхронизации потоков и т.п.

Полный список новых возможностей с подробным объяснением каждой из них можно посмотреть на http://en.wikipedia.org/wiki/C 11 или же более сжато на русском: http://ru.wikipedia.org/wiki/C 11

Полная поддержка C++11 обещается в GCC 4.7, объем поддержки на текущий момент можно оценить по таблице http://gcc.gnu.org/onlinedocs/libstdc /manual/status.html#status.iso.200x

ISO продает текст стандарта по 352 швейцарских франка ($386), но можно бесплатно скачать, например, его финальный черновик (практически не отличающийся от конечной версии) с сайта рабочей группы: http://www.open-std.org/jtc1/sc22/wg21/

>>> Пресс-релиз


[#]  
aho

отличная новость, ждем полной поддержки в компиляторах

()
[#]  

C#-капец?

***** ()
[#]  
franchukroman

Ждём полной поддержки в шланге.

** ()
[#]  
Gordy

> lambda-функции;
Понравилось.

()
[#]  
CARS

>> lambda-функции

Тошнит уже от них. Пихают повсюду, как модный акксесуар, и считают киллер-фичей. Ну и по доброй традиции напомню, что C++ не нужен.

** ()
[#] Ответ на: комментарий от Ttt 11.10.2011 17:47:41  
encyrtid
>>-----Цитата---->>

C#-капец?

<<-----Цитата----<<

Что курим?

** ()
[#]  
yoghurt

>внешние шаблоны — возможность запретить компилятору инстанцировать шаблон в единице трансляции (extern template class);

И что, это кто-то поддерживает? А как же драма с ключевым словом export?

***** ()
[#]  
Urchin

Надеюсь, GCC 4.7 успеет релизнуться до выхода следующей Slackware

* ()
[#] Ответ на: комментарий от CARS 11.10.2011 17:52:59  
Urchin

> C++ не нужен.

Ок, иди работай дальше в своём паскале.

* ()
[#] Ответ на: комментарий от Urchin 11.10.2011 17:57:44  
lazyklimm

>Ок, иди работай дальше в своём паскале.

в профиль человеку загляни, при чём тут паскакаль?

**** ()
[#]  

Long live C++!

*** ()
[#] Ответ на: комментарий от vden 11.10.2011 17:58:13  
lazyklimm

а теперь посмотри на кучу красненьких No

**** ()
[#]  

А когда в С++ добавят GC, TCO и вывод типов?

*** ()
[#] Ответ на: комментарий от CARS 11.10.2011 17:52:59  
encyrtid
>>-----Цитата---->>

> напомню, что C++ не нужен

<<-----Цитата----<<

Утраиваю

** ()
[#] Ответ на: комментарий от ugoday 11.10.2011 18:00:12  
lazyklimm

>вывод типов

в новом стандарте есть костыль под названием auto

**** ()
[#]  
x4DA

отлично

** ()
[#] Ответ на: комментарий от Urchin 11.10.2011 17:57:44  
rtvd

> > C++ не нужен.

> Ок, иди работай дальше в своём паскале.

В паскале и плюсах работать невозможно, как невозможно работать "в молотке", "в микроскопе" и "в блокноте с ручкой".

Всегда Ваш, К.О.

*** ()
[#]  
Boy_from_Jungle

в бусте же есть некоторые фичи уже давно

** ()
[#] Ответ на: комментарий от lazyklimm 11.10.2011 18:02:17  

> в новом стандарте есть костыль

C++ --- стройная система костылей и подпорок.

*** ()
[#]  
Raving_Zealot

C++ нужен. Авторитетно заявляю.

** ()
[#] Ответ на: комментарий от lazyklimm 11.10.2011 18:02:17  

> есть костыль под названием auto

И почему это костыль, а не нормальное решение?

***** ()
[#] Ответ на: комментарий от Raving_Zealot 11.10.2011 18:05:33  
Raving_Zealot

На чем еще писать Крузисы и всякие 3дс максы?

** ()
[#] Ответ на: комментарий от Boy_from_Jungle 11.10.2011 18:06:09  
lazyklimm

>boost::shared_prt

>boost::scoped_ptr

ехал шаблон через шаблон...

**** ()
[#] Ответ на: комментарий от CARS 11.10.2011 17:52:59  

>Ну и по доброй традиции напомню, что C++ не нужен. Учетверяю.

anonymous ()
[#] Ответ на: комментарий от ugoday 11.10.2011 18:00:12  

> А когда в С++ добавят GC, TCO и вывод типов?

TCO есть уже сто лет в обед, GC в плюсах не нужен - есть подсчет ссылок и умные указатели. Вывод типов? Есть мнение, что нужен только *локальный*, а это уже не больше, чем сахарок...

()
[#]  

Ну и где же gc для нового нескучного стандарта?

* ()
[#]  

Время на изучение языка новичками увеличится в разы.

** ()
[#] Ответ на: комментарий от o4kapuk 11.10.2011 18:09:53  
Reset

в плюсах gc если и нужен, то только в виде отключаемой опции, которая отключена по-дефолту

***** ()
[#] Ответ на: комментарий от Reset 11.10.2011 18:13:11  
lazyklimm

>в виде отключаемой опции, которая отключена по-дефолту

в таком случае я бы назвал её включаемой :)

**** ()
[#]  

Няшно! Надо будет что-нибудь веселое на нем написать

* ()
[#] Ответ на: комментарий от ugoday 11.10.2011 18:00:12  
x4DA

И каким он должен быть этот GC?

mark-and-sweep ? reference conunt ?

Под что оптимизрован? Суперкомпьютеры? Или, может, серверы? Микроконтроллеры?

Что придется делать с legacy кодом?

И что насчет overhead?

** ()
[#] Ответ на: комментарий от dismal_faun 11.10.2011 18:14:25  
x4DA

факториал через лямбды.

** ()
[#] Ответ на: комментарий от dismal_faun 11.10.2011 18:14:25  
Reset

а по-моему это 3.1415здец

***** ()
[#] Ответ на: комментарий от CARS 11.10.2011 17:52:59  
buddhist

Удесятеряю все высказывание :)

*** ()
[#] Ответ на: комментарий от oami 11.10.2011 18:13:09  

Да и как-то похуй.

anonymous ()
[#] Ответ на: комментарий от oami 11.10.2011 18:13:09  
x4DA

ORLY прямо в разы?

имхо, введение { } для всего, что можно, наоборот немного уменьшит.

** ()
[#] Ответ на: комментарий от oami 11.10.2011 18:13:09  
lazyklimm

>Время на изучение языка новичками увеличится в разы.

а зачем? Ведь можно использовать минимально необходимые возможности языка (как многие и делают, кто-то от большого ума, кто-то наоборот)

**** ()
[#] Ответ на: комментарий от rtvd 11.10.2011 18:04:39  
x4DA

может имелся в виду Turbo Pascal?

** ()
[#]  

Наконец-то!!!

**# ()
[#] Ответ на: комментарий от lazyklimm 11.10.2011 18:17:00  
Reset

а можно вообще писать не на C++, а "на Qt" или "на бусте" и не парить мозг :)

***** ()
[#] Ответ на: комментарий от alienclaster 11.10.2011 18:09:00  

> GC в плюсах не нужен - есть подсчет ссылок и умные указатели

ваши умные указатели содержат в себе половину реализации GC, только кривую, тормозную и до нельзя примитивную.

> Вывод типов? Есть мнение, что нужен только *локальный*

Относительно недавно все доказывали, что вывод типов вообще нафиг не нужен. Предсказываю: rогда его добавят в следующей версии стандарта, все будут доказывать его необходимость.

*** ()
[#] Ответ на: комментарий от Reset 11.10.2011 18:13:11  

GC в плюсах нужен только для того, чтобы не выросло поколение фанатиков, которые говорят, что C++ не нужен, так как там нет всяких GC и прочих плюшек новомодных быстрокодерских языков. С технической стороны вопроса GC не нужен вообще.

* ()
[#] Ответ на: комментарий от Reset 11.10.2011 18:18:02  
lazyklimm

>а можно вообще писать не на C++, а "на Qt" или "на бусте" и не парить мозг :)

можно, но как отлаживать этот ад шаблонов - проще повеситься

**** ()
[#] Ответ на: комментарий от x4DA 11.10.2011 18:15:16  

> Что придется делать с legacy кодом?

Достать чернил и плакать.

> И что насчет overhead?

А сейчас?

*** ()