LINUX.ORG.RU

Утвердили. Окончательно и безповоротно. Ура, товарищи!

alexeiz ()
Ответ на: комментарий от aho

То есть можно задать компилятору параметр --std=c++0x и писать вот так:

struct A{
int _a;
int _b;
}

A MyVar{11,25};
?

deterok ★★★★★ ()
Ответ на: комментарий от deterok

можно было и раньше :) а по факту - еще надо дождаться публикации стандарта официальной, но она будет уже скоро

aho ()

Теперь он уже официально готов, или как всегда?

Deleted ()
Ответ на: комментарий от Deleted

> Теперь он уже официально готов, или как всегда?

ISO утвердила, т.е. официально

aho ()

Теперь ждем болле чистого и понятного кода С++ ?

Siado ★★★★★ ()
Ответ на: комментарий от Siado

>Теперь ждем болле чистого и понятного кода С++ ?

Ага, с лямбда-выражениями, новым типом ссылок и прочими прелестями))

annulen ★★★★★ ()
Ответ на: комментарий от annulen

вывод типов, range for и списки инициализации как минимум должны помочь писать более компактный и простой код

aho ()

Юзать С++ во времена, когда JVM реактивен и существует стопицот менее долбанутых языков как-то странно.

random_linux_user ()

Пока они мычали и телились, С++ стал окончательно не нужен.

geekless ★★ ()

Теперь можно писать так: [](){}()

Это отличная новость!

AST-PM-105 ()
Ответ на: комментарий от random_linux_user

Честно говоря мне лень искать, но совсем недавно на opennet'е был очередной обзор по скорости выполнения программ на различных языках программирования и необходимое количество для этого выполнения оперативной памяти. Так вот, результаты показывают, что C++ не зря до сих пор популярен.

trex6 ★★★★★ ()
Ответ на: комментарий от random_linux_user

Юзать С++ во времена, когда JVM реактивен и существует стопицот менее долбанутых языков как-то странно.

Проржался. Слушай, расскажи эту хохму еще раз.

Pavval ★★★★★ ()
Ответ на: комментарий от Pavval

Ну а что там хорошего?

Как можно пользоваться языком, в котором указатель на char имеет столько подводных камней?

Или шаблоны. Это просто верх простоты и понятности для программиста.

Или лямбды. Я себе уже не представляю, как все это время C++'ники обходились обычными указателями на функции без полноценных ф-ций высших порядков.

STL? Не самая лучшая библиотека контейнеров.

Boost? Очень тяжелый и bloated.

Tuples? Boost не хочу тянуть. Свое писать?

Статический анализ кода? Тут вообще промолчать можно.

random_linux_user ()
Ответ на: комментарий от Pavval

Даже в Trolltech понимали все недостатки C++ и сделали meta object compiler над C++ обычным.

random_linux_user ()
Ответ на: комментарий от Pavval

Рефлекции? RTTI обрубок какой-то от того, что есть в Java/Python.

Ладно, больше не буду вспоминать костылей C++.

random_linux_user ()
Ответ на: комментарий от random_linux_user

Как можно пользоваться языком, в котором...

Так, этому больше не наливать!

alexeiz ()
Ответ на: комментарий от deterok

[](){}() - просто строка, которая, по сути, ничего полезного не делает.

Создается лямбда, которая не захватывает ничего из среды, имеет пустой список аргументов и ничего не делает, и эта лямбда вызывается.

Deleted ()
Ответ на: комментарий от alexeiz

const char a [] = «Brutal» - константный указатель на константные данные.

char * const a = «Brutal» - константный указатель на неконстантные данные (можем залезть(на запись) в константную область памяти - со всеми вытекающими).

const char *a = «Brutal» - неконстантный указатель на константные данные (можем потерять строку).

Это кул? :)

random_linux_user ()
Ответ на: комментарий от random_linux_user

Как можно пользоваться языком, в котором указатель на char имеет столько подводных камней?

Где подводные камни? А вообще, char* для строк - плохое наследство от C, ибо в C++ есть нормальный string.

Deleted ()

А C1X утвердят когда-нибудь, интересно?

unsigned ★★★ ()
Ответ на: комментарий от random_linux_user

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

AIv ★★★★★ ()
Ответ на: комментарий от alexeiz

Или вот еще мега-перл от С++'ников в реальном проекте:

namespace { const std::string str_a = «str_a_content»; const std::string str_b = «str_b_content»; const std::string str_c = «str_c_content»; }

Что плохого? Получаем копию всего этого в каждом cpp файле! ;-)

random_linux_user ()
Ответ на: комментарий от Siado

>Теперь ждем болле чистого и понятного кода С++ ?

/0

encyrtid ★★★★★ ()
Ответ на: комментарий от aho

Тогда еще вопрос, а чем директива --std=c++0x отличается от --std=gnu++0x?

deterok ★★★★★ ()
Ответ на: комментарий от random_linux_user

moc нужен только потому, что в C++ нет интроспекции.

Deleted ()
Ответ на: комментарий от deterok

К.О.: названием. Делают они одно и то же.

Deleted ()

Торвальдс плачет крокодильими слезами.

bk_ ★★ ()
Ответ на: комментарий от random_linux_user

Конечно. Кнопку «Сделать все зашибись» пока не придумали.

Deleted ()
Ответ на: комментарий от bk_

А какое отношение имеет Торвальдс к C++?

Deleted ()
Ответ на: комментарий от random_linux_user

Это не char, это ты не разобрался с модификаторами типов в C++.

Пиши так, если хочешь, чтобы все было константно:

char const * const a = "...";

На самом деле, все варианты (константный указатель, указатель на константные данные) имеют смысл, и применяются там, где нужно. Поэтому они и есть в C++. Это нужно просто знать и уметь пользоваться.

alexeiz ()
Ответ на: комментарий от Deleted

Господа, Вы бы хоть немножко разные аватарки поставили. А то читаю и не могу понять, зачем человек сам с собой спорит, вслух, на форуме.

trex6 ★★★★★ ()

Кстати в с++ уже можно объявлять массив с размером, неизвестным во время компиляции? А то после C так непривычно.

slyjoeh ★★ ()
Ответ на: комментарий от random_linux_user

Этот аргумент уже устарел. Пока что все твои примеры - полная лажа. Если идиоты могут писать на С++ идиотский код, это не значит, что язык плох. Нормальный код на С++ писать можно легко и непринужденно. Но я видел идиотский код и на Java , и на C# и на Python.

alexeiz ()
Ответ на: комментарий от random_linux_user

Дай я тебя удивлю. В спп можно ещё вот так сделать.

int *foo(void)
{
    return (int *)0x12345678;
}

И ещё куча разных весёлых примеров, всех и не перечислишь. Но ты пойми, что те, кто с этим работает хорошо себе представляет, с чем он работает. Так что твои выпады в стиле jvm и всё такое здесь не к месту.

mi_estas ()
Ответ на: комментарий от slyjoeh

В gcc всегда можно было. В clang - как минимум с 2.8

Deleted ()
Ответ на: комментарий от stevejobs

Я в курсе про вектор, ты зря беспокоился. Имелось в виду что-то типа int arr[n], где n не известно при компиляции

slyjoeh ★★ ()
Ответ на: комментарий от slyjoeh

Кстати в с++ уже можно объявлять массив с размером, неизвестным во время компиляции?

alloca можно всегда использовать для этой цели. На самом деле массивы на стеке не очень хорошо создавать, потому что стек обычно сильно ограничен (по сравнению с хипом), и выход за пределы стека череват sigsegv-ом.

alexeiz ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.