Войти
ПрограммированиеФорумОбщее

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

Страницы: 1 2 3 Следующая »
#0
20:02, 11 окт. 2011

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/

Пресс релиз
Источник


#1
21:04, 11 окт. 2011

dev, в новость бы оформил ;-)

#2
21:23, 11 окт. 2011

Списки инициализации и универсальная инициализация!
А шаблоны всяческие - фтопку. Метапрограммирование в с++ не нужно.

#3
21:45, 11 окт. 2011

jaguard
> А шаблоны всяческие - фтопку. Метапрограммирование в с++ не нужно.
Ололололо!

#4
23:24, 11 окт. 2011
:trollface: Ада и то чаще обновляется чем С++ :trollface:
#5
23:27, 11 окт. 2011

jaguard
>А шаблоны всяческие - не нужны.
Коли так, то и С++ - не нужен.

#6
23:53, 11 окт. 2011

Lamer007
> Коли так, то и С++ - не нужен.

Ну почему не нужен? С++ без шаблонов вполне себе разумная вещь. Есть удобный синтаксис и рудиментарные классы с наследованием и полиморфизмом - все, остальное успешно обрезает бритва Оккама.

#7
0:41, 12 окт. 2011

jaguard
>Есть удобный синтаксис и рудиментарные классы с наследованием и полиморфизмом - все
Возьмите тогда любой другой язык. Вам его хватит. Смысл С++ без шаблонов сразу исчезнет.

#8
1:03, 12 окт. 2011

jaguard
> С++ без шаблонов вполне себе разумная вещь. Есть удобный синтаксис и
> рудиментарные классы с наследованием
синтаксис - неудобный, наследование почти всегда - зло, а динамический полиморфизм есть и в Си.
си с шаблонами и более строгой типизацией был-бы лучшим языком, чем C++ без шаблонов.

#9
1:13, 12 окт. 2011

Что такое "смысл С++"? Смысл любого ЯП - решать прикладные задачи. Решать прикладные задачи, в частности - геймдевить геймы, можно и нужно без  шаблонов и вообще без ненужного усложнения кода, творения ненужных сущностей и прочих задротских фокусов. Любой сложный шаблонный код - он write only костыль.

Меня С++ как инструмент вполне устраивает, я пишу предельно простой, четкий императивный код. Но читать чужой код любителя вот таких вот бустоподобных самописных костылей - это адский ад.


ЗЫ:
Я не понял только, вот так по новому стандарту писать все еще нельзя? Вроде в C++0x обещали нечто подобное.

class foo 
{
    bool lie;
    bool truth = true;
    ....
}
#10
1:23, 12 окт. 2011

Xunter
> синтаксис - неудобный, наследование почти всегда - зло, а динамический
> полиморфизм есть и в Си.

Си фактически является подмножеством С++ и потому не нужен. Никто не мешает использовать c-style конструкции если с++-style не нравятся.
Я к примеру reinterpret_cast (и много чего еще) не использую.

С89 с его определением переменных исключительно в начале функции является невнятным кастратом приличного языка и потому не нужен тем более.

> си с шаблонами и более строгой типизацией был-бы лучшим языком, чем C++ без
> шаблонов.

Зачем нужна строгая типизация? Глупость какая.

#11
1:41, 12 окт. 2011

jaguard
> Зачем нужна строгая типизация? Глупость какая.
Строгая типизация в том понимании, что переменная как только она в коде появилась, имеет фиксированный тип, и с другими типами (по возможности) не смешивается. Это позволяет генерировать эффективный машинный код.
А вот в том понимании, что ручками прописывать каждый тип, да ещё и в неудобных местах вдали от места первого использования - такая точно не нужна.

#12
3:30, 12 окт. 2011

Xunter
> си с шаблонами и более строгой типизацией был-бы лучшим языком, чем C++ без
> шаблонов.
+1

#13
6:59, 12 окт. 2011

slava_mib
> dev, в новость бы оформил ;-)

+1, нуна новость )

#14
8:05, 12 окт. 2011

jaguard
> Есть удобный синтаксис и рудиментарные классы с наследованием и полиморфизмом
ООП в С++ реализовано довольно убого. В том же Vala (http://live.gnome.org/Vala/Tutorial), который по сути является препроцессором для Си, ООП-возможностей больше.
Есть мнение, что С++ жив только благодаря шаблонам и низкоуровневым возможностям.

Страницы: 1 2 3 Следующая »
ПрограммированиеФорумОбщее

Тема в архиве.