@ProCxx

Страница 2257 из 2477
Constantine
03.08.2018
19:38:30
Это оттуда вон сверху
Короче написанное выглядит оче странно, в частности, forward всегда имеет шаблонные параметры

Constantine
03.08.2018
19:40:07
Это псевдокод
А почему не decltype(auto)

Aidar
03.08.2018
19:40:28
А нет там все нормально

Google
Dmitry
03.08.2018
19:43:21
Lol
Ну не знаю, сначала вроде получи future, потом толкай promise в асинхрон.

Aidar
03.08.2018
19:43:37
Я просто не увидел

Слишком много шеред поинтеров

Egor
03.08.2018
21:27:51
в си безотносительно к архитектуре считается, что необъявленная функция возвращает инт? т.е. даже на х64?

Assasin
03.08.2018
21:38:57
безотносительно. Но никто не гарантирует одну и ту же длину int-а на разных архитектурах

Egor
03.08.2018
21:40:44
спс

Azoyan
03.08.2018
21:50:40
foo bar; if(bla) { undefine bar; } foo /// wtf???
Так, теперь я не понял вопрос

/dev
03.08.2018
21:51:07
Так, теперь я не понял вопрос
фигня ваш undefine — сыпется в условных ветках

Azoyan
03.08.2018
21:52:03
фигня ваш undefine — сыпется в условных ветках
Возможно он должен уничтожать для текущего скоупа. Тогда внутри тела (возможно большого) можно запретить использовать что-то внешнее. Как тебе такой вариант

foo bar; if(bla) { bar = delete; // lot of code bar.call(); // 'bar' is undeclared in this scope } bar.call(); // ok

Google
Azoyan
03.08.2018
21:59:36
Уничтожать неправильный термин я подобрал

"отвязывать" или данном случае "запрещать" использовать переменную в этом скоупе

Dmitry
03.08.2018
22:00:24
Но самое печальное в усложнении размотки стека. Мало джампнуть в нужную точку для вызова деструкторов. Каждый становится условным

Azoyan
03.08.2018
22:01:55
Ты сейчас со мной говоришь? Это компайл тайм проверки

Dmitry
03.08.2018
22:02:36
Ну если borrow в условной ветке

Azoyan
03.08.2018
22:03:19
Dmitry
03.08.2018
22:03:53
If(condition) rlymove(obj);

Azoyan
03.08.2018
22:04:24
If(condition) rlymove(obj);
Понял if (condition) move(obj); obj = delete;

Согласен. Не получится. Либо придётся писать два раза

Dmitry
03.08.2018
22:07:19
Хотя с другой стороны если объект внутре movable он всё равно там содержит какой то чек. Может стоимость и оправдана.

Только вот ви донт пэй. Потому не руст.

Constantine
03.08.2018
22:14:08
фигня ваш undefine — сыпется в условных ветках
не знаю, что там у кого сыпется)

Stanislav
03.08.2018
22:17:03
не знаю, что там у кого сыпется)
самое главный вопрос, нахер ж так писать

Constantine
03.08.2018
22:17:18
самое главный вопрос, нахер ж так писать
ну у меня лично горит от отсутствия __finally_use(name)

/dev
03.08.2018
22:17:52
ну у меня лично горит от отсутствия __finally_use(name)
ну а для кого скоупы придумали?

Constantine
03.08.2018
22:18:10
че за зверь
undefine-ит переменную и возвращает её значение

не влияет на порядок удаление, только синтаксическая проверка, кроме move

Stanislav
03.08.2018
22:18:31
undefine-ит переменную и возвращает её значение
пытаюсь понять когда это нужно и не понимаю

Google
Constantine
03.08.2018
22:18:42
пытаюсь понять когда это нужно и не понимаю
когда у тебя форвардит функция параметры

Dmitry
03.08.2018
22:18:44
Э?
Ну там чот есть же наверное уводящее вообще переменную из scope, threads или типа того.

