jjc@UUNET.UU.NET (James Clark) (05/29/89)
I am not clear about whether g++ is supposed to support static members
with constructors.
Script started on Mon May 29 11:41:42 1989
jclark% cat static.cc
#include <stdio.h>
struct C {
C() { fputs("C\n", stderr); }
~C() { fputs("~C\n", stderr); }
};
struct B {
static C c;
B() { fputs("B\n", stderr); }
~B() { fputs("~B\n", stderr); }
};
static B b;
main()
{
}
jclark% g++ -g -v static.cc
g++ version 1.35.1-
/usr/local/lib/gcc-cpp -+ -v -undef -D__GNU__ -D__GNUG__ -D__cplusplus -Dsparc -Dsun -Dunix -D__sparc__ -D__sun__ -D__unix__ static.cc /tmp/cca26825.cpp
GNU CPP version 1.35
/usr/local/lib/gcc-cc1plus /tmp/cca26825.cpp -quiet -dumpbase static.cc -noreg -version -G -o /tmp/cca26825.s
GNU C++ version 1.35.1- (sparc) compiled by GNU C version 1.35.
static.cc:9: warning: member `c' cannot be static (type `C' needs constructing)
as /tmp/cca26825.s -o static.o
/usr/local/lib/gcc-ld++ -C /usr/local/lib/crt0+.o static.o -lg++ /usr/local/lib/gcc-gnulib -lg -lc
jclark% a.out
C
C
B
~B
~C
~C
jclark% exit
jclark%
script done on Mon May 29 11:42:38 1989
James Clark
jjc@jclark.uucp