import std.stdio ;
class Foo
{
this ( ) { writeln( "ctor" ) ; }
new ( size_t size) {
void * mem = malloc( size) ;
if ( ! mem) throw new Exception ( "Failed alloc" ) ;
return mem;
}
~ this ( ) { writeln( "dtor" ) ; }
delete ( void * ptr)
{
free( ptr) ;
}
}
void main( )
{
/* mallocated */
Foo bar = new Foo( ) ;
writeln( "some program" ) ;
clear( bar) ;
}
aW1wb3J0IHN0ZC5zdGRpbzsKCmNsYXNzIEZvbwp7CiAgICB0aGlzKCkgeyB3cml0ZWxuKCJjdG9yIik7IH0KCiAgICBuZXcoc2l6ZV90IHNpemUpIHsKICAgICAgICB2b2lkKiBtZW0gPSBtYWxsb2Moc2l6ZSk7CiAgICAgICAgaWYgICghbWVtKSB0aHJvdyBuZXcgRXhjZXB0aW9uKCJGYWlsZWQgYWxsb2MiKTsKICAgICAgICByZXR1cm4gbWVtOwogICAgfQoKICAgIH50aGlzKCkgeyB3cml0ZWxuKCJkdG9yIik7IH0KCiAgICBkZWxldGUodm9pZCogcHRyKQogICAgewogICAgICAgIGZyZWUocHRyKTsKICAgIH0KfQoKdm9pZCBtYWluKCkKewogICAgLyogbWFsbG9jYXRlZCAqLwogICAgRm9vIGJhciA9IG5ldyBGb28oKTsKICAgIHdyaXRlbG4oInNvbWUgcHJvZ3JhbSIpOwogICAgY2xlYXIoYmFyKTsKfQ==