Программирование игр, создание игрового движка, OpenGL, DirectX, физика, форум
GameDev.ru / Программирование / Форум / Опубликован стандарт C++11 (бывший C++0x)

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

Страницы: 1 2 3 Следующая »
devПостоялецwww11 окт. 201120:02#0
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/

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

slava_mibМодераторwww11 окт. 201121:04#1
dev, в новость бы оформил ;-)
jaguardУчастникwww11 окт. 201121:23#2
Списки инициализации и универсальная инициализация!
А шаблоны всяческие - фтопку. Метапрограммирование в с++ не нужно.
3eR0.1iveПостоялецwww11 окт. 201121:45#3
jaguard
> А шаблоны всяческие - фтопку. Метапрограммирование в с++ не нужно.
Ололололо!

FROLПостоялецwww11 окт. 201123:24#4
:trollface: Ада и то чаще обновляется чем С++ :trollface:
laMer007Удалёнwww11 окт. 201123:27#5
jaguard
>А шаблоны всяческие - не нужны.
Коли так, то и С++ - не нужен.
jaguardУчастникwww11 окт. 201123:53#6
Lamer007
> Коли так, то и С++ - не нужен.

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

laMer007Удалёнwww12 окт. 20110:41#7
jaguard
>Есть удобный синтаксис и рудиментарные классы с наследованием и полиморфизмом - все
Возьмите тогда любой другой язык. Вам его хватит. Смысл С++ без шаблонов сразу исчезнет.
XunterПостоялецwww12 окт. 20111:03#8
jaguard
> С++ без шаблонов вполне себе разумная вещь. Есть удобный синтаксис и
> рудиментарные классы с наследованием
синтаксис - неудобный, наследование почти всегда - зло, а динамический полиморфизм есть и в Си.
си с шаблонами и более строгой типизацией был-бы лучшим языком, чем C++ без шаблонов.
jaguardУчастникwww12 окт. 20111:13#9
Что такое "смысл С++"? Смысл любого ЯП - решать прикладные задачи. Решать прикладные задачи, в частности - геймдевить геймы, можно и нужно без  шаблонов и вообще без ненужного усложнения кода, творения ненужных сущностей и прочих задротских фокусов. Любой сложный шаблонный код - он write only костыль.

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


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

class foo 
{
    bool lie;
    bool truth = true;
    ....
}
jaguardУчастникwww12 окт. 20111:23#10
Xunter
> синтаксис - неудобный, наследование почти всегда - зло, а динамический
> полиморфизм есть и в Си.

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

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

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

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

kvakvsПостоялецwww12 окт. 20111:41#11
jaguard
> Зачем нужна строгая типизация? Глупость какая.
Строгая типизация в том понимании, что переменная как только она в коде появилась, имеет фиксированный тип, и с другими типами (по возможности) не смешивается. Это позволяет генерировать эффективный машинный код.
А вот в том понимании, что ручками прописывать каждый тип, да ещё и в неудобных местах вдали от места первого использования - такая точно не нужна.
3eR0.1iveПостоялецwww12 окт. 20113:30#12
Xunter
> си с шаблонами и более строгой типизацией был-бы лучшим языком, чем C++ без
> шаблонов.
+1
MATovУчастникwww12 окт. 20116:59#13
slava_mib
> dev, в новость бы оформил ;-)

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

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

/ Форум / Программирование игр / Общее

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

2001—2018 © GameDev.ru — Разработка игр