ep
Я вообще не понимаю, зачем тратить ресурсы на расширения компилятора? Сколько человекочасов на это потратили и сколько из них реально используются?
Ivan
Их же не от хорошей жизни пишут
Ivan
Кому-то было нужно
Александр
Используют инициализаторы из C99, как минимум
Александр
Другие полезные расширения как-то и не вспомню
Александр
О, массивы переменной длины. Студенты их обожают
Александр
Зато сколько часов они "сэкономили", не используя vector
Александр
в сях же
В сях это стандарт
Vladislav
Зато сколько часов они "сэкономили", не используя vector
ну вообще-то VLA несколько быстрее vector'а
Vladislav
бывает нужно
Vladislav
alloca не предлагать!
Vladislav
Александр
бывает нужно
В этом плане может и соглашусь
Александр
Но предложу alloca
Vladislav
Но предложу alloca
это же идеальный инструмент для отстреливания ног, в духе олдскульной сишечки
Александр
Чего это?
Александр
Ничем не хуже malloc
Vladislav
хуже - ты не можешь его явно освободить
Александр
Это да, и его в аллокатор не завернуть
Vladislav
см, например, такой код: for (size_t i = 0; i < 1000000; ++i) { int* ar = alloca(i); // some processing }
Vladislav
внимание, вопрос: на какой итерации у тебя кончится стек?
Александр
Это ясно
Sergey
Могу дать оценку. От 1 до 999999
Sergey
Dumitru
тот же RAII (почти)
Sergey
Аллока вообще юзают в продакшене?
Vladislav
Это ясно
а теперь более веселый пример void foo(size_t i) { int* ar = alloca(i); // do smth } void bar() { for (size_t i = 0; i < 1000000; ++i) { foo(i); } }
Vladislav
а теперь более веселый пример void foo(size_t i) { int* ar = alloca(i); // do smth } void bar() { for (size_t i = 0; i < 1000000; ++i) { foo(i); } }
в дебаге все работает, но после компиляции с оптимизациями, инлайнер превращает его в пример выше
Vladislav
тот же RAII (почти)
нет, в том-то и дело
Sergey
Эксепшен наверняка порушит такой стек, нет?
Vladislav
в дебаге все работает, но после компиляции с оптимизациями, инлайнер превращает его в пример выше
благо, в gcc решили это радикально и запретили инлайнить что-либо, использующее alloca (что тоже весело)
Vladislav
а вот MSVC покажет ворнинг, но таки заинлайнит
Vladislav
это был спам-бот, добавляющий всех к себе на канал (https://t.me/spybiz). Просьба всех, кого он туда добавил, зарепортить его как спаммерский
Vladislav
Предлагаю пройти к админам чата в личку и спросить, зачем они спамят? @NikitaYrko @sabcoin
Vladislav
откуда инфа что они админы?
пометка "админ" в информации группы
доня.
можно скрин плес а то он отрицает (один из них)
Vladislav
Vladislav
доня.
спс
доня.
Anonymous
Хэй, всем привет. Киньте линк на чат для java, пожалуйста.
Anonymous
вообще, явка — фу, го в C++)
Anonymous
вообще, явка — фу, го в C++)
я же двойной агент.
Burado
Java кстати вообще не понравилась, даже при том, что С# нравится.
Processor
а мне typescript понравился
Processor
получился какой-то java-java-script
Anonymous
😛
Anatoly
Эйнштейн?
Anonymous
+
Matwey
Господа, а где узнать полный список pro. чатов?
доня.
вот вроде: https://t.me/proDOT
Ned
/help@FailsBot
Danylo
найса
🦥Alex Fails
вот вроде: https://t.me/proDOT
плохо то, что это неполный список вообще( а автор продался( я пилю новый канал, скоро в своем канале скину анонс
🐙 Antony
Тут интересная тема всплыла в https://stdcpp.ru/proposals/59665faf-bdfe-4182-9d36-46f7d39feb4f Хочется сделать так, чтобы guaranteed copy elision работал "сквозь" вызов функции: godbolt.org/g/V3edfK Проблема в том, что если мы передаём prvalue в функцию, оно становится xvalue. Это убивает guaranteed copy elision + при этом меняется последовательность вызовов. foo function(); // returns prvalue void func1(foo&& f) { // f is an xvalue foo f0 = std::move(f); } Есть идеи, как скрестить слона со свиньёй, ничего не поломав?
🐙 Antony
При инлайне функции првалуе остается им?
Неа. Вот можно попробовать на это завязаться. Но поломает пользовательский код: struct foo { foo() { std::this_thread::sleep_for(10s); } }; inline insert_foo(foo&& f) { std::unique_lock l(mutex); data.insert(std::move(f)) } Если оставлять prvallue, то 10 секунд мы будем спать под локом. Теперешнее поведение - 10 секунд спим, потом под локом вставляемся
Square
там актуальнее
FailsBot
/help@FailsBot
USAGE: /help - prints this message; /vzhuh [message] - do vzhuh; /start - info about bot.
⁣Денис
/vzhuh@FailsBot
FailsBot
∧_∧ ( ・ω・。)つ━☆・*。 ⊂  ノ    ・゜+. しーJ   °。+ *´¨)          .· ´¸.·*´¨) ¸.·*¨)           (¸.·´ (¸.·'* ☆
FailsBot
∧_∧ ( ・ω・。)つ━☆・*。 ⊂  ノ    ・゜+. しーJ   °。+ *´¨)          .· ´¸.·*´¨) ¸.·*¨)           (¸.·´ (¸.·'* ☆
Рустем
Pavel
/vzhuh@FailsBot Это вжух!!!
FailsBot
∧_∧ ( ・ω・。)つ━☆・*。 ⊂  ノ    ・゜+. しーJ   °。+ *´¨)          .· ´¸.·*´¨) ¸.·*¨)           (¸.·´ (¸.·'* ☆ Это вжух!!!
🦥Alex Fails
#flood
Igor
Igor
#offtop: ни у кого нет под рукой хайреса этого чуда?) именно исходной фотки, не перепечатки
Maxim
Я пытаюсь разобрать это, но компилятор не понимает конструкцию (&&$<&&_)