destroy(someStruct)
    John Colvin via Digitalmars-d-learn 
    digitalmars-d-learn at puremagic.com
       
    Sat Sep 20 15:46:07 PDT 2014
    
    
  
import core.stdc.stdio;
struct S
{
	~this()
	{
		printf("%x\n".ptr, &this);
	}
}
void main()
{
	S* sp = new S;
	destroy(*sp);
	S s;
	destroy(s);
	auto sa = new S[2];
	foreach(ref s_; sa)
		destroy(s_);
}
output:
4002dff0
bfa89a70
4002dfe0
4002dfe1
bfa89a70
Note the double destruction of s
Its seems that calling destroy on a stack-allocated struct is a 
no-no (unless you have a re-entrant destructor). The other two 
examples seem OK though.
Am I in dangerous territory? Will I see unexpected 
double-destructions in some cases?
    
    
More information about the Digitalmars-d-learn
mailing list