Forward class in throw declaration.
Andrew J. Malton
ajmalton@uwaterloo.ca
Fri Sep 14 07:06:00 GMT 2001
The following snippet uses a forward class name in a throw declaration:
class F {
int v;
public:
F (int v) { this-> v = v; }
void raise () throw (F) { throw new F (0); }
};
It compiles and works perfectly well using "gcc version egcs-2.91.66
19990314/Linux (egcs-1.1.2 release)" and "gcc version 2.95.2 19991024
(release)" but when compiled with "gcc version 3.0" it fails to parse:
F.cpp:5: invalid use of undefined type `class F'
F.cpp:1: forward declaration of `class F'
Is this a bug, or newly correct ;-) behaviour, or am I missing something?
A Malton
--
Dr. Andrew Malton, Associate Professor
Department of Computer Science
University of Waterloo
Waterloo, Canada N2L 3G1
http://www.cs.uwaterloo.ca/~ajmalton
tel: +1 519 888 4567 x 5144
fax: +1 519 885 1208
More information about the Gcc
mailing list