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

Aidar
03.08.2018
19:38:42

Constantine
03.08.2018
19:40:07

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

Google

Aidar
03.08.2018
19:41:55

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

/dev
03.08.2018
21:51:07

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

Dmitry
03.08.2018
21:55:22

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
Согласен. Не получится. Либо придётся писать два раза

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

Azoyan
03.08.2018
22:09:12

Constantine
03.08.2018
22:14:08

Stanislav
03.08.2018
22:17:03

Constantine
03.08.2018
22:17:18

Stanislav
03.08.2018
22:17:48

/dev
03.08.2018
22:17:52

Constantine
03.08.2018
22:18:10
че за зверь
undefine-ит переменную и возвращает её значение
не влияет на порядок удаление, только синтаксическая проверка, кроме move

Stanislav
03.08.2018
22:18:31

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

Stanislav
03.08.2018
22:20:19

Constantine
03.08.2018
22:20:31

Stanislav
03.08.2018
22:20:48

/dev
03.08.2018
22:22:41

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

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
ну там метки если использовать, не очень сейчас соображаю. Возможно ты лучше видишь ситуацию

Constantine
03.08.2018
22:39:56

Azoyan
03.08.2018
22:40:16

Google

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

Stanislav
03.08.2018
22:40:31

Azoyan
03.08.2018
22:40:46

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

Azoyan
03.08.2018
22:41:12

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
плюсую, это бред

Stanislav
03.08.2018
22:44:28