
Vladislav
15.08.2017
21:24:23
clang-format существенно упрощает задачу http://ideone.com/SUbLf9

Azoyan
15.08.2017
21:24:40
Ахахаха

Eugene
15.08.2017
21:24:42

Evgeniy
15.08.2017
21:25:59

Google

Azoyan
15.08.2017
21:26:07

Eugene
15.08.2017
21:26:11

Azoyan
15.08.2017
21:26:53
Я руками всё парсил ?
С телефона ?

Eugene
15.08.2017
21:27:12

Azoyan
15.08.2017
21:27:27
Тренинг

Alexander
15.08.2017
21:27:38

Evgeniy
15.08.2017
21:27:49

Alexander
15.08.2017
21:28:00
тут должна быть гифка массового фейспалма

Azoyan
15.08.2017
21:29:45
Окей, обратите внимание на 11 строку уже в отформатированном коде http://ideone.com/SUbLf9

Vladislav
15.08.2017
21:30:31
а триграфы разве еще не выпилили из языка?

Alexander
15.08.2017
21:31:06

Vladislav
15.08.2017
21:31:27
а, тут не они, похоже

Google

Александр
15.08.2017
21:32:04

Azoyan
15.08.2017
21:32:18

Александр
15.08.2017
21:32:52
Да. В точности. Тут смесь меток, лямбд, расширения gcc для взятия адресов меток и всё

Azoyan
15.08.2017
21:33:12
И у нас победитель!
Но я не видел этой задачи

Vladislav
15.08.2017
21:33:28
наркоманы

Александр
15.08.2017
21:33:42
Сейчас найду, я ж сам это расписывал..
О, ещё расширение в виде исполняемых блоков ({ ... })
Разговор об этом примере часто заходит, надо хештег какой-то запилить

Eugene
15.08.2017
21:38:15

Александр
15.08.2017
21:39:05

Eugene
15.08.2017
21:40:19
Я вообще не понимаю, зачем тратить ресурсы на расширения компилятора?
Сколько человекочасов на это потратили и сколько из них реально используются?

Azoyan
15.08.2017
21:41:10
Их же не от хорошей жизни пишут
Кому-то было нужно

Александр
15.08.2017
21:41:52
Используют инициализаторы из C99, как минимум
Другие полезные расширения как-то и не вспомню

Google

Александр
15.08.2017
21:42:25
О, массивы переменной длины. Студенты их обожают

Alexander
15.08.2017
21:43:51

Александр
15.08.2017
21:44:47

Evgeniy
15.08.2017
21:45:02

Alexander
15.08.2017
21:45:11
надо хоть что-то открыть и глянуть

Александр
15.08.2017
21:46:26

Vladislav
15.08.2017
21:50:05
бывает нужно
alloca не предлагать!

Admin
ERROR: S client not available

Александр
15.08.2017
21:52:03
Но предложу alloca

Vladislav
15.08.2017
21:52:49
Но предложу alloca
это же идеальный инструмент для отстреливания ног, в духе олдскульной сишечки

Александр
15.08.2017
21:53:05
Чего это?
Ничем не хуже malloc

Vladislav
15.08.2017
21:53:32
хуже - ты не можешь его явно освободить

Александр
15.08.2017
21:53:57
Это да, и его в аллокатор не завернуть

Vladislav
15.08.2017
21:54:13
см, например, такой код:
for (size_t i = 0; i < 1000000; ++i) {
int* ar = alloca(i);
// some processing
}

Google

Vladislav
15.08.2017
21:54:27
внимание, вопрос: на какой итерации у тебя кончится стек?

Александр
15.08.2017
21:54:36
Это ясно

Sergey
15.08.2017
22:00:16
Могу дать оценку. От 1 до 999999

Dumitru
15.08.2017
22:01:52
тот же RAII (почти)

Sergey
15.08.2017
22:02:11
Аллока вообще юзают в продакшене?

Vladislav
15.08.2017
22:02:14
Это ясно
а теперь более веселый пример
void foo(size_t i) {
int* ar = alloca(i);
// do smth
}
void bar() {
for (size_t i = 0; i < 1000000; ++i) {
foo(i);
}
}

Sergey
15.08.2017
22:03:34
Эксепшен наверняка порушит такой стек, нет?

Vladislav
15.08.2017
22:03:47
а вот MSVC покажет ворнинг, но таки заинлайнит

Александр
15.08.2017
22:08:43

Vladislav
15.08.2017
22:54:39
это был спам-бот, добавляющий всех к себе на канал (https://t.me/spybiz). Просьба всех, кого он туда добавил, зарепортить его как спаммерский