Azoyan
03.08.2018
22:18:50
Ребят решение ещё из Си есть. Но как верно сказал Дмитрий, пока новое НЕ придумаешь

Constantine
03.08.2018
22:19:52
пытаюсь понять когда это нужно и не понимаю
когда у тебя временная переменная одноразовая возникает в явном виде, потому что иначе слишком много букв в одном операторе

Constantine
03.08.2018
22:20:31
и когда много букв стало проблемой?
когда оператор на вложенность 30 улетает - проблема

Constantine
03.08.2018
22:24:45


Azoyan
03.08.2018
22:26:20
Покажи, как бы ты хотел

Constantine
03.08.2018
22:26:47
__finally_move() я бы хотел

Azoyan
03.08.2018
22:26:59
for(int i = 0; i < 3; ++i) { if (i % 2) { bar = delete; } bar.call(); }

Constantine
03.08.2018
22:27:02
или просто __finally_use если там понятно

Azoyan
03.08.2018
22:27:12
Constantine
03.08.2018
22:27:39
if (false) bar = delete; bar.something(); //CE

Azoyan
03.08.2018
22:27:57
Вместо = delete поставь finally use

Constantine
03.08.2018
22:28:05
аналогично

Google
Azoyan
03.08.2018
22:28:31
if (false) bar = delete; bar.something(); //CE
Да уж, придется для компилятора писать такие проверки.

Constantine
03.08.2018
22:28:32
при ветвлениях условие на выходе типа "или", любая ветка убивает => убито

Azoyan
03.08.2018
22:29:14
А какая губина убийство

Член класса можно убить?

Constantine
03.08.2018
22:29:24
нет

Azoyan
03.08.2018
22:29:55
А статическую переменную захваченную лямбдой?

Много проблем

Constantine
03.08.2018
22:30:18
?

захваченная лямбдой переменная это член класса

вот при захвате можно убить

Stanislav
03.08.2018
22:34:15
террористы, все бы вам убить, удалить и поделить на 0

Constantine
03.08.2018
22:34:58
х3, я просто ненавижу ошибки, которые можно предотвратить более явным выражением мыслей, которое не поддерживает компилятор

Azoyan
03.08.2018
22:35:07
Много проблем. Я как бы днём был за, теперь против

Constantine
03.08.2018
22:35:24
я не знаю проблем

Azoyan
03.08.2018
22:36:59
я не знаю проблем
Не не, если компилятор будет находить ошибки компиляции по типу тех, что в моем примере кода, то ок. Я просто думаю, что его можно упороть

Constantine
03.08.2018
22:37:23
я не знаю, как можно упороть формальные правила

Azoyan
03.08.2018
22:38:19
ну там метки если использовать, не очень сейчас соображаю. Возможно ты лучше видишь ситуацию

Azoyan
03.08.2018
22:40:16
Google
Constantine
03.08.2018
22:40:24
Потому что это лишний способ ошибиться

И не больше

Azoyan
03.08.2018
22:40:46
Constantine
03.08.2018
22:40:59
Не понимаю, зачем одинаковым именем называть две сущности

Constantine
03.08.2018
22:41:20
Я приводил пример
Давай еще раз, не верю в его существование

Azoyan
03.08.2018
22:42:04
Бля, админы потерли всё нахер

Сейчас заново напишу

Constantine
03.08.2018
22:42:18
Там есть особый случай, когда shadowing переопределяет статический и не переопределяет динамический тип одной и той же переменной

Но до этого точно дальше, чем до Парижа

стало uint userId = toUInt(json["id"]);

все счастливы

Stanislav
03.08.2018
22:43:34
зачем

Constantine
03.08.2018
22:44:15
конвенция: не создавайте одноразовые переменные

Alexander
03.08.2018
22:44:17
снова с этим бредом лезешь?

Azoyan
03.08.2018
22:44:18
зачем
Для сериализации/десерализации удобно

Constantine
03.08.2018
22:44:28
плюсую, это бред

Страница 2257 из 2477