Thread overview |
---|
August 07, 2002 Destructor called without constructor in static function (old WDJ bug). | ||||
---|---|---|---|---|
| ||||
Attachments:
| Source: #include <iostream.h> class foo {public: static bar() { cout << "bar ";} foo() {cout << "ctor ";} ~foo() {cout << "dtor\n";}}; void main(){ foo().bar();} Output bar dtor Destructor was called without calling the constructor. This was reported in Windows Development Journal with comments by Ron Burk years ago and now I think only DMC++ still has this bug. GNU saying "bar" - perhaps the optimisation is too wonderful to be true... VC++ and BCC32 says "ctor bar dtor" which object was created and destroyed. |
August 08, 2002 Re: Destructor called without constructor in static function (old WDJ bug). | ||||
---|---|---|---|---|
| ||||
Posted in reply to KarL Attachments:
| Does Ron have a web page for this (i.e. are there other tests of interest?)? "KarL" <someone@somewhere.org> wrote in message news:aiq9u1$m0r$1@digitaldaemon.com... Source: #include <iostream.h> class foo {public: static bar() { cout << "bar ";} foo() {cout << "ctor ";} ~foo() {cout << "dtor\n";}}; void main(){ foo().bar();} Output bar dtor Destructor was called without calling the constructor. This was reported in Windows Development Journal with comments by Ron Burk years ago and now I think only DMC++ still has this bug. GNU saying "bar" - perhaps the optimisation is too wonderful to be true... VC++ and BCC32 says "ctor bar dtor" which object was created and destroyed. |
August 08, 2002 Re: Destructor called without constructor in static function (old WDJ bug). | ||||
---|---|---|---|---|
| ||||
Posted in reply to Walter Attachments:
| Unfortunately Ron has left WDJ and WDJ is now called wd-mag and I stopped my subscriptions because the journal is bad now. The file date of the source sayd 4th December 1995 so the bug is really really old. I'll try to dig the article out from my boxes from home and forward it you. Cheers... Walter <walter@digitalmars.com> wrote in message news:aise6g$24el$2@digitaldaemon.com... Does Ron have a web page for this (i.e. are there other tests of interest?)? "KarL" <someone@somewhere.org> wrote in message news:aiq9u1$m0r$1@digitaldaemon.com... Source: #include <iostream.h> class foo {public: static bar() { cout << "bar ";} foo() {cout << "ctor ";} ~foo() {cout << "dtor\n";}}; void main(){ foo().bar();} Output bar dtor Destructor was called without calling the constructor. This was reported in Windows Development Journal with comments by Ron Burk years ago and now I think only DMC++ still has this bug. GNU saying "bar" - perhaps the optimisation is too wonderful to be true... VC++ and BCC32 says "ctor bar dtor" which object was created and destroyed. |
Copyright © 1999-2021 by the D Language Foundation