On 10/18/2010 02:04 PM, Matt Fischer wrote: > I'm attempting to port some code to gcc, and in a couple of places > it's using a construct that it doesn't like. A simplified example is > the following (this is in global scope): > > static const int A = 1; > static const int B = A; > > This compiles fine with g++, but gcc says "error: initializer element > is not constant". The compiler this code used to use handles it fine, > and given that it's also legal in C++, I was wondering if anybody > could comment on the (il)legality of this construct.
C++ constants != C const variables. Compare static const int A = 1; void bar(); void foo(int x) { switch (x) { case A: bar(); } } This is also legal C++, but not legal C. r~