typeid + toString = runtime error

monarch_dodra monarchdodra at gmail.com
Mon Dec 31 03:30:42 PST 2012


On Monday, 31 December 2012 at 00:30:58 UTC, Andrej Mitrovic 
wrote:
>
> The basic rule is don't call or do anything which can allocate 
> memory
> in a destructor. printf doesn't allocate, and if you don't do 
> anything
> that allocates you should be ok.

Does multi arg writeln even allocate? I don't underrstand why 
anyone would use ~ when writeln accepts variadic args...

//----
	~this() {writeln(typeid(this).toString, "is dead");}
//----

Fixed! ... right?

If not, multy write?

//----
	~this()
         {
             write(typeid(this).toString);
             write("is dead");
             writeln();
         }
//----

I'd think being forced to use the C fprint is overkill. I use 
writeln in my destructors all the time, and have never 
encountered this problem...


More information about the Digitalmars-d-learn mailing list