LINUX.ORG.RU

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

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

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

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

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

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

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

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

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

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

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

aho
()

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

random_linux_user
()
Ответ на: комментарий от 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 ★★★★★
()
Ответ на: комментарий от random_linux_user

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

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

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

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
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.