symbolless stack allocation
    Ali Çehreli via Digitalmars-d-learn 
    digitalmars-d-learn at puremagic.com
       
    Wed Sep 10 12:39:17 PDT 2014
    
    
  
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
    
    
More information about the Digitalmars-d-learn
mailing list