Size: a a a

2021 May 25

Е

Евгений in dlang.ru
Но если сделать
scope foo = new Foo();
то разрушится при выходе из скоупа, а сам объект класса будет создан на стеке.
источник

DH

Dark Hole in dlang.ru
Так себе идея
источник

DH

Dark Hole in dlang.ru
scope переменные не очень хорошо проверяются самим компилятором по умолчанию
источник

Е

Евгений in dlang.ru
Это не идея, это возможность языка.
источник

DH

Dark Hole in dlang.ru
Вроде был DIP на проверку, но я не смотрел
источник

Е

Евгений in dlang.ru
Хотите проверок - идите на раст!
А суровые дешники не боятся стрелять в ногу:
Foo instance;
void bar() {
   scope foo = new Foo("hello");
   instance = foo;
}
источник

DH

Dark Hole in dlang.ru
Да ты банально можешь сделать return
источник

DH

Dark Hole in dlang.ru
И это прокатит
источник

EP

Egor Pugin in dlang.ru
да никто не боится
источник

EP

Egor Pugin in dlang.ru
никто это не делает
источник

Е

Евгений in dlang.ru
return - для слабаков.
источник

DH

Dark Hole in dlang.ru
Чего "этого"?
источник

EP

Egor Pugin in dlang.ru
возвращения локальных объектов из функций
источник

Е

Евгений in dlang.ru
Смотря каких объектов. объекты value-типов можно смело возвращать.
источник

EP

Egor Pugin in dlang.ru
в смысле разрушаемых в нём же
источник

Е

Евгений in dlang.ru
Ну так можно вернуть копию локального объекта,
источник

Е

Евгений in dlang.ru
Прикол в том,что value-типы скопируются неявно.
источник

EP

Egor Pugin in dlang.ru
в общем, ссылки/указатели на локальные
источник

Е

Евгений in dlang.ru
Тогда зачем придумали раст? :)
источник

Е

Евгений in dlang.ru
Видимо иногда таки кто-то делает.
источник