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

Reply via email to