Thread overview
Destructor called without constructor in static function (old WDJ bug).
Aug 07, 2002
KarL
Aug 08, 2002
Walter
Aug 08, 2002
KarL
August 07, 2002
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
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
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.