Compilation of the program below produces: /tmp/cclEBTTX.o(.gnu.linkonce.t._ZN1XC1Eb+0x1a): In function `X::X[in-charge](bool)': : undefined reference to `X::a' /tmp/cclEBTTX.o(.gnu.linkonce.t._ZN1XC1Eb+0x24): In function `X::X[in-charge](bool)': : undefined reference to `X::b' collect2: ld returned 1 exit status
struct X { static const int a = 1, b = 2; int x; X (bool f) : x(f ? a : b) {} }; X x(true); int main () {} Replacing e. g. "a" with "a+0" makes the errors disappear. -- Summary: undefined references to static const int members Product: gcc Version: 3.3.4 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: christian dot heinlein at uni-ulm dot de http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29647