On 09/10/2014 11:31 AM, Jay wrote:
> as specified here:
>
http://wiki.dlang.org/Memory_Management#Allocating_Class_Instances_On_The_Stack
>
>
> i can allocate a class instance on the stack (inside a funtion) like so:
>
> scope c = new C();
That usage of 'scope' is deprecated. There is std.typecons.scoped instead.
>
> i want to create an instance, call one of its methods, and throw it
> away. like so:
>
> scope new C().doSomething();
>
> can i somehow do away with declaring a local variable and calling a
> method on it?
Yes.
import std.stdio;
import std.typecons;
class C
{
int i;
this (int i)
{
this.i = i;
}
void foo()
{
writeln(i);
}
}
void main()
{
scoped!C(42).foo();
}
Ali