c++ - Destructor called without constructor in static function (old WDJ bug).
charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable 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.=20
Aug 06 2002
charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable 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.=20
Aug 07 2002
charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable 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. =20 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.=20
Aug 07 2002