On Saturday, 26 September 2020 at 10:26:15 UTC, IGotD- wrote:
One thing that struck me looking at the source code of scoped, would scoped work inside a class and not only for stack allocations?
It does work, the problem is that scoped returns a Voldemort type, so you have to use typeof(scoped!SomeClass(someConstructorArgs)) to declare a field. Gets really annoying when doing it with any class that doesn't have a zero-argument constructor, especially in generic code.
class Foo {} class Bar { typeof(scoped!Foo()) foo; this() { foo = scoped!Foo(); } }