🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

1 total messages Started by Paul Vaughan Thu, 26 Oct 1989 15:29
new/this and constructors
#549
Author: Paul Vaughan
Date: Thu, 26 Oct 1989 15:29
61 lines
2351 bytes
	This code compiles under 1.35.1, but not under 1.36.  The code
is annotated with the error given by the 1.36 compiler, on the line
that it mentioned.


class A {
public:
  A() {}
};

class B {
public:
  B(A* a = new A)  
    {} // sorry, not implemented: that operation not supported for default parameters
};


main() {
  A a;
}

This is how it was compiled

[1.132]puma) /usr/local/gnu/1.36/bin/g++ -v -Dv136 -g -B/usr/local/gnu/1.36/lib/gcc- -g -O -DX11 -I/usr/local/gnu/1.36/lib/g++-include  -o args args.cc -L/usr/local/gnu/1.36/lib -lg++ -llwp -lX11 -lm 
gcc version 1.36
 /usr/local/gnu/1.36/lib/gcc-cpp -+ -v -Dv136 -DX11 -I/usr/local/gnu/1.36/lib/g++-include -undef -D__GNUC__ -Dmc68000 -Dsun -Dunix -D__mc68000__ -D__sun__ -D__unix__ -D__OPTIMIZE__ -D__HAVE_68881__ -Dmc68020 args.cc /usr/tmp/cca01499.cpp
GNU CPP version 1.36
 /usr/local/gnu/1.36/lib/gcc-cc1plus /usr/tmp/cca01499.cpp -quiet -dumpbase args.cc -g -O -version -o /usr/tmp/cca01499.s
GNU C++ version 1.36.0- (based on GCC 1.36) (68k, MIT syntax) compiled by GNU C version 1.36.
default target switches: -m68020 -mc68020 -m68881 -mbitfield

The version of 1.36 is less than 2 weeks old.  I also tried it on
another instance of 1.36 that was created by someone else, just to
check for incorrect installation.


-------------------------------------------------------------------
This is on a different subject, and I'm not sure if it is a bug or
not.  g++ currently accepts the following code.

struct D;

struct C {
  C(D*) {};
};

struct D : public C {
  D() : C(this) {}
};


main() {
  D d;
}

Note that this code passes a pointer to the uninitialized D object to
the C constructor.  The C constructor could conceivably use members of
an unitialized object.  I haven't been able to find anything about
this in Lippman's book, and I don't have the reference manual, but
this seems basically wrong.
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